heartml 1.0.0.beta1 → 1.0.0.beta3

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: 062ef7253f124e9607e30c9b39e1d1f33cc15507c9052d93b500df12dcddc5fe
4
- data.tar.gz: c6c82a441fbd6f8b61857522dea00ee314a89a50153f55f055616fbff19642b4
3
+ metadata.gz: af1df02bbfde39341b4b9a7df922718be4461b749195d341dece40c6f96a82f5
4
+ data.tar.gz: c379e7456d7c04d187465a36b8b526a5b1c9668576c1f7e9970f43c6a7f3729a
5
5
  SHA512:
6
- metadata.gz: 7137f572c71c7ee1891ce65c503809815648518f99410bcd4d2a5d63497ad04c3c29301ca996d06c3d99605158f958bdb3ff8f37f9fb261b83c89c59b75c98a3
7
- data.tar.gz: 39bb3ea5565c9f7345b36e97df7e152b1b8ea42d52f00d866655b0bfdaf01397fac43e34a80d72d14a31f5cfde44fcaff97d38d9f53dc1f24cc55222c1a6aa82
6
+ metadata.gz: 9e7e19aabcec51daeaa138e9601ce5298d41c36326654b3f2362aa6976c74e26bf6376b9e8d0a3cb27db98ea611db07cb3ae80690a2a4f246c97f45d28869113
7
+ data.tar.gz: af65f1e24ba4eac17f6bf91e521edc141e2d2b856a1702d44203071dd6f06dbf857591481da95d9ca7f11e9b1154ede933a5275a7a1658efe0c71554ba8b5c53
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [1.0.0.beta3] - 2023-08-12
4
+
5
+ - Ensure attributes are processed on component node before it's rendered as component
6
+
7
+ ## [1.0.0.beta2] - 2023-08-12
8
+
9
+ - Fix Bridgetown issues and process component "light DOM" children
10
+
3
11
  ## [1.0.0.beta1] - 2023-08-12
4
12
 
5
13
  - Major refactor as part of the new Heartml project
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- heartml (1.0.0.beta1)
4
+ heartml (1.0.0.beta3)
5
5
  concurrent-ruby (~> 1.2)
6
6
  nokolexbor (>= 0.4.2)
7
7
 
@@ -11,7 +11,9 @@ module Heartml
11
11
  inspect_html do |doc, resource|
12
12
  view_context = Bridgetown::ERBView.new(resource)
13
13
 
14
- FragmentRenderComponent.new(body: doc.body, scope: resource).render_in(view_context, rendering_mode: node)
14
+ rdr = FragmentRenderComponent.new(body: doc.at_css("body"), scope: view_context)
15
+ rdr.define_singleton_method(:view_context) { view_context }
16
+ rdr.call
15
17
 
16
18
  # Heartml.registered_elements.each do |component|
17
19
  # tag_name = component.tag_name
@@ -20,6 +20,8 @@ module Heartml
20
20
 
21
21
  def process(fragment = @fragment) # rubocop:disable Metrics
22
22
  traverse(fragment) do |node| # rubocop:disable Metrics/BlockLength
23
+ process_attribute_bindings(node)
24
+
23
25
  component = Heartml.registered_elements.find { _1.tag_name == node.name }
24
26
  if component
25
27
  attrs = node.attributes.dup
@@ -46,16 +48,24 @@ module Heartml
46
48
 
47
49
  obj = component.new(**attrs)
48
50
  render_output = if obj.respond_to?(:render_in)
49
- obj.render_in(@component.view_context, rendering_mode: :node) { node.children }
51
+ obj.render_in(@component.view_context, rendering_mode: :node) do
52
+ process(fragamatize(node.children))
53
+ end
50
54
  else
51
- obj.render_element(content: node.children)
55
+ obj.render_element(content: process(fragamatize(node.children)))
52
56
  end
53
57
 
54
58
  node.replace(render_output)
55
59
  end
56
-
57
- process_attribute_bindings(node)
58
60
  end
61
+
62
+ fragment
63
+ end
64
+
65
+ def fragamatize(node_set)
66
+ frag = Nokolexbor::DocumentFragment.new(@fragment.document)
67
+ node_set.each { |child| child.parent = frag }
68
+ frag
59
69
  end
60
70
 
61
71
  def process_attribute_bindings(node) # rubocop:todo Metrics
@@ -69,7 +79,6 @@ module Heartml
69
79
  end
70
80
  rescue Exception => e # rubocop:disable Lint/RescueException
71
81
  line_segments = [@component.class.heart_module, @component.class.line_number_of_node(attr_node)]
72
- puts "here we go!"
73
82
  raise e.class, e.message.lines.first, [line_segments.join(":"), *e.backtrace]
74
83
  end
75
84
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Heartml
4
4
  # @return [String]
5
- VERSION = "1.0.0.beta1"
5
+ VERSION = "1.0.0.beta3"
6
6
  end
data/lib/heartml.rb CHANGED
@@ -446,7 +446,6 @@ if defined?(Bridgetown)
446
446
 
447
447
  Heartml.module_eval do
448
448
  def render_in(view_context, rendering_mode = :string, &block)
449
- @attributes&.[]=("server-ignore", "")
450
449
  self.rendering_mode = rendering_mode
451
450
  super(view_context, &block)
452
451
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: heartml
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.beta1
4
+ version: 1.0.0.beta3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jared White