class ActiveAdmin::AbstractViewFactory

Public Class Methods

add_writer(name) click to toggle source
# File lib/active_admin/abstract_view_factory.rb, line 12
def self.add_writer(name)
  define_singleton_method("#{name}=") do |value|
    value.builder_method name
    instance_variable_set :"@#{name}", value
  end
end
register(view_hash) click to toggle source
Calls superclass method
# File lib/active_admin/abstract_view_factory.rb, line 4
def self.register(view_hash)
  view_hash.each do |view_key, view_class|
    super view_key, view_class
    add_writer(view_key)
    send "#{view_key}=", view_class
  end
end

Public Instance Methods

[](key) click to toggle source
# File lib/active_admin/abstract_view_factory.rb, line 39
def [](key)
  send key
end
[]=(key, value) click to toggle source
# File lib/active_admin/abstract_view_factory.rb, line 43
def []=(key, value)
  send "#{key}=", value
end
default_for(key) click to toggle source
# File lib/active_admin/abstract_view_factory.rb, line 35
def default_for(key)
  self.class.send key
end
register(view_hash) click to toggle source

Register a new view key with the view factory

eg:

factory = AbstractViewFactory.new
factory.register my_view: SomeViewClass

You can setup many at the same time:

factory.register  my_view: SomeClass,
                  another_view: OtherViewClass
# File lib/active_admin/abstract_view_factory.rb, line 31
def register(view_hash)
  self.class.register view_hash
end