Module: ActiveAdmin::Resource::Scopes

Included in:
ActiveAdmin::Resource
Defined in:
lib/active_admin/resource/scopes.rb

Instance Method Summary collapse

Instance Method Details

#default_scopeObject



16
17
18
# File 'lib/active_admin/resource/scopes.rb', line 16

def default_scope
  @default_scope
end

#get_scope_by_id(id) ⇒ Object

Returns a scope for this object by its identifier



11
12
13
14
# File 'lib/active_admin/resource/scopes.rb', line 11

def get_scope_by_id(id)
  id = id.to_s
  scopes.find{|s| s.id == id }
end

#scope(*args, &block) ⇒ Object

Create a new scope object for this resource. If you want to internationalize the scope name, you can add to your i18n files a key like “active_admin.scopes.scope_method”.



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/active_admin/resource/scopes.rb', line 23

def scope(*args, &block)
  options = args.extract_options!
  title = args[0] rescue nil
  method = args[1] rescue nil

  scope = ActiveAdmin::Scope.new(title, method, options, &block)

  # Finds and replaces a scope by the same name if it already exists
  existing_scope_index = scopes.index{|existing_scope| existing_scope.id == scope.id }
  if existing_scope_index
    scopes.delete_at(existing_scope_index)
    scopes.insert(existing_scope_index, scope)
  else
    self.scopes << scope
  end

  @default_scope = scope if options[:default]

  scope
end

#scopesObject

Return an array of scopes for this resource



6
7
8
# File 'lib/active_admin/resource/scopes.rb', line 6

def scopes
  @scopes ||= []
end