antlers 1.3.0 → 1.3.1
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/lib/antlers/version.rb +1 -1
- data/lib/interfaces/antler_node.rb +13 -2
- data/lib/nodes/prop_node.rb +1 -1
- data/lib/nodes/slot_node.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6e220f38c25950fe7a5a59fc1908baf9d3fb623ee6855a25f4556387b0ed5cbf
|
|
4
|
+
data.tar.gz: c58bc67992e37f1be57268758db76dfe656e597748c21544db5fa9c6c9f233a3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 26cc264629f5dc2417269200a9a9a91c76143d0d0b59e599acbff1b0c92cc8e7c497c50c2c85145ae18e2fce1d21e6f5f5be200d0ff0988a1939e0b40d28fbce
|
|
7
|
+
data.tar.gz: a76a58672ec0b4b4e435d76df032d8f475afa6a6e829d86c328508f1a7409242253ef4d13af3ca43c52c19824a072fe704517737f0485d40384bbb1e3ffac342
|
data/lib/antlers/version.rb
CHANGED
|
@@ -20,8 +20,19 @@ module Antlers
|
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
# Support sending an event to render_template hook when lowevent available. See lownode as an example implementation.
|
|
23
|
-
def possible_render_event(props:)
|
|
24
|
-
|
|
23
|
+
def possible_render_event(props:, current_binding: nil)
|
|
24
|
+
return unless defined?(Low::Events::RenderEvent)
|
|
25
|
+
return Low::Events::RenderEvent.new(action: :render, props:) unless Low::Events::RenderEvent.members.include?(:params)
|
|
26
|
+
|
|
27
|
+
Low::Events::RenderEvent.new(action: :render, props:, params: parent_params(current_binding:))
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# The parent node's event (a RouteEvent or RenderEvent) is the "event" local variable on its binding.
|
|
31
|
+
def parent_params(current_binding:)
|
|
32
|
+
return {} unless current_binding&.local_variable_defined?(:event)
|
|
33
|
+
|
|
34
|
+
event = current_binding.local_variable_get(:event)
|
|
35
|
+
(event.params if event.respond_to?(:params)) || {}
|
|
25
36
|
end
|
|
26
37
|
|
|
27
38
|
class << self
|
data/lib/nodes/prop_node.rb
CHANGED
|
@@ -27,7 +27,7 @@ module Antlers
|
|
|
27
27
|
# Classes referenced via "<{ MyNode }>" must implement class/instance and render/render_template methods (See lownode).
|
|
28
28
|
def render(current_binding: nil, parent_binding: nil, slot_node: nil, metadata: {})
|
|
29
29
|
props = evaluate_props(props: @props, current_binding:)
|
|
30
|
-
event = possible_render_event(props:)
|
|
30
|
+
event = possible_render_event(props:, current_binding:)
|
|
31
31
|
|
|
32
32
|
klass = node_class || raise(NameError, "uninitialized constant #{@name}")
|
|
33
33
|
|
data/lib/nodes/slot_node.rb
CHANGED
|
@@ -23,7 +23,7 @@ module Antlers
|
|
|
23
23
|
|
|
24
24
|
def render(current_binding: nil, parent_binding: nil, slot_node: nil, metadata: {})
|
|
25
25
|
props = evaluate_props(props: @props, current_binding:)
|
|
26
|
-
event = possible_render_event(props:)
|
|
26
|
+
event = possible_render_event(props:, current_binding:)
|
|
27
27
|
|
|
28
28
|
klass = class_constant(namespace: @namespace&.split('::') || [], name:)
|
|
29
29
|
keywords = props.merge(event:)
|