klenod-build 0.0.15 → 0.0.16

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: abf589452fadde26fe16d0bbc326e0161e8ed8a719ea516e12e286ef8e1609aa
4
- data.tar.gz: 9f54e971b5dc88cd07348be0d96e9885928db10c64b4228bfb64e350b202f669
3
+ metadata.gz: f6e40006fd1c7bfbe3441e5ae89f60b136a4fb6c6ca24da762346c785e61983c
4
+ data.tar.gz: 8927ec3112ab13d5ba3e936820f532528fae9f8556967c9bfaba352e9362898a
5
5
  SHA512:
6
- metadata.gz: af84591cca45a914ffbf087f308eea54d264cb14a0e03d6e60732a806d5e4cf44b00d291679b1f3dfe1f6d39f58bda043ff6b1de625b9d904667d2db5f8a6c07
7
- data.tar.gz: 8f5fbdc8411f73fee7b7f6b86f803d7e04e588db97dc3d4d5019b7bf08cc63a1d73b05d82a97e74135fc2370be072b00524b7df3ac301c0ed2f4eb025c4352d7
6
+ metadata.gz: 31dedad665ee4b642d6b8517a9bb9fe2e9bf20a1a93c430a45c29c0ba9db497a40b06553be170965ba3e6a62adec01d0500fcfb3a7e370b6fc59ef6aa5c50ec7
7
+ data.tar.gz: 181a6b2156410d3fd6f5b33a5830a03c0b304e7a3eba1920fa4dc75b043cd14aa0ace57d7a275502c79c59267f89136a416b330a286591c66f0c26cb44dc385d
@@ -625,12 +625,15 @@ module Klenod
625
625
 
626
626
  def dynamic_attributes(node, builder:, props:)
627
627
  dynamic_attributes = node.value.fetch(:dynamic_attributes)
628
- sources = [dynamic_attributes.new, dynamic_attributes.old].compact
628
+ sources = [
629
+ [dynamic_attributes.new, true],
630
+ [dynamic_attributes.old, false]
631
+ ].reject { |source, _parenthesized| source.nil? }
629
632
  return {} if sources.empty?
630
633
 
631
634
  measure_compile(:haml_compile_dynamic_attributes) do
632
635
  dynamic = {}
633
- sources.each do |source|
636
+ sources.each do |source, parenthesized|
634
637
  source = builder.line_rewritten_source(source, node.line)
635
638
  simple = simple_dynamic_attributes(source, builder: builder) unless @event_handler
636
639
  if simple
@@ -655,7 +658,7 @@ module Klenod
655
658
  end
656
659
 
657
660
  key = attribute_key(assoc.key, builder: builder)
658
- value = event_handler_value(key, assoc.value, builder: builder) || attribute_value(assoc, builder: builder)
661
+ value = event_handler_value(key, assoc.value, parenthesized: parenthesized, builder: builder) || attribute_value(assoc, builder: builder)
659
662
  dynamic[key] = value
660
663
  props[key] = value
661
664
  end
@@ -784,14 +787,19 @@ module Klenod
784
787
  builder.ruby_parse_error(source, line_no: assoc.key.location&.start_line, context: "Could not parse Haml dynamic attributes")
785
788
  end
786
789
 
787
- def event_handler_value(key, value, builder:)
788
- return unless @event_handler && key.to_s.match?(/\Aon[a-z]/)
790
+ def event_handler_value(key, value, parenthesized:, builder:)
791
+ normalized_key = key.to_s.tr("-", "_")
792
+ return unless normalized_key.match?(/\Aon(?:[a-z]|_[a-z])/)
789
793
  return unless value
790
794
 
791
795
  method_name = builder.fragment(value).source
792
796
  return unless method_name.match?(/\A[a-zA-Z_]\w*[!?=]?\z/)
793
797
 
794
- builder.expression("#{@event_handler}.callback(self, :#{method_name})")
798
+ if @event_handler
799
+ builder.expression("#{@event_handler}.callback(self, :#{method_name})")
800
+ elsif parenthesized
801
+ builder.symbol(method_name)
802
+ end
795
803
  end
796
804
 
797
805
  def omitted_attribute_value_name(node)
@@ -22,7 +22,7 @@ module Klenod
22
22
 
23
23
  def compile(source, interpolate: false)
24
24
  source = protect_escaped_interpolation(source) if interpolate
25
- document = Kramdown::Document.new(source, input: "GFM")
25
+ document = Kramdown::Document.new(source, input: "GFM", hard_wrap: false)
26
26
  compile_children(document.root.children, interpolate: interpolate)
27
27
  end
28
28
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Klenod
4
4
  module Build
5
- VERSION = "0.0.15"
5
+ VERSION = "0.0.16"
6
6
  end
7
7
  end
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.15
4
+ version: 0.0.16
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.15
18
+ version: 0.0.16
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.15
25
+ version: 0.0.16
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: async
28
28
  requirement: !ruby/object:Gem::Requirement