Class: RailsBase::Admin::ActionHelper
- Inherits:
-
Object
- Object
- RailsBase::Admin::ActionHelper
show all
- Defined in:
- lib/rails_base/admin/action_helper.rb
Defined Under Namespace
Classes: InvalidActionError, InvalidControllerError, InvalidTitleError
Constant Summary
collapse
- ACTIONS_KEY =
"___all_actions_#{(rand*10**10).to_i}___"
- CONTROLLER_ACTIONS_KEY =
"___all_controller_actions__#{(rand*10**10).to_i}___"
- DEFAULT_ALLOWED_KLASSES =
[ApplicationController, RailsBaseApplicationController, ::SwitchUserController]
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
-
#add! ⇒ Object
-
#call(req:, params:, admin_user:, user:, struct: nil) ⇒ Object
-
#initialize(controller: nil, action: nil, title: nil, default: false, proc: nil) ⇒ ActionHelper
constructor
controller is the controller class inherited by RailsBaseApplicationController action is the method name on the controller title should be the AdminAction.action if proc available, => |session, admin_user, user, title, struct| => RailsBase::AdminStruct has methods original_attribute and new_attribute => Expected return => { admin_user, user, action, original_attribute, new_attribute, change_to }.
Constructor Details
#initialize(controller: nil, action: nil, title: nil, default: false, proc: nil) ⇒ ActionHelper
controller is the controller class inherited by RailsBaseApplicationController action is the method name on the controller title should be the AdminAction.action if proc available,
> |session, admin_user, user, title, struct|
> RailsBase::AdminStruct has methods original_attribute and new_attribute
> Expected return
> { admin_user, user, action, original_attribute, new_attribute, change_to }
73
74
75
76
77
78
79
80
81
|
# File 'lib/rails_base/admin/action_helper.rb', line 73
def initialize(controller: nil, action: nil, title: nil, default: false, proc: nil)
@controller = controller
@action = action
@title = title
@proc = proc
valid_controller!
valid_action!
valid_title!
end
|
Instance Attribute Details
#action ⇒ Object
Returns the value of attribute action.
64
65
66
|
# File 'lib/rails_base/admin/action_helper.rb', line 64
def action
@action
end
|
#controller ⇒ Object
Returns the value of attribute controller.
64
65
66
|
# File 'lib/rails_base/admin/action_helper.rb', line 64
def controller
@controller
end
|
#default ⇒ Object
Returns the value of attribute default.
64
65
66
|
# File 'lib/rails_base/admin/action_helper.rb', line 64
def default
@default
end
|
#proc ⇒ Object
Returns the value of attribute proc.
64
65
66
|
# File 'lib/rails_base/admin/action_helper.rb', line 64
def proc
@proc
end
|
#title ⇒ Object
Returns the value of attribute title.
64
65
66
|
# File 'lib/rails_base/admin/action_helper.rb', line 64
def title
@title
end
|
Class Method Details
.actions ⇒ Object
49
50
51
|
# File 'lib/rails_base/admin/action_helper.rb', line 49
def actions
@actions
end
|
.add(instance) ⇒ Object
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/rails_base/admin/action_helper.rb', line 22
def add(instance)
@actions ||= {}
@all_actions ||= []
@default_actions ||= []
@all_actions << [instance]
@default_actions << [instance]
controller = instance.controller
action = instance.action
if controller.nil?
@actions[ACTIONS_KEY] ||= []
@actions[ACTIONS_KEY] << instance
return
end
@actions[controller.to_s] ||= {}
if action
@actions[controller.to_s][action.to_s] ||= []
@actions[controller.to_s][action.to_s] << instance
else
@actions[controller.to_s][CONTROLLER_ACTIONS_KEY] ||= []
@actions[controller.to_s][CONTROLLER_ACTIONS_KEY] << instance
end
end
|
.add_inherited_klasses(klass) ⇒ Object
13
14
15
16
|
# File 'lib/rails_base/admin/action_helper.rb', line 13
def add_inherited_klasses(klass)
@allowed_klasses ||= []
@allowed_klasses << klass
end
|
.allowed_inherited_klasses ⇒ Object
9
10
11
|
# File 'lib/rails_base/admin/action_helper.rb', line 9
def allowed_inherited_klasses
DEFAULT_ALLOWED_KLASSES + (@allowed_klasses || [])
end
|
.clear_inherited_klasses! ⇒ Object
18
19
20
|
# File 'lib/rails_base/admin/action_helper.rb', line 18
def clear_inherited_klasses!
@allowed_klasses = nil
end
|
.reset! ⇒ Object
53
54
55
56
57
|
# File 'lib/rails_base/admin/action_helper.rb', line 53
def reset!
@actions = nil
@all_actions = nil
@default_actions.each { |instance| add(instance) }
end
|
Instance Method Details
#add! ⇒ Object
83
84
85
|
# File 'lib/rails_base/admin/action_helper.rb', line 83
def add!
self.class.add(self)
end
|
#call(req:, params:, admin_user:, user:, struct: nil) ⇒ Object
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
# File 'lib/rails_base/admin/action_helper.rb', line 87
def call(req:, params:, admin_user:, user:, struct: nil)
if proc
action_params = proc.call(req, params, admin_user, user, title, struct)
return if action_params.nil?
AdminAction.action(**action_params)
else
default_call(request: request, admin_user: admin_user, user: user, struct: struct)
end
rescue StandardError => e
Rails.logger.error(e.message)
Rails.logger.error(e.backtrace)
Rails.logger.error("Trapping Error from AdminActionHelper.")
end
|