Module: RailsAdmin::Config::Actions

Defined in:
lib/rails_admin/config/actions.rb,
lib/rails_admin/config/actions/new.rb,
lib/rails_admin/config/actions/base.rb,
lib/rails_admin/config/actions/edit.rb,
lib/rails_admin/config/actions/show.rb,
lib/rails_admin/config/actions/index.rb,
lib/rails_admin/config/actions/delete.rb,
lib/rails_admin/config/actions/export.rb,
lib/rails_admin/config/actions/dashboard.rb,
lib/rails_admin/config/actions/bulk_delete.rb,
lib/rails_admin/config/actions/show_in_app.rb,
lib/rails_admin/config/actions/history_show.rb,
lib/rails_admin/config/actions/history_index.rb

Defined Under Namespace

Classes: Base, BulkDelete, Dashboard, Delete, Edit, Export, HistoryIndex, HistoryShow, Index, New, Show, ShowInApp

Class Method Summary collapse

Class Method Details

.add_action(key, parent_class, parent, &block) ⇒ Object



50
51
52
53
54
55
56
57
58
59
# File 'lib/rails_admin/config/actions.rb', line 50

def add_action(key, parent_class, parent, &block)
  a = "RailsAdmin::Config::Actions::#{parent_class.to_s.camelize}".constantize.new
  a.instance_eval(%(
    #{parent} true
    def key
      :#{key}
    end
  ), __FILE__, __LINE__ - 5)
  add_action_custom_key(a, &block)
end

.all(scope = nil, bindings = {}) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/rails_admin/config/actions.rb', line 7

def all(scope = nil, bindings = {})
  if scope.is_a?(Hash)
    bindings = scope
    scope = :all
  end
  scope ||= :all
  init_actions!
  actions =
    case scope
    when :all
      @@actions
    when :root
      @@actions.select(&:root?)
    when :collection
      @@actions.select(&:collection?)
    when :bulkable
      @@actions.select(&:bulkable?)
    when :member
      @@actions.select(&:member?)
    end

  actions = actions.collect { |action| action.with(bindings) }
  bindings[:controller] ? actions.select(&:visible?) : actions
end

.collection(key, parent_class = :base, &block) ⇒ Object



38
39
40
# File 'lib/rails_admin/config/actions.rb', line 38

def collection(key, parent_class = :base, &block)
  add_action key, parent_class, :collection, &block
end

.find(custom_key, bindings = {}) ⇒ Object



32
33
34
35
36
# File 'lib/rails_admin/config/actions.rb', line 32

def find(custom_key, bindings = {})
  init_actions!
  action = @@actions.detect { |a| a.custom_key == custom_key }.try(:with, bindings)
  bindings[:controller] ? (action.try(:visible?) && action || nil) : action
end

.member(key, parent_class = :base, &block) ⇒ Object



42
43
44
# File 'lib/rails_admin/config/actions.rb', line 42

def member(key, parent_class = :base, &block)
  add_action key, parent_class, :member, &block
end

.register(name, klass = nil) ⇒ Object



65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/rails_admin/config/actions.rb', line 65

def register(name, klass = nil)
  if klass.nil? && name.is_a?(Class)
    klass = name
    name = klass.to_s.demodulize.underscore.to_sym
  end

  instance_eval %{
    def #{name}(&block)
      action = #{klass}.new
      add_action_custom_key(action, &block)
    end
  }, __FILE__, __LINE__ - 5
end

.resetObject



61
62
63
# File 'lib/rails_admin/config/actions.rb', line 61

def reset
  @@actions = nil
end

.root(key, parent_class = :base, &block) ⇒ Object



46
47
48
# File 'lib/rails_admin/config/actions.rb', line 46

def root(key, parent_class = :base, &block)
  add_action key, parent_class, :root, &block
end