moxml 0.5.66 → 0.5.67

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: '09a2bb224c6634bc1b03be4d7c3e9e878624f8bbf14800987d697ba12c99a80f'
4
- data.tar.gz: 2ebdc4c85fb2101c4ff8999726d7ac6a38eab2809a62a1d8c436b3bbb60a568a
3
+ metadata.gz: 945e557e4dbc4028aa2c97eff20d12d62e34e866a1b27b788908ead119f9fbac
4
+ data.tar.gz: 7e327b86a60671f9824fec042b61da3a41753d8e13103062346a5941c3d14980
5
5
  SHA512:
6
- metadata.gz: 5f205b87427d7238d18101677340d0714c6fb486b3368a310e580e35bb98a74d6433a03dc5601b4f0f9d81e65ef4a92b443c76aab0c2abf1f6e733fe2838c20c
7
- data.tar.gz: 1b2da0651b61c31e82ac8f0c70746821064f06aa4585931d4878017acb879e63f8ad55958e68e83089e0a8fb9b91c406c299ee8e3efe2db0b06a05376db73d1e
6
+ metadata.gz: fd59e3f68acd8471903331eff3696af0fae5e64b06a49bd7d7526a5b4ee52078bc52d763e4bc2554f8294f90a4540836f1c2c2e0a8d6f9c3505706f4383a119e
7
+ data.tar.gz: e5ac7c12f77a6f89e2e3e55252cf7d67acce9340d61702e344fa818f8168749e59bc91c831c41e446509134e17e9f7fc526ba8105040ef34a66ef33a3a57f984
@@ -37,10 +37,19 @@ module Moxml
37
37
  end
38
38
 
39
39
  # The compiled spec the C executor consumes:
40
- # {name => [klass, attrs, text slot, children slot]}.
40
+ # {name => [klass, attrs, text slot, children slot]}. Slots
41
+ # resolve to member INDICES once — the C executor's Integer
42
+ # key path then writes by index, skipping the per-write member
43
+ # name scan.
41
44
  def compile
42
45
  @elements.each_with_object({}) do |(name, el), spec|
43
- spec[name] = [el.klass, el.attrs, el.text, el.children]
46
+ members = el.klass.members
47
+ spec[name] = [
48
+ el.klass,
49
+ el.attrs.each_with_object({}) { |(a, slot), h| h[a] = members.index(slot) || slot },
50
+ members.index(el.text) || el.text,
51
+ members.index(el.children) || el.children,
52
+ ]
44
53
  end
45
54
  end
46
55
 
data/lib/moxml/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Moxml
4
- VERSION = "0.5.66"
4
+ VERSION = "0.5.67"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moxml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.66
4
+ version: 0.5.67
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.