Class: Phlex::Stimulus::Components::Controller::ActionDefinition
- Inherits:
-
Object
- Object
- Phlex::Stimulus::Components::Controller::ActionDefinition
- Defined in:
- lib/phlex/stimulus/components/controller.rb
Instance Attribute Summary collapse
- #action_name ⇒ Object readonly
- #component ⇒ Object readonly
- #params ⇒ Object readonly
Instance Method Summary collapse
- #full_name ⇒ Object
-
#initialize(component:, action_name:, params: []) ⇒ ActionDefinition
constructor
A new instance of ActionDefinition.
-
#param(name, optional: false) ⇒ Object
Define a new parameter for the controller action.
- #ruby_action_method_name ⇒ Object
- #ruby_name ⇒ Object
- #ruby_on_method_name ⇒ Object
Constructor Details
#initialize(component:, action_name:, params: []) ⇒ ActionDefinition
Returns a new instance of ActionDefinition.
20 21 22 23 24 |
# File 'lib/phlex/stimulus/components/controller.rb', line 20 def initialize(component:, action_name:, params: []) @component = component @action_name = action_name @params = params end |
Instance Attribute Details
#action_name ⇒ Object (readonly)
15 16 17 |
# File 'lib/phlex/stimulus/components/controller.rb', line 15 def action_name @action_name end |
#component ⇒ Object (readonly)
13 14 15 |
# File 'lib/phlex/stimulus/components/controller.rb', line 13 def component @component end |
#params ⇒ Object (readonly)
17 18 19 |
# File 'lib/phlex/stimulus/components/controller.rb', line 17 def params @params end |
Instance Method Details
#full_name ⇒ Object
27 28 29 |
# File 'lib/phlex/stimulus/components/controller.rb', line 27 def full_name "#{@component.controller_name}##{@action_name}" end |
#param(name, optional: false) ⇒ Object
Define a new parameter for the controller action.
49 50 51 52 53 |
# File 'lib/phlex/stimulus/components/controller.rb', line 49 def param(name, optional: false) p = ActionParamDefinition.new(action: self, param_name: name.to_s, optional: optional) params << p p end |
#ruby_action_method_name ⇒ Object
37 38 39 |
# File 'lib/phlex/stimulus/components/controller.rb', line 37 def ruby_action_method_name "#{ruby_name}_action" end |
#ruby_name ⇒ Object
32 33 34 |
# File 'lib/phlex/stimulus/components/controller.rb', line 32 def ruby_name @action_name.underscore end |
#ruby_on_method_name ⇒ Object
42 43 44 |
# File 'lib/phlex/stimulus/components/controller.rb', line 42 def ruby_on_method_name "#{ruby_name}_on" end |