Class: Vident::StimulusDataAttributeBuilder

Inherits:
Object
  • Object
show all
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

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

#buildObject

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