heartml 1.0.0.beta1 → 1.0.0.beta3

Sign up to get free protection for your applications and to get access to all the features.
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