vident 1.0.0.beta1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +41 -0
- data/README.md +177 -23
- data/lib/generators/vident/install/install_generator.rb +53 -0
- data/lib/generators/vident/install/templates/vident.rb +20 -0
- data/lib/vident/caching.rb +3 -9
- data/lib/vident/child_element_helper.rb +64 -0
- data/lib/vident/component.rb +4 -11
- data/lib/vident/component_attribute_resolver.rb +21 -36
- data/lib/vident/component_class_lists.rb +4 -3
- data/lib/vident/stable_id.rb +48 -17
- data/lib/vident/stimulus/naming.rb +19 -0
- data/lib/vident/stimulus/primitive.rb +38 -0
- data/lib/vident/stimulus.rb +31 -0
- data/lib/vident/stimulus_action.rb +58 -23
- data/lib/vident/stimulus_attribute_base.rb +27 -23
- data/lib/vident/stimulus_attributes.rb +56 -185
- data/lib/vident/stimulus_builder.rb +66 -87
- data/lib/vident/stimulus_class.rb +3 -9
- data/lib/vident/stimulus_class_collection.rb +1 -5
- data/lib/vident/stimulus_collection_base.rb +4 -12
- data/lib/vident/stimulus_component.rb +8 -7
- data/lib/vident/stimulus_controller.rb +10 -13
- data/lib/vident/stimulus_data_attribute_builder.rb +15 -74
- data/lib/vident/stimulus_helper.rb +4 -12
- data/lib/vident/stimulus_null.rb +21 -0
- data/lib/vident/stimulus_outlet.rb +4 -11
- data/lib/vident/stimulus_outlet_collection.rb +1 -5
- data/lib/vident/stimulus_param.rb +42 -0
- data/lib/vident/stimulus_param_collection.rb +11 -0
- data/lib/vident/stimulus_target.rb +7 -17
- data/lib/vident/stimulus_target_collection.rb +2 -6
- data/lib/vident/stimulus_value.rb +14 -44
- data/lib/vident/stimulus_value_collection.rb +1 -5
- data/lib/vident/tailwind.rb +0 -2
- data/lib/vident/version.rb +1 -1
- data/lib/vident.rb +8 -13
- data/skills/vident/SKILL.md +628 -0
- metadata +11 -2
- data/lib/vident/tag_helper.rb +0 -65
data/lib/vident/tag_helper.rb
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Vident
|
|
4
|
-
module TagHelper
|
|
5
|
-
# Generate a tag with the given name and options, including stimulus data attributes
|
|
6
|
-
def tag(
|
|
7
|
-
tag_name,
|
|
8
|
-
stimulus_controllers: nil,
|
|
9
|
-
stimulus_targets: nil,
|
|
10
|
-
stimulus_actions: nil,
|
|
11
|
-
stimulus_outlets: nil,
|
|
12
|
-
stimulus_values: nil,
|
|
13
|
-
stimulus_classes: nil,
|
|
14
|
-
stimulus_controller: nil,
|
|
15
|
-
stimulus_target: nil,
|
|
16
|
-
stimulus_action: nil,
|
|
17
|
-
stimulus_outlet: nil,
|
|
18
|
-
stimulus_value: nil,
|
|
19
|
-
stimulus_class: nil,
|
|
20
|
-
**options,
|
|
21
|
-
&block
|
|
22
|
-
)
|
|
23
|
-
# Ensure the plural attributes are actually enumerables
|
|
24
|
-
tag_attribute_must_be_collection!(stimulus_controllers, "stimulus_controllers")
|
|
25
|
-
tag_attribute_must_be_collection!(stimulus_targets, "stimulus_targets")
|
|
26
|
-
tag_attribute_must_be_collection!(stimulus_actions, "stimulus_actions")
|
|
27
|
-
tag_attribute_must_be_collection!(stimulus_outlets, "stimulus_outlets")
|
|
28
|
-
tag_attribute_must_be_collection!(stimulus_values, "stimulus_values")
|
|
29
|
-
tag_attribute_must_be_collection!(stimulus_classes, "stimulus_classes")
|
|
30
|
-
|
|
31
|
-
stimulus_controllers_collection = send(:stimulus_controllers, *tag_wrap_single_stimulus_attribute(stimulus_controllers, stimulus_controller))
|
|
32
|
-
stimulus_targets_collection = send(:stimulus_targets, *tag_wrap_single_stimulus_attribute(stimulus_targets, stimulus_target))
|
|
33
|
-
stimulus_actions_collection = send(:stimulus_actions, *tag_wrap_single_stimulus_attribute(stimulus_actions, stimulus_action))
|
|
34
|
-
stimulus_outlets_collection = send(:stimulus_outlets, *tag_wrap_single_stimulus_attribute(stimulus_outlets, stimulus_outlet))
|
|
35
|
-
stimulus_values_collection = send(:stimulus_values, stimulus_values || stimulus_value)
|
|
36
|
-
stimulus_classes_collection = send(:stimulus_classes, stimulus_classes || stimulus_class)
|
|
37
|
-
|
|
38
|
-
stimulus_data_attributes = StimulusDataAttributeBuilder.new(
|
|
39
|
-
controllers: stimulus_controllers_collection,
|
|
40
|
-
actions: stimulus_actions_collection,
|
|
41
|
-
targets: stimulus_targets_collection,
|
|
42
|
-
outlets: stimulus_outlets_collection,
|
|
43
|
-
values: stimulus_values_collection,
|
|
44
|
-
classes: stimulus_classes_collection
|
|
45
|
-
).build
|
|
46
|
-
generate_tag(tag_name, stimulus_data_attributes, options, &block)
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
private
|
|
50
|
-
|
|
51
|
-
def tag_attribute_must_be_collection!(collection, name)
|
|
52
|
-
return unless collection
|
|
53
|
-
raise ArgumentError, "'#{name}:' must be an enumerable. Did you mean '#{name.to_s.singularize}:'?" unless collection.is_a?(Enumerable)
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
def tag_wrap_single_stimulus_attribute(plural, singular)
|
|
57
|
-
return plural if plural
|
|
58
|
-
singular.nil? ? nil : [singular]
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
def generate_tag(tag_name, stimulus_data_attributes, options, &block)
|
|
62
|
-
raise NoMethodError, "Not implemented"
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
end
|