Class: Vident::StimulusDataAttributeBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/vident/stimulus_data_attribute_builder.rb

Instance Method Summary collapse

Constructor Details

#initialize(**collections_by_name) ⇒ StimulusDataAttributeBuilder

Returns a new instance of StimulusDataAttributeBuilder.

Raises:

  • (ArgumentError)


5
6
7
8
9
10
# File 'lib/vident/stimulus_data_attribute_builder.rb', line 5

def initialize(**collections_by_name)
  unknown = collections_by_name.keys - Stimulus.names
  raise ArgumentError, "Unknown stimulus primitive(s) #{unknown.inspect}" if unknown.any?

  @collections_by_name = collections_by_name.transform_values { |v| Array(v) }
end

Instance Method Details

#buildObject



12
13
14
15
16
# File 'lib/vident/stimulus_data_attribute_builder.rb', line 12

def build
  Stimulus::PRIMITIVES.each_with_object({}) do |primitive, attrs|
    attrs.merge!(merge_collection(primitive.collection_class, @collections_by_name[primitive.name] || []))
  end.transform_keys(&:to_s).compact
end