klenod-build 0.0.10 → 0.0.11
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/klenod/build/plugins/haml_plugin/transformer.rb +52 -26
- data/lib/klenod/build/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 971caae6ad82448ab179cd8dc98c0920ac4422a2eea50a11d9a67c1097ecda7c
|
|
4
|
+
data.tar.gz: 8b1e33ab86a8c09a8a659d3caf68cf093b5adb7f33b3c6d988a85913ca865bbd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a664ddf7e161448788a7c5b3c8680acb07b12a16edeaccf9640cd260d8613457e096621ec2649ad3c7c6196364d353436bad856de1e390cb61a45142d6f7423e
|
|
7
|
+
data.tar.gz: eedab53d4360f66b32ff8397f280ce57b9d620d5a54fed5379a7aece96444cea1ef6a98219f5964fa2b7c931b5fce55f252ca62207f3a038bce9d314791e166f
|
|
@@ -216,7 +216,7 @@ module Klenod
|
|
|
216
216
|
measure_compile(:haml_build_expression_list) { builder.expressions(expressions) }
|
|
217
217
|
end
|
|
218
218
|
|
|
219
|
-
def compile_node_expressions(nodes, factory:, builder:, markdown_compiler:, styleable: false)
|
|
219
|
+
def compile_node_expressions(nodes, factory:, builder:, markdown_compiler:, styleable: false, join_adjacent_plain_text: false)
|
|
220
220
|
expressions = []
|
|
221
221
|
previous_node = nil
|
|
222
222
|
index = 0
|
|
@@ -224,7 +224,21 @@ module Klenod
|
|
|
224
224
|
while index < nodes.length
|
|
225
225
|
node = nodes[index]
|
|
226
226
|
|
|
227
|
-
if
|
|
227
|
+
if join_adjacent_plain_text && node.type == :plain
|
|
228
|
+
plain_nodes = [node]
|
|
229
|
+
index += 1
|
|
230
|
+
|
|
231
|
+
while index < nodes.length && nodes[index].type == :plain
|
|
232
|
+
plain_nodes << nodes[index]
|
|
233
|
+
index += 1
|
|
234
|
+
end
|
|
235
|
+
|
|
236
|
+
text = plain_nodes.map { it.value.fetch(:text).strip }.reject(&:empty?).join(" ")
|
|
237
|
+
next if text.empty?
|
|
238
|
+
|
|
239
|
+
expression = builder.marked_expression(source_mark(plain_nodes.first, builder: builder), builder.literal(text))
|
|
240
|
+
node = plain_nodes.last
|
|
241
|
+
elsif script_node?(node) && !continuation?(node)
|
|
228
242
|
group = [node]
|
|
229
243
|
index += 1
|
|
230
244
|
|
|
@@ -453,7 +467,14 @@ module Klenod
|
|
|
453
467
|
unless node.children.empty?
|
|
454
468
|
children.concat(
|
|
455
469
|
measure_compile_detail(:haml_compile_tag_children) do
|
|
456
|
-
compile_node_expressions(
|
|
470
|
+
compile_node_expressions(
|
|
471
|
+
node.children,
|
|
472
|
+
factory: factory,
|
|
473
|
+
styleable: styleable,
|
|
474
|
+
builder: builder,
|
|
475
|
+
markdown_compiler: markdown_compiler,
|
|
476
|
+
join_adjacent_plain_text: true
|
|
477
|
+
)
|
|
457
478
|
end
|
|
458
479
|
)
|
|
459
480
|
end
|
|
@@ -602,35 +623,40 @@ module Klenod
|
|
|
602
623
|
|
|
603
624
|
def dynamic_attributes(node, builder:, props:)
|
|
604
625
|
dynamic_attributes = node.value.fetch(:dynamic_attributes)
|
|
605
|
-
|
|
606
|
-
return {}
|
|
626
|
+
sources = [dynamic_attributes.new, dynamic_attributes.old].compact
|
|
627
|
+
return {} if sources.empty?
|
|
607
628
|
|
|
608
629
|
measure_compile(:haml_compile_dynamic_attributes) do
|
|
609
|
-
source = builder.line_rewritten_source(source, node.line)
|
|
610
|
-
simple = simple_dynamic_attributes(source, builder: builder) unless @event_handler
|
|
611
|
-
if simple
|
|
612
|
-
simple.each { |key, value| props[key] = value }
|
|
613
|
-
return simple
|
|
614
|
-
end
|
|
615
|
-
|
|
616
|
-
hash = builder.hash_expression(source, line_no: node.line)
|
|
617
|
-
unless hash
|
|
618
|
-
builder.ruby_parse_error(source, line_no: node.line, context: "Could not parse Haml dynamic attributes")
|
|
619
|
-
end
|
|
620
|
-
|
|
621
630
|
dynamic = {}
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
631
|
+
sources.each do |source|
|
|
632
|
+
source = builder.line_rewritten_source(source, node.line)
|
|
633
|
+
simple = simple_dynamic_attributes(source, builder: builder) unless @event_handler
|
|
634
|
+
if simple
|
|
635
|
+
simple.each do |key, value|
|
|
636
|
+
dynamic[key] = value
|
|
637
|
+
props[key] = value
|
|
638
|
+
end
|
|
627
639
|
next
|
|
628
640
|
end
|
|
629
641
|
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
642
|
+
hash = builder.hash_expression(source, line_no: node.line)
|
|
643
|
+
unless hash
|
|
644
|
+
builder.ruby_parse_error(source, line_no: node.line, context: "Could not parse Haml dynamic attributes")
|
|
645
|
+
end
|
|
646
|
+
|
|
647
|
+
hash.node.assocs.each do |assoc|
|
|
648
|
+
if assoc.is_a?(SyntaxTree::AssocSplat)
|
|
649
|
+
splat_source = hash.source[assoc.value.location.start_char...assoc.value.location.end_char]
|
|
650
|
+
props[ATTRIBUTE_SPLATS_KEY] ||= []
|
|
651
|
+
props[ATTRIBUTE_SPLATS_KEY] << builder.expression(splat_source)
|
|
652
|
+
next
|
|
653
|
+
end
|
|
654
|
+
|
|
655
|
+
key = attribute_key(assoc.key, builder: builder)
|
|
656
|
+
value = event_handler_value(key, assoc.value, builder: builder) || attribute_value(assoc, builder: builder)
|
|
657
|
+
dynamic[key] = value
|
|
658
|
+
props[key] = value
|
|
659
|
+
end
|
|
634
660
|
end
|
|
635
661
|
dynamic
|
|
636
662
|
end
|
data/lib/klenod/build/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: klenod-build
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.11
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Andrés Alin
|
|
@@ -15,14 +15,14 @@ dependencies:
|
|
|
15
15
|
requirements:
|
|
16
16
|
- - '='
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: 0.0.
|
|
18
|
+
version: 0.0.11
|
|
19
19
|
type: :runtime
|
|
20
20
|
prerelease: false
|
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
22
|
requirements:
|
|
23
23
|
- - '='
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: 0.0.
|
|
25
|
+
version: 0.0.11
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
27
|
name: async
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|