class Glia::ViewFactory

Public Instance Methods

apply_actions(object, actions) click to toggle source
# File lib/glia/view_factory.rb, line 14
def apply_actions(object, actions)
  actions.each do |action|
    object.send(action[:name], *action[:args])
  end unless actions.nil?
end
build(code, view_namespace = Object, definition = {}, actions = [], *args) click to toggle source
# File lib/glia/view_factory.rb, line 4
def build(code, view_namespace = Object, definition = {}, actions = [], *args)
  object = instantiate(find_class(code, view_namespace), definition, *args)
  apply_actions(object, actions)
  object
end
find_class(code, view_namespace = Object) click to toggle source
# File lib/glia/view_factory.rb, line 20
def find_class(code, view_namespace = Object)
  if code.is_a? Symbol
    parts = code.to_s.split('/').map{ |str| str.split('_').map {|w| w.capitalize}.join }
    parts.inject(view_namespace){|namespace, part| namespace.const_get(part)}
  elsif code.is_a? String
    view_namespace.const_get(code)
  else
    code
  end
end
instantiate(klass, definition, *args) click to toggle source
# File lib/glia/view_factory.rb, line 10
def instantiate(klass, definition, *args)
  klass.new(*(args|[definition]))
end