Class: IronAdmin::ToolContext
- Inherits:
-
Object
- Object
- IronAdmin::ToolContext
- Defined in:
- lib/iron_admin/tool_context.rb
Overview
Lightweight request context injected into Tool instances before action execution.
Provides tools with access to request params, the current user, and flash messages without coupling them to the controller.
Instance Attribute Summary collapse
-
#current_user ⇒ Object?
readonly
Current authenticated user.
-
#flash ⇒ ActionDispatch::Flash::FlashHash
readonly
Flash messages.
-
#params ⇒ ActionController::Parameters
readonly
Raw request params.
Instance Method Summary collapse
-
#action_params(*keys) ⇒ Hash
Extracts and permits only the specified keys from tool_action params.
-
#initialize(params:, current_user:, flash:) ⇒ ToolContext
constructor
A new instance of ToolContext.
Constructor Details
#initialize(params:, current_user:, flash:) ⇒ ToolContext
Returns a new instance of ToolContext.
32 33 34 35 36 |
# File 'lib/iron_admin/tool_context.rb', line 32 def initialize(params:, current_user:, flash:) @params = params @current_user = current_user @flash = flash end |
Instance Attribute Details
#current_user ⇒ Object? (readonly)
Returns Current authenticated user.
24 25 26 |
# File 'lib/iron_admin/tool_context.rb', line 24 def current_user @current_user end |
#flash ⇒ ActionDispatch::Flash::FlashHash (readonly)
Returns Flash messages.
27 28 29 |
# File 'lib/iron_admin/tool_context.rb', line 27 def flash @flash end |
#params ⇒ ActionController::Parameters (readonly)
Returns Raw request params.
21 22 23 |
# File 'lib/iron_admin/tool_context.rb', line 21 def params @params end |
Instance Method Details
#action_params(*keys) ⇒ Hash
Extracts and permits only the specified keys from tool_action params.
42 43 44 45 46 47 |
# File 'lib/iron_admin/tool_context.rb', line 42 def action_params(*keys) raw = params.fetch(:tool_action, {}) return {} unless raw.respond_to?(:permit) raw.permit(*keys).to_h.symbolize_keys end |