lutaml-model 0.8.100 → 0.8.101
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/lutaml/model/version.rb +1 -1
- data/lib/lutaml/xml/leptris/plan_serializer.rb +25 -2
- data/lib/lutaml/xml/leptris.rb +13 -0
- data/lutaml-model.gemspec +2 -2
- metadata +7 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 70de43228d2b233faab386c9016139160f2b75e9f76c27386de22104df2820f5
|
|
4
|
+
data.tar.gz: 78b4591ba8eec19bbc7fde9a1fd2d298c58094b1198352f2323067406d39b5aa
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f1d54790ba8f6d44834134ef283b3d146002e3ca4f2e25f0fb99e84bd442878d6470d50f6da81f36a8e4165e93c07e2e3a6de2cffeb981f45b40d849a6be1037
|
|
7
|
+
data.tar.gz: 4d358cd375296cdb737fa12300076a4154f38aa22ce940cbcb7483453691152d4cbfd25fef88131fe1150105868eb9a1d56fa193028f3bd51eff7eb853d43c09
|
data/lib/lutaml/model/version.rb
CHANGED
|
@@ -240,7 +240,7 @@ module Lutaml
|
|
|
240
240
|
when :raw
|
|
241
241
|
Array(value).each { |raw| element.add_child(raw.to_s) }
|
|
242
242
|
when :content, :content_deferred
|
|
243
|
-
Array(value).each { |run| element
|
|
243
|
+
Array(value).each { |run| append_text(element, run.to_s, doc) }
|
|
244
244
|
end
|
|
245
245
|
end
|
|
246
246
|
end
|
|
@@ -426,10 +426,33 @@ module Lutaml
|
|
|
426
426
|
def add_leaf(element, name, value, doc, attrs: nil)
|
|
427
427
|
child = element.create_child(name)
|
|
428
428
|
attrs&.each { |k, v| child[k.to_s] = v.to_s }
|
|
429
|
-
child
|
|
429
|
+
append_text(child, value.to_s, doc) unless value.nil?
|
|
430
430
|
child
|
|
431
431
|
end
|
|
432
432
|
|
|
433
|
+
# Text attach: the address face (leptris#408 adoption,
|
|
434
|
+
# leptris 1.9.334) passes raw node addresses — the pointer
|
|
435
|
+
# face mints an FFI::Pointer wrapper per fresh node, the
|
|
436
|
+
# last per-row Ruby-side allocation on the DOM build. Same
|
|
437
|
+
# semantics and status contract; probe-gated because a
|
|
438
|
+
# numerically newer lockstep can publish without the face.
|
|
439
|
+
def append_text(parent, text, doc)
|
|
440
|
+
node = doc.create_text_node(text)
|
|
441
|
+
if Leptris.text_attach_addr_compatible?
|
|
442
|
+
status = ::Leptris::XML::FFI.leptris_element_add_child_addr(
|
|
443
|
+
parent.c_address, node.c_address
|
|
444
|
+
)
|
|
445
|
+
unless status.zero?
|
|
446
|
+
raise ::Leptris::XML::Error,
|
|
447
|
+
"text attach failed (status=#{status})"
|
|
448
|
+
end
|
|
449
|
+
|
|
450
|
+
node
|
|
451
|
+
else
|
|
452
|
+
parent.add_child(node)
|
|
453
|
+
end
|
|
454
|
+
end
|
|
455
|
+
|
|
433
456
|
def value_of(instance, attr, delegate)
|
|
434
457
|
if delegate
|
|
435
458
|
target = instance.public_send(delegate)
|
data/lib/lutaml/xml/leptris.rb
CHANGED
|
@@ -97,6 +97,19 @@ module Lutaml
|
|
|
97
97
|
spec && spec.version >= Gem::Version.new(MIN_LEPTRIS_NS_UNQUALIFIED_VERSION)
|
|
98
98
|
end
|
|
99
99
|
|
|
100
|
+
# The address-based text attach (leptris#408, binding 1.9.334):
|
|
101
|
+
# leptris_element_add_child_addr skips the per-node FFI pointer
|
|
102
|
+
# mint. Capability-probed, not version-gated — the FFI face is
|
|
103
|
+
# attached or it is not, and a lockstep can publish without it.
|
|
104
|
+
@text_attach_addr = nil
|
|
105
|
+
def self.text_attach_addr_compatible?
|
|
106
|
+
return @text_attach_addr unless @text_attach_addr.nil?
|
|
107
|
+
|
|
108
|
+
@text_attach_addr =
|
|
109
|
+
!!(defined?(::Leptris::XML::FFI) &&
|
|
110
|
+
::Leptris::XML::FFI.respond_to?(:leptris_element_add_child_addr))
|
|
111
|
+
end
|
|
112
|
+
|
|
100
113
|
autoload :PlanCompiler, "lutaml/xml/leptris/plan_compiler"
|
|
101
114
|
autoload :PlanHydrator, "lutaml/xml/leptris/plan_hydrator"
|
|
102
115
|
autoload :PlanOrder, "lutaml/xml/leptris/plan_order"
|
data/lutaml-model.gemspec
CHANGED
|
@@ -33,7 +33,7 @@ Gem::Specification.new do |spec|
|
|
|
33
33
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
34
34
|
|
|
35
35
|
# required for liquid
|
|
36
|
-
spec.add_dependency "base64"
|
|
36
|
+
spec.add_dependency "base64", ">= 0.1.1"
|
|
37
37
|
spec.add_dependency "bigdecimal"
|
|
38
38
|
spec.add_dependency "canon"
|
|
39
39
|
spec.add_dependency "concurrent-ruby"
|
|
@@ -44,7 +44,7 @@ Gem::Specification.new do |spec|
|
|
|
44
44
|
spec.add_dependency "moxml", "~> 0.5.84"
|
|
45
45
|
spec.add_dependency "ostruct"
|
|
46
46
|
spec.add_dependency "rubyzip", "~> 3.7"
|
|
47
|
-
spec.add_dependency "thor"
|
|
47
|
+
spec.add_dependency "thor", "~> 1.4"
|
|
48
48
|
|
|
49
49
|
spec.metadata["rubygems_mfa_required"] = "true"
|
|
50
50
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lutaml-model
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.8.
|
|
4
|
+
version: 0.8.101
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
19
|
+
version: 0.1.1
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version:
|
|
26
|
+
version: 0.1.1
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: bigdecimal
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -132,16 +132,16 @@ dependencies:
|
|
|
132
132
|
name: thor
|
|
133
133
|
requirement: !ruby/object:Gem::Requirement
|
|
134
134
|
requirements:
|
|
135
|
-
- - "
|
|
135
|
+
- - "~>"
|
|
136
136
|
- !ruby/object:Gem::Version
|
|
137
|
-
version: '
|
|
137
|
+
version: '1.4'
|
|
138
138
|
type: :runtime
|
|
139
139
|
prerelease: false
|
|
140
140
|
version_requirements: !ruby/object:Gem::Requirement
|
|
141
141
|
requirements:
|
|
142
|
-
- - "
|
|
142
|
+
- - "~>"
|
|
143
143
|
- !ruby/object:Gem::Version
|
|
144
|
-
version: '
|
|
144
|
+
version: '1.4'
|
|
145
145
|
description: 'LutaML creating data models in Ruby
|
|
146
146
|
|
|
147
147
|
'
|