Module: ActionParamsContract::RequestContext
- Defined in:
- lib/action_params_contract/request_context.rb
Constant Summary collapse
- ACTION_KEY =
:dry_params_validatable_action- CONTROLLER_KEY =
:dry_params_validatable_controller- STACK_KEY =
:dry_params_validatable_stack
Class Method Summary collapse
- .around(controller) ⇒ Object
- .current_action ⇒ Object
- .current_controller ⇒ Object
- .pop ⇒ Object
- .push(controller) ⇒ Object
- .store ⇒ Object
Class Method Details
.around(controller) ⇒ Object
34 35 36 37 38 39 |
# File 'lib/action_params_contract/request_context.rb', line 34 def around(controller) push(controller) yield ensure pop end |
.current_action ⇒ Object
12 |
# File 'lib/action_params_contract/request_context.rb', line 12 def current_action = store[ACTION_KEY] |
.current_controller ⇒ Object
13 |
# File 'lib/action_params_contract/request_context.rb', line 13 def current_controller = store[CONTROLLER_KEY] |
.pop ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/action_params_contract/request_context.rb', line 22 def pop stack = store[STACK_KEY] if stack.nil? || stack.empty? store[ACTION_KEY] = nil store[CONTROLLER_KEY] = nil else prev_action, prev_controller = stack.pop store[ACTION_KEY] = prev_action store[CONTROLLER_KEY] = prev_controller end end |
.push(controller) ⇒ Object
15 16 17 18 19 20 |
# File 'lib/action_params_contract/request_context.rb', line 15 def push(controller) stack = store[STACK_KEY] ||= [] stack.push([store[ACTION_KEY], store[CONTROLLER_KEY]]) store[ACTION_KEY] = controller.action_name.to_sym store[CONTROLLER_KEY] = controller end |
.store ⇒ Object
10 |
# File 'lib/action_params_contract/request_context.rb', line 10 def store = ActiveSupport::IsolatedExecutionState |