class ActiveAdmin::ResourceCollection
This is a container for resources, which acts much like a Hash. It's assumed that an added resource responds to `resource_name`.
Public Class Methods
new()
click to toggle source
# File lib/active_admin/resource_collection.rb, line 9 def initialize @resources = {} end
Public Instance Methods
[](klass)
click to toggle source
Finds a resource based on the resource name, the resource class, or the base class.
# File lib/active_admin/resource_collection.rb, line 23 def [](klass) if match = @resources[klass] match elsif match = real_resources.detect{ |r| r.resource_class.to_s == klass.to_s } match elsif klass.respond_to? :base_class real_resources.detect{ |r| r.resource_class.to_s == klass.base_class.to_s } end end
add(resource)
click to toggle source
# File lib/active_admin/resource_collection.rb, line 13 def add(resource) self[resource.resource_name] ||= resource end
each(&block)
click to toggle source
Changes `each` to pass in the value, instead of both the key and value.
# File lib/active_admin/resource_collection.rb, line 18 def each(&block) values.each &block end
Private Instance Methods
real_resources()
click to toggle source
REFACTOR: ResourceCollection
currently stores Resource
and Page
objects. That doesn't make sense, because by definition a ResourceCollection
is a collection of resources.
# File lib/active_admin/resource_collection.rb, line 37 def real_resources select{ |r| r.respond_to? :resource_class } end