Class: Phlex::Stimulus::Components::Controller::ActionDefinition

Inherits:
Object
  • Object
show all
Defined in:
lib/phlex/stimulus/components/controller.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(component:, action_name:, params: []) ⇒ ActionDefinition

Returns a new instance of ActionDefinition.

Signature:

  • (component: singleton(Controller), action_name: String, ?params: Array[ActionParamDefinition]) -> void



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_nameObject (readonly)

Signature:

  • String



15
16
17
# File 'lib/phlex/stimulus/components/controller.rb', line 15

def action_name
  @action_name
end

#componentObject (readonly)

Signature:

  • singleton(Controller)



13
14
15
# File 'lib/phlex/stimulus/components/controller.rb', line 13

def component
  @component
end

#paramsObject (readonly)

Signature:

  • Array[ActionParamDefinition]



17
18
19
# File 'lib/phlex/stimulus/components/controller.rb', line 17

def params
  @params
end

Instance Method Details

#full_nameObject

Signature:

  • -> String



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.

Signature:

  • (Symbol, ?optional: bool) -> ActionParamDefinition



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_nameObject

Signature:

  • -> String



37
38
39
# File 'lib/phlex/stimulus/components/controller.rb', line 37

def ruby_action_method_name
  "#{ruby_name}_action"
end

#ruby_nameObject

Signature:

  • -> String



32
33
34
# File 'lib/phlex/stimulus/components/controller.rb', line 32

def ruby_name
  @action_name.underscore
end

#ruby_on_method_nameObject

Signature:

  • -> String



42
43
44
# File 'lib/phlex/stimulus/components/controller.rb', line 42

def ruby_on_method_name
  "#{ruby_name}_on"
end