class ActiveAdmin::AbstractViewFactory
Public Class Methods
new()
click to toggle source
# File lib/active_admin/abstract_view_factory.rb, line 11 def initialize @views = {} end
register(view_hash)
click to toggle source
# File lib/active_admin/abstract_view_factory.rb, line 5 def self.register(view_hash) view_hash.each do |view_key, view_class| @@default_views[view_key] = view_class end end
Public Instance Methods
[](key)
click to toggle source
# File lib/active_admin/abstract_view_factory.rb, line 41 def [](key) get_view_for_key(key) end
[]=(key, value)
click to toggle source
# File lib/active_admin/abstract_view_factory.rb, line 45 def []=(key, value) set_view_for_key(key, value) end
default_for(key)
click to toggle source
# File lib/active_admin/abstract_view_factory.rb, line 33 def default_for(key) @@default_views[key.to_sym] end
has_key?(key)
click to toggle source
# File lib/active_admin/abstract_view_factory.rb, line 37 def has_key?(key) @views.has_key?(key.to_sym) || @@default_views.has_key?(key.to_sym) 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 27 def register(view_hash) view_hash.each do |view_key, view_class| @views[view_key] = view_class end end
respond_to_missing?(method, include_private)
click to toggle source
Calls superclass method
# File lib/active_admin/abstract_view_factory.rb, line 49 def respond_to_missing?(method, include_private) key = key_from_method_name(method) if has_key?(key) true else super end end
Private Instance Methods
get_view_for_key(key)
click to toggle source
# File lib/active_admin/abstract_view_factory.rb, line 77 def get_view_for_key(key) @views[key.to_sym] || @@default_views[key.to_sym] end
key_from_method_name(method)
click to toggle source
# File lib/active_admin/abstract_view_factory.rb, line 73 def key_from_method_name(method) method.to_s.tr('=', '').to_sym end
method_missing(method, *args)
click to toggle source
Calls superclass method
# File lib/active_admin/abstract_view_factory.rb, line 60 def method_missing(method, *args) key = key_from_method_name(method) if has_key?(key) if method.to_s.include?('=') set_view_for_key key, args.first else get_view_for_key key end else super end end
set_view_for_key(key, view)
click to toggle source
# File lib/active_admin/abstract_view_factory.rb, line 81 def set_view_for_key(key, view) @views[key.to_sym] = view end