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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3e2171b35a91ba36a0d5e6170d7da64bb15028a5b26e65eeee7c5427ec8ddb8d
4
- data.tar.gz: '09633300573cff4fdf4254bc6e04c67d6ee3aefc0619c83eeb721777b2ce1298'
3
+ metadata.gz: 6e220f38c25950fe7a5a59fc1908baf9d3fb623ee6855a25f4556387b0ed5cbf
4
+ data.tar.gz: c58bc67992e37f1be57268758db76dfe656e597748c21544db5fa9c6c9f233a3
5
5
  SHA512:
6
- metadata.gz: 5c521ea635616f24c9242d4154813005d0ba680220629dcea1691adeded1f282aed438b87cc061c60b41220a4799d850655d58a7a686b5af06ccccae6b017bf1
7
- data.tar.gz: b5bc4aae08ef50e06c4aa90bbd053313db39a952fab71cf77971bbfa1134058493356ee191aea2756ceedd15dc51f08cf323fe9480fc29e4e306eceba3bab707
6
+ metadata.gz: 26cc264629f5dc2417269200a9a9a91c76143d0d0b59e599acbff1b0c92cc8e7c497c50c2c85145ae18e2fce1d21e6f5f5be200d0ff0988a1939e0b40d28fbce
7
+ data.tar.gz: a76a58672ec0b4b4e435d76df032d8f475afa6a6e829d86c328508f1a7409242253ef4d13af3ca43c52c19824a072fe704517737f0485d40384bbb1e3ffac342
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Antlers
4
- VERSION = '1.3.0'
4
+ VERSION = '1.3.1'
5
5
  end
@@ -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
- Low::Events::RenderEvent.new(action: :render, props:) if defined?(Low::Events::RenderEvent)
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
@@ -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
 
@@ -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:)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: antlers
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - maedi