Class: Vident::StimulusDataAttributeBuilder
- Inherits:
-
Object
- Object
- Vident::StimulusDataAttributeBuilder
- Defined in:
- lib/vident/stimulus_data_attribute_builder.rb
Overview
Builds a hash of Stimulus data attributes from collections of stimulus objects Handles merging multiple actions, targets, outlets, values, and classes into the final data-* attributes needed for HTML elements
Instance Method Summary collapse
-
#build ⇒ Object
Build the final data attributes hash.
-
#initialize(controllers: [], actions: [], targets: [], outlets: [], values: [], classes: []) ⇒ StimulusDataAttributeBuilder
constructor
A new instance of StimulusDataAttributeBuilder.
Constructor Details
#initialize(controllers: [], actions: [], targets: [], outlets: [], values: [], classes: []) ⇒ StimulusDataAttributeBuilder
Returns a new instance of StimulusDataAttributeBuilder.
8 9 10 11 12 13 14 15 |
# File 'lib/vident/stimulus_data_attribute_builder.rb', line 8 def initialize(controllers: [], actions: [], targets: [], outlets: [], values: [], classes: []) @controllers = Array(controllers) @actions = Array(actions) @targets = Array(targets) @outlets = Array(outlets) @values = Array(values) @classes = Array(classes) end |
Instance Method Details
#build ⇒ Object
Build the final data attributes hash
18 19 20 21 22 23 24 25 26 27 |
# File 'lib/vident/stimulus_data_attribute_builder.rb', line 18 def build { **merged_controllers, **merged_actions, **merged_targets, **merged_outlets, **merged_values, **merged_classes }.transform_keys(&:to_s).compact end |