Module: Vident::Stimulus
- Defined in:
- lib/vident/stimulus.rb,
lib/vident/stimulus/naming.rb,
lib/vident/stimulus/primitive.rb
Defined Under Namespace
Modules: Naming
Classes: KeyedPrimitive, PositionalPrimitive, Primitive
Constant Summary
collapse
- PRIMITIVES =
Registry of primitive kinds. Add an entry (paired with a Value/Collection class pair) to extend; plural parsers, mutators, and the data-attribute builder pick it up. Array order = data attribute emission order.
[
PositionalPrimitive.new(:controllers, StimulusController, StimulusControllerCollection),
PositionalPrimitive.new(:actions, StimulusAction, StimulusActionCollection),
PositionalPrimitive.new(:targets, StimulusTarget, StimulusTargetCollection),
KeyedPrimitive.new(:outlets, StimulusOutlet, StimulusOutletCollection),
KeyedPrimitive.new(:values, StimulusValue, StimulusValueCollection),
KeyedPrimitive.new(:params, StimulusParam, StimulusParamCollection),
KeyedPrimitive.new(:classes, StimulusClass, StimulusClassCollection)
].freeze
- PRIMITIVES_BY_NAME =
PRIMITIVES.to_h { |primitive| [primitive.name, primitive] }.freeze
Class Method Summary
collapse
Class Method Details
.each(&block) ⇒ Object
26
|
# File 'lib/vident/stimulus.rb', line 26
def each(&block) = PRIMITIVES.each(&block)
|
.names ⇒ Object
28
|
# File 'lib/vident/stimulus.rb', line 28
def names = PRIMITIVES.map(&:name)
|
.primitive(name) ⇒ Object
21
22
23
24
|
# File 'lib/vident/stimulus.rb', line 21
def primitive(name)
PRIMITIVES_BY_NAME[name] or
raise ArgumentError, "Unknown stimulus primitive #{name.inspect}; valid: #{PRIMITIVES_BY_NAME.keys.inspect}"
end
|