Sha256: 7b3ca1e98b61caa92e3c6ae8c5653e51ad71b2683c7dbfa7d0d5956cb7a349c1

Contents?: true

Size: 1020 Bytes

Versions: 36

Compression:

Stored size: 1020 Bytes

Contents

module ActiveAdmin
  class AbstractViewFactory < SettingsNode

    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

    def self.add_writer(name)
      define_singleton_method("#{name}=") do |value|
        value.builder_method name
        instance_variable_set :"@#{name}", value
      end
    end

    # 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
    #
    def register(view_hash)
      self.class.register view_hash
    end

    def default_for(key)
      self.class.send key
    end

    def [](key)
      send key
    end

    def []=(key, value)
      send "#{key}=", value
    end
  end
end

Version data entries

36 entries across 36 versions & 5 rubygems

Version Path
activeadmin-rails-1.7.2 lib/active_admin/abstract_view_factory.rb
activeadmin-rails-1.7.1 lib/active_admin/abstract_view_factory.rb
activeadmin-rails-1.7.0 lib/active_admin/abstract_view_factory.rb
activeadmin-rb-1.6.0 lib/active_admin/abstract_view_factory.rb
date_n_time_picker_activeadmin-0.1.2 vendor/bundle/ruby/2.6.0/gems/activeadmin-2.9.0/lib/active_admin/abstract_view_factory.rb
date_n_time_picker_activeadmin-0.1.1 vendor/bundle/ruby/2.6.0/gems/activeadmin-2.9.0/lib/active_admin/abstract_view_factory.rb
activeadmin-rb-1.5.2 lib/active_admin/abstract_view_factory.rb
activeadmin-2.9.0 lib/active_admin/abstract_view_factory.rb
activeadmin-2.8.1 lib/active_admin/abstract_view_factory.rb
activeadmin-2.8.0 lib/active_admin/abstract_view_factory.rb
activeadmin-rb-1.5.1 lib/active_admin/abstract_view_factory.rb
activeadmin-2.7.0 lib/active_admin/abstract_view_factory.rb
activeadmin-2.6.1 lib/active_admin/abstract_view_factory.rb
activeadmin-2.6.0 lib/active_admin/abstract_view_factory.rb
activeadmin-2.5.0 lib/active_admin/abstract_view_factory.rb
activeadmin-2.4.0 lib/active_admin/abstract_view_factory.rb
activeadmin-2.3.1 lib/active_admin/abstract_view_factory.rb
activeadmin-2.3.0 lib/active_admin/abstract_view_factory.rb
activeadmin-2.2.0 lib/active_admin/abstract_view_factory.rb
activeadmin-2.1.0 lib/active_admin/abstract_view_factory.rb