Class: ActiveAdmin::ResourceCollection

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Enumerable
Defined in:
lib/active_admin/resource_collection.rb

Overview

This is a container for resources, which acts much like a Hash. It’s assumed that an added resource responds to ‘resource_name`.

Instance Method Summary collapse

Constructor Details

#initializeResourceCollection

Returns a new instance of ResourceCollection.



9
10
11
# File 'lib/active_admin/resource_collection.rb', line 9

def initialize
  @resources = {}
end

Instance Method Details

#[](klass) ⇒ Object

Finds a resource based on the resource name, the resource class, or the base class.



23
24
25
26
27
28
29
30
31
# 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) ⇒ Object



13
14
15
# File 'lib/active_admin/resource_collection.rb', line 13

def add(resource)
  self[resource.resource_name] ||= resource
end

#each(&block) ⇒ Object

Changes ‘each` to pass in the value, instead of both the key and value.



18
19
20
# File 'lib/active_admin/resource_collection.rb', line 18

def each(&block)
  values.each &block
end