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 +4 -4
- data/CHANGELOG.md +8 -0
- data/Gemfile.lock +1 -1
- data/lib/heartml/component_renderer.rb +3 -1
- data/lib/heartml/fragment.rb +14 -5
- data/lib/heartml/version.rb +1 -1
- data/lib/heartml.rb +0 -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: af1df02bbfde39341b4b9a7df922718be4461b749195d341dece40c6f96a82f5
|
4
|
+
data.tar.gz: c379e7456d7c04d187465a36b8b526a5b1c9668576c1f7e9970f43c6a7f3729a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
@@ -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:
|
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
|
data/lib/heartml/fragment.rb
CHANGED
@@ -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)
|
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
|
data/lib/heartml/version.rb
CHANGED
data/lib/heartml.rb
CHANGED