lutaml-model 0.8.22 → 0.8.24
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/.github/workflows/performance.yml +1 -1
- data/Gemfile +6 -0
- data/README.adoc +16 -7
- data/docs/_guides/index.adoc +4 -0
- data/docs/_guides/native-engines.adoc +61 -0
- data/docs/_guides/xml-mapping.adoc +31 -0
- data/docs/_pages/configuration.adoc +11 -7
- data/docs/_pages/serialization_adapters.adoc +14 -5
- data/lib/compat/opal/lutaml_model_boot.rb +2 -0
- data/lib/lutaml/json/adapter/multi_json_adapter.rb +12 -1
- data/lib/lutaml/json/adapter/oj_adapter.rb +7 -0
- data/lib/lutaml/json/adapter/standard_adapter.rb +17 -5
- data/lib/lutaml/json/adapter/yeptris_adapter.rb +21 -0
- data/lib/lutaml/json/adapter.rb +1 -0
- data/lib/lutaml/json/format.rb +1 -1
- data/lib/lutaml/json/generator_options.rb +62 -0
- data/lib/lutaml/jsonl/adapter/standard_adapter.rb +1 -1
- data/lib/lutaml/jsonld/adapter.rb +12 -4
- data/lib/lutaml/key_value/adapter/json/multi_json_adapter.rb +16 -1
- data/lib/lutaml/key_value/adapter/json/oj_adapter.rb +7 -0
- data/lib/lutaml/key_value/adapter/json/standard_adapter.rb +17 -5
- data/lib/lutaml/key_value/adapter/json/yeptris_adapter.rb +15 -0
- data/lib/lutaml/key_value/adapter/jsonl/standard_adapter.rb +1 -1
- data/lib/lutaml/key_value/adapter/toml/teptris_adapter.rb +42 -0
- data/lib/lutaml/key_value/adapter/toml.rb +1 -0
- data/lib/lutaml/key_value/adapter/yaml/yeptris_adapter.rb +15 -0
- data/lib/lutaml/key_value/transform.rb +82 -0
- data/lib/lutaml/key_value/transformation/value_serializer.rb +25 -0
- data/lib/lutaml/key_value/transformation.rb +25 -1
- data/lib/lutaml/model/adapter_resolver.rb +23 -6
- data/lib/lutaml/model/attribute.rb +31 -6
- data/lib/lutaml/model/collection.rb +5 -0
- data/lib/lutaml/model/configuration.rb +5 -0
- data/lib/lutaml/model/error/unknown_adapter_type_error.rb +4 -4
- data/lib/lutaml/model/serialization_adapter.rb +1 -1
- data/lib/lutaml/model/serialize/format_conversion.rb +75 -7
- data/lib/lutaml/model/serialize.rb +18 -0
- data/lib/lutaml/model/toml.rb +10 -6
- data/lib/lutaml/model/transformation.rb +5 -0
- data/lib/lutaml/model/type/date_time.rb +2 -2
- data/lib/lutaml/model/type/value.rb +24 -2
- data/lib/lutaml/model/utils.rb +6 -5
- data/lib/lutaml/model/version.rb +1 -1
- data/lib/lutaml/toml/adapter/teptris_adapter.rb +14 -0
- data/lib/lutaml/toml/adapter.rb +1 -0
- data/lib/lutaml/toml/format.rb +1 -1
- data/lib/lutaml/xml/adapter/leptris_adapter.rb +15 -0
- data/lib/lutaml/xml/adapter_element.rb +111 -3
- data/lib/lutaml/xml/builder/base.rb +3 -1
- data/lib/lutaml/xml/builder/leptris.rb +13 -0
- data/lib/lutaml/xml/builder/nokogiri.rb +3 -0
- data/lib/lutaml/xml/builder.rb +1 -0
- data/lib/lutaml/xml/format.rb +4 -1
- data/lib/lutaml/xml/leptris/element.rb +34 -0
- data/lib/lutaml/xml/mapping.rb +24 -0
- data/lib/lutaml/xml/model_transform.rb +52 -1
- data/lib/lutaml/xml/plan_compiler.rb +139 -0
- data/lib/lutaml/xml/plan_hydrator.rb +80 -0
- data/lib/lutaml/xml/transformation/custom_method_wrapper.rb +8 -0
- data/lib/lutaml/xml/transformation.rb +29 -0
- data/lib/lutaml/xml/xml_element.rb +6 -2
- data/lib/lutaml/yaml/adapter/yeptris_adapter.rb +40 -0
- data/lib/lutaml/yaml/adapter.rb +5 -0
- data/lib/lutaml/yaml/format.rb +1 -1
- data/lib/tasks/performance.rake +5 -0
- data/lib/tasks/performance_comparator.rb +19 -3
- data/lib/tasks/performance_probe.rake +33 -0
- data/lib/tasks/performance_probe.rb +106 -0
- data/lib/tasks/performance_probe_xml.rb +54 -0
- data/lutaml-model.gemspec +1 -1
- data/spec/lutaml/json/adapter/standard_adapter_spec.rb +159 -0
- data/spec/lutaml/json/yeptris_adapter_spec.rb +63 -0
- data/spec/lutaml/jsonld/adapter_spec.rb +19 -0
- data/spec/lutaml/key_value/adapter/toml/teptris_adapter_spec.rb +71 -0
- data/spec/lutaml/model/collection_spec.rb +1 -1
- data/spec/lutaml/model/collection_state_nesting_spec.rb +44 -0
- data/spec/lutaml/model/generator_defaults_spec.rb +101 -0
- data/spec/lutaml/model/json_adapter_spec.rb +6 -0
- data/spec/lutaml/model/json_state_nesting_spec.rb +82 -0
- data/spec/lutaml/model/toml_adapter_spec.rb +8 -0
- data/spec/lutaml/model/toml_spec.rb +36 -1
- data/spec/lutaml/xml/plan_fast_path_spec.rb +96 -0
- data/spec/lutaml/xml/shared_element_rules_spec.rb +64 -0
- data/spec/lutaml/xml/xml_spec.rb +13 -0
- data/spec/lutaml/yaml/yeptris_adapter_spec.rb +63 -0
- data/spec/spec_helper.rb +7 -1
- metadata +29 -4
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "spec_helper"
|
|
4
|
+
|
|
5
|
+
RSpec.describe "XML plan fast path" do
|
|
6
|
+
let(:classes) do
|
|
7
|
+
item_class = Class.new(Lutaml::Model::Serializable) do
|
|
8
|
+
attribute :id, :integer
|
|
9
|
+
attribute :name, :string
|
|
10
|
+
attribute :tags, :string, collection: true
|
|
11
|
+
|
|
12
|
+
xml do
|
|
13
|
+
element "item"
|
|
14
|
+
map_attribute "id", to: :id
|
|
15
|
+
map_element "name", to: :name
|
|
16
|
+
map_element "tag", to: :tags
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
root_class = Class.new(Lutaml::Model::Serializable) do
|
|
20
|
+
attribute :item, item_class, collection: true
|
|
21
|
+
|
|
22
|
+
xml do
|
|
23
|
+
element "root"
|
|
24
|
+
map_element "item", to: :item
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
[item_class, root_class]
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
let(:item_class) { classes[0] }
|
|
31
|
+
let(:root_class) { classes[1] }
|
|
32
|
+
|
|
33
|
+
around do |example|
|
|
34
|
+
old = Lutaml::Model::Config.instance.xml_plan_fast_path
|
|
35
|
+
Lutaml::Model::Config.instance.xml_plan_fast_path = true
|
|
36
|
+
example.run
|
|
37
|
+
ensure
|
|
38
|
+
Lutaml::Model::Config.instance.xml_plan_fast_path = old
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it "is opt-in and off by default" do
|
|
42
|
+
expect(Lutaml::Model::Configuration.new.xml_plan_fast_path).to be(false)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it "hydrates equal to the interpretive path" do
|
|
46
|
+
xml = root_class.new(item: [
|
|
47
|
+
item_class.new(id: 1, name: "a", tags: %w[x y]),
|
|
48
|
+
item_class.new(id: 2, name: "b", tags: %w[z]),
|
|
49
|
+
]).to_xml
|
|
50
|
+
|
|
51
|
+
expect(root_class.from_xml(xml).item).to eq(root_class.new(item: [
|
|
52
|
+
item_class.new(id: 1, name: "a", tags: %w[x y]),
|
|
53
|
+
item_class.new(id: 2, name: "b", tags: %w[z]),
|
|
54
|
+
]).item)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
it "matches the interpretive path on missing elements" do
|
|
58
|
+
xml = <<~XML
|
|
59
|
+
<root>
|
|
60
|
+
<item id="1"><name>A</name><tag>x</tag></item>
|
|
61
|
+
<item id="2"><tag>y</tag><tag>z</tag></item>
|
|
62
|
+
<item id="3"><name>C</name></item>
|
|
63
|
+
</root>
|
|
64
|
+
XML
|
|
65
|
+
|
|
66
|
+
parsed = root_class.from_xml(xml)
|
|
67
|
+
expect(parsed.item.map { |i| [i.id, i.name, i.tags] })
|
|
68
|
+
.to eq([[1, "A", %w[x]], [2, nil, %w[y z]], [3, "C", []]])
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
it "wraps engine parse errors as InvalidFormatError" do
|
|
72
|
+
Lutaml::Model::Config.with_adapter(xml: :leptris) do
|
|
73
|
+
expect { root_class.from_xml("<root><item>") }
|
|
74
|
+
.to raise_error(Lutaml::Model::InvalidFormatError)
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
it "falls back for non-compilable models" do
|
|
79
|
+
klass = Class.new(Lutaml::Model::Serializable) do
|
|
80
|
+
attribute :note, :string
|
|
81
|
+
|
|
82
|
+
xml do
|
|
83
|
+
element "doc"
|
|
84
|
+
map_element "note", to: :note, with: { from: :note_from }
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def note_from(instance, value)
|
|
88
|
+
instance.note = value.text
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
expect(Lutaml::Xml::PlanCompiler.compile(klass,
|
|
93
|
+
Lutaml::Model::Config.default_register)).to be_nil
|
|
94
|
+
expect(klass.from_xml("<doc><note>hi</note></doc>").note).to eq("hi")
|
|
95
|
+
end
|
|
96
|
+
end
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "spec_helper"
|
|
4
|
+
|
|
5
|
+
# lutaml-model#765: two element rules mapped to one collection attribute
|
|
6
|
+
# (spelling tolerance, e.g. metanorma's editorial-group/editorialgroup).
|
|
7
|
+
# Parse must merge the spellings' content in document order — never drop
|
|
8
|
+
# the first silently — and serialization must emit the value once, under
|
|
9
|
+
# the first declared spelling.
|
|
10
|
+
module SharedElementRulesSpec
|
|
11
|
+
class Both < Lutaml::Model::Serializable
|
|
12
|
+
attribute :items, :string, collection: true
|
|
13
|
+
|
|
14
|
+
xml do
|
|
15
|
+
root "r"
|
|
16
|
+
map_element "a", to: :items
|
|
17
|
+
map_element "b", to: :items
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
RSpec.describe "multiple element rules on one attribute" do
|
|
23
|
+
it "appends both spellings in document order" do
|
|
24
|
+
expect(SharedElementRulesSpec::Both.from_xml("<r><a>one</a><b>two</b></r>").items)
|
|
25
|
+
.to eq(["one", "two"])
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it "appends in document order when the second spelling comes first" do
|
|
29
|
+
expect(SharedElementRulesSpec::Both.from_xml("<r><b>two</b><a>one</a></r>").items)
|
|
30
|
+
.to eq(["two", "one"])
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it "keeps document order across interleaved spellings" do
|
|
34
|
+
xml = "<r><a>1</a><b>2</b><a>3</a><b>4</b></r>"
|
|
35
|
+
expect(SharedElementRulesSpec::Both.from_xml(xml).items).to eq(%w[1 2 3 4])
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it "parses a document that only uses the first spelling" do
|
|
39
|
+
expect(SharedElementRulesSpec::Both.from_xml("<r><a>one</a></r>").items)
|
|
40
|
+
.to eq(["one"])
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
it "parses a document that only uses the second spelling" do
|
|
44
|
+
expect(SharedElementRulesSpec::Both.from_xml("<r><b>two</b></r>").items)
|
|
45
|
+
.to eq(["two"])
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
it "serializes the value once, under the first declared spelling" do
|
|
49
|
+
xml = SharedElementRulesSpec::Both.new(items: %w[one two]).to_xml
|
|
50
|
+
expect(xml.scan(/<(a|b)>/).flatten).to eq(%w[a a])
|
|
51
|
+
expect(xml).to include("<a>one</a>").and include("<a>two</a>")
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
it "round-trips through both spellings without losing content" do
|
|
55
|
+
doc = SharedElementRulesSpec::Both.from_xml("<r><a>one</a><b>two</b></r>")
|
|
56
|
+
reparsed = SharedElementRulesSpec::Both.from_xml(doc.to_xml)
|
|
57
|
+
expect(reparsed.items).to eq(%w[one two])
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
it "keeps the mapping usable when the attribute also has a default" do
|
|
61
|
+
both = SharedElementRulesSpec::Both.from_xml("<r/>")
|
|
62
|
+
expect(both.items).to eq([])
|
|
63
|
+
end
|
|
64
|
+
end
|
data/spec/lutaml/xml/xml_spec.rb
CHANGED
|
@@ -120,6 +120,19 @@ RSpec.describe Lutaml::Xml do
|
|
|
120
120
|
hide_const("Ox") if Object.const_defined?(:Ox)
|
|
121
121
|
hide_const("Oga") if Object.const_defined?(:Oga)
|
|
122
122
|
hide_const("REXML") if Object.const_defined?(:REXML)
|
|
123
|
+
# When the leptris gem is in the bundle, moxml prefers it over every
|
|
124
|
+
# other engine; the legacy-detection contexts below must opt out to
|
|
125
|
+
# exercise the fallback chain.
|
|
126
|
+
allow(Moxml::Config).to receive(:leptris_preferred_available?)
|
|
127
|
+
.and_return(false)
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
context "when the leptris engine is in the bundle" do
|
|
131
|
+
it "prefers :leptris" do
|
|
132
|
+
allow(Moxml::Config).to receive(:leptris_preferred_available?)
|
|
133
|
+
.and_return(true)
|
|
134
|
+
expect(described_class.detect_xml_adapter).to eq(:leptris)
|
|
135
|
+
end
|
|
123
136
|
end
|
|
124
137
|
|
|
125
138
|
context "when Nokogiri is available" do
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "spec_helper"
|
|
4
|
+
begin
|
|
5
|
+
require "lutaml/yaml/adapter/yeptris_adapter"
|
|
6
|
+
rescue LoadError
|
|
7
|
+
# yeptris ships no platform gem here (e.g. Windows): every example skips.
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
YEPTRIS_AVAILABLE = defined?(Yeptris)
|
|
11
|
+
|
|
12
|
+
RSpec.describe(YEPTRIS_AVAILABLE ? Lutaml::Yaml::Adapter::YeptrisAdapter : Object) do
|
|
13
|
+
before { skip "yeptris is not available on this platform" unless YEPTRIS_AVAILABLE }
|
|
14
|
+
|
|
15
|
+
let(:attributes) { { "name" => "John", "roles" => %w[admin dev] } }
|
|
16
|
+
|
|
17
|
+
describe ".parse" do
|
|
18
|
+
it "parses a YAML document into a hash" do
|
|
19
|
+
expect(described_class.parse("name: John\nroles:\n - admin\n - dev\n"))
|
|
20
|
+
.to eq(attributes)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it "round-trips nested structures" do
|
|
24
|
+
yaml = described_class.parse("outer:\n inner: 1\n")
|
|
25
|
+
expect(yaml).to eq("outer" => { "inner" => 1 })
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it "supports the same permitted classes as the standard adapter" do
|
|
29
|
+
require "date"
|
|
30
|
+
expect(described_class.parse("d: 2020-01-01\n"))
|
|
31
|
+
.to eq("d" => Date.new(2020, 1, 1))
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
describe "#to_yaml" do
|
|
36
|
+
subject(:document) { described_class.new(attributes) }
|
|
37
|
+
|
|
38
|
+
it "serializes a hash to YAML that parses back identically" do
|
|
39
|
+
expect(described_class.parse(document.to_yaml)).to eq(attributes)
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
describe "round trip through a model" do
|
|
44
|
+
let(:model_class) do
|
|
45
|
+
Class.new(Lutaml::Model::Serializable) do
|
|
46
|
+
attribute :name, :string
|
|
47
|
+
attribute :roles, :string, collection: true
|
|
48
|
+
|
|
49
|
+
key_value do
|
|
50
|
+
map "name", to: :name
|
|
51
|
+
map "roles", to: :roles
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
it "deserializes and serializes via the yeptris engine" do
|
|
57
|
+
model = model_class.from_yaml("name: John\nroles:\n - admin\n - dev\n")
|
|
58
|
+
expect(model.name).to eq("John")
|
|
59
|
+
expect(model.roles).to eq(%w[admin dev])
|
|
60
|
+
expect(model_class.from_yaml(model.to_yaml).roles).to eq(%w[admin dev])
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -99,7 +99,13 @@ require_relative "support/test_adapter_config"
|
|
|
99
99
|
# require_relative "../lib/lutaml/model/toml_adapter/toml_rb_adapter"
|
|
100
100
|
|
|
101
101
|
Lutaml::Model::Config.configure do |config|
|
|
102
|
-
config.xml_adapter_type = RUBY_ENGINE == "opal"
|
|
102
|
+
config.xml_adapter_type = if RUBY_ENGINE == "opal"
|
|
103
|
+
:oga
|
|
104
|
+
elsif ENV["XML_ADAPTER"]
|
|
105
|
+
ENV["XML_ADAPTER"].to_sym
|
|
106
|
+
else
|
|
107
|
+
:nokogiri
|
|
108
|
+
end
|
|
103
109
|
config.hash_adapter_type = :standard
|
|
104
110
|
config.json_adapter_type = :standard
|
|
105
111
|
config.yaml_adapter_type = :standard
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
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.24
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-09-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: base64
|
|
@@ -92,14 +92,14 @@ dependencies:
|
|
|
92
92
|
requirements:
|
|
93
93
|
- - "~>"
|
|
94
94
|
- !ruby/object:Gem::Version
|
|
95
|
-
version: 0.5.
|
|
95
|
+
version: 0.5.34
|
|
96
96
|
type: :runtime
|
|
97
97
|
prerelease: false
|
|
98
98
|
version_requirements: !ruby/object:Gem::Requirement
|
|
99
99
|
requirements:
|
|
100
100
|
- - "~>"
|
|
101
101
|
- !ruby/object:Gem::Version
|
|
102
|
-
version: 0.5.
|
|
102
|
+
version: 0.5.34
|
|
103
103
|
- !ruby/object:Gem::Dependency
|
|
104
104
|
name: ostruct
|
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -208,6 +208,7 @@ files:
|
|
|
208
208
|
- docs/_guides/keyvalue-serialization.adoc
|
|
209
209
|
- docs/_guides/liquid-templates.adoc
|
|
210
210
|
- docs/_guides/missing-values-handling.adoc
|
|
211
|
+
- docs/_guides/native-engines.adoc
|
|
211
212
|
- docs/_guides/ooxml-examples.adoc
|
|
212
213
|
- docs/_guides/opal.adoc
|
|
213
214
|
- docs/_guides/rdf-serialization.adoc
|
|
@@ -320,7 +321,9 @@ files:
|
|
|
320
321
|
- lib/lutaml/json/adapter/oj_adapter.rb
|
|
321
322
|
- lib/lutaml/json/adapter/standard_adapter.rb
|
|
322
323
|
- lib/lutaml/json/adapter/transform.rb
|
|
324
|
+
- lib/lutaml/json/adapter/yeptris_adapter.rb
|
|
323
325
|
- lib/lutaml/json/format.rb
|
|
326
|
+
- lib/lutaml/json/generator_options.rb
|
|
324
327
|
- lib/lutaml/json/schema.rb
|
|
325
328
|
- lib/lutaml/json/schema/json_schema.rb
|
|
326
329
|
- lib/lutaml/json/type/serializers.rb
|
|
@@ -350,6 +353,7 @@ files:
|
|
|
350
353
|
- lib/lutaml/key_value/adapter/json/oj_adapter.rb
|
|
351
354
|
- lib/lutaml/key_value/adapter/json/standard_adapter.rb
|
|
352
355
|
- lib/lutaml/key_value/adapter/json/transform.rb
|
|
356
|
+
- lib/lutaml/key_value/adapter/json/yeptris_adapter.rb
|
|
353
357
|
- lib/lutaml/key_value/adapter/jsonl.rb
|
|
354
358
|
- lib/lutaml/key_value/adapter/jsonl/document.rb
|
|
355
359
|
- lib/lutaml/key_value/adapter/jsonl/mapping.rb
|
|
@@ -360,6 +364,7 @@ files:
|
|
|
360
364
|
- lib/lutaml/key_value/adapter/toml/document.rb
|
|
361
365
|
- lib/lutaml/key_value/adapter/toml/mapping.rb
|
|
362
366
|
- lib/lutaml/key_value/adapter/toml/mapping_rule.rb
|
|
367
|
+
- lib/lutaml/key_value/adapter/toml/teptris_adapter.rb
|
|
363
368
|
- lib/lutaml/key_value/adapter/toml/toml_rb_adapter.rb
|
|
364
369
|
- lib/lutaml/key_value/adapter/toml/tomlib_adapter.rb
|
|
365
370
|
- lib/lutaml/key_value/adapter/toml/transform.rb
|
|
@@ -369,6 +374,7 @@ files:
|
|
|
369
374
|
- lib/lutaml/key_value/adapter/yaml/mapping_rule.rb
|
|
370
375
|
- lib/lutaml/key_value/adapter/yaml/standard_adapter.rb
|
|
371
376
|
- lib/lutaml/key_value/adapter/yaml/transform.rb
|
|
377
|
+
- lib/lutaml/key_value/adapter/yaml/yeptris_adapter.rb
|
|
372
378
|
- lib/lutaml/key_value/adapter/yamls.rb
|
|
373
379
|
- lib/lutaml/key_value/adapter/yamls/document.rb
|
|
374
380
|
- lib/lutaml/key_value/adapter/yamls/mapping.rb
|
|
@@ -677,6 +683,7 @@ files:
|
|
|
677
683
|
- lib/lutaml/toml/adapter/document.rb
|
|
678
684
|
- lib/lutaml/toml/adapter/mapping.rb
|
|
679
685
|
- lib/lutaml/toml/adapter/mapping_rule.rb
|
|
686
|
+
- lib/lutaml/toml/adapter/teptris_adapter.rb
|
|
680
687
|
- lib/lutaml/toml/adapter/toml_rb_adapter.rb
|
|
681
688
|
- lib/lutaml/toml/adapter/tomlib_adapter.rb
|
|
682
689
|
- lib/lutaml/toml/adapter/transform.rb
|
|
@@ -690,6 +697,7 @@ files:
|
|
|
690
697
|
- lib/lutaml/xml/adapter.rb
|
|
691
698
|
- lib/lutaml/xml/adapter/adapter_helpers.rb
|
|
692
699
|
- lib/lutaml/xml/adapter/base_adapter.rb
|
|
700
|
+
- lib/lutaml/xml/adapter/leptris_adapter.rb
|
|
693
701
|
- lib/lutaml/xml/adapter/namespace_data.rb
|
|
694
702
|
- lib/lutaml/xml/adapter/namespace_uri_collector.rb
|
|
695
703
|
- lib/lutaml/xml/adapter/nokogiri_adapter.rb
|
|
@@ -706,6 +714,7 @@ files:
|
|
|
706
714
|
- lib/lutaml/xml/blank_namespace_handler.rb
|
|
707
715
|
- lib/lutaml/xml/builder.rb
|
|
708
716
|
- lib/lutaml/xml/builder/base.rb
|
|
717
|
+
- lib/lutaml/xml/builder/leptris.rb
|
|
709
718
|
- lib/lutaml/xml/builder/nokogiri.rb
|
|
710
719
|
- lib/lutaml/xml/builder/oga.rb
|
|
711
720
|
- lib/lutaml/xml/builder/ox.rb
|
|
@@ -752,6 +761,7 @@ files:
|
|
|
752
761
|
- lib/lutaml/xml/format.rb
|
|
753
762
|
- lib/lutaml/xml/format_chooser.rb
|
|
754
763
|
- lib/lutaml/xml/hoisting_algorithm.rb
|
|
764
|
+
- lib/lutaml/xml/leptris/element.rb
|
|
755
765
|
- lib/lutaml/xml/listener.rb
|
|
756
766
|
- lib/lutaml/xml/mapping.rb
|
|
757
767
|
- lib/lutaml/xml/mapping_rule.rb
|
|
@@ -779,6 +789,8 @@ files:
|
|
|
779
789
|
- lib/lutaml/xml/parse_session.rb
|
|
780
790
|
- lib/lutaml/xml/parsed_namespace_declaration.rb
|
|
781
791
|
- lib/lutaml/xml/parsed_namespace_set.rb
|
|
792
|
+
- lib/lutaml/xml/plan_compiler.rb
|
|
793
|
+
- lib/lutaml/xml/plan_hydrator.rb
|
|
782
794
|
- lib/lutaml/xml/polymorphic_value_handler.rb
|
|
783
795
|
- lib/lutaml/xml/qualified_inheritance_strategy.rb
|
|
784
796
|
- lib/lutaml/xml/rexml.rb
|
|
@@ -903,6 +915,7 @@ files:
|
|
|
903
915
|
- lib/lutaml/yaml/adapter/mapping_rule.rb
|
|
904
916
|
- lib/lutaml/yaml/adapter/standard_adapter.rb
|
|
905
917
|
- lib/lutaml/yaml/adapter/transform.rb
|
|
918
|
+
- lib/lutaml/yaml/adapter/yeptris_adapter.rb
|
|
906
919
|
- lib/lutaml/yaml/format.rb
|
|
907
920
|
- lib/lutaml/yaml/schema.rb
|
|
908
921
|
- lib/lutaml/yaml/schema/yaml_schema.rb
|
|
@@ -925,6 +938,9 @@ files:
|
|
|
925
938
|
- lib/tasks/performance_benchmark.rb
|
|
926
939
|
- lib/tasks/performance_comparator.rb
|
|
927
940
|
- lib/tasks/performance_helpers.rb
|
|
941
|
+
- lib/tasks/performance_probe.rake
|
|
942
|
+
- lib/tasks/performance_probe.rb
|
|
943
|
+
- lib/tasks/performance_probe_xml.rb
|
|
928
944
|
- lib/tasks/xml_compiler_benchmark.rb
|
|
929
945
|
- lib/tasks/xml_optimization_benchmark.rb
|
|
930
946
|
- lutaml-model.gemspec
|
|
@@ -1638,7 +1654,10 @@ files:
|
|
|
1638
1654
|
- spec/lutaml/integration/edge_cases_spec.rb
|
|
1639
1655
|
- spec/lutaml/integration/multi_format_spec.rb
|
|
1640
1656
|
- spec/lutaml/integration/round_trip_spec.rb
|
|
1657
|
+
- spec/lutaml/json/adapter/standard_adapter_spec.rb
|
|
1658
|
+
- spec/lutaml/json/yeptris_adapter_spec.rb
|
|
1641
1659
|
- spec/lutaml/jsonld/adapter_spec.rb
|
|
1660
|
+
- spec/lutaml/key_value/adapter/toml/teptris_adapter_spec.rb
|
|
1642
1661
|
- spec/lutaml/key_value/transformation/collection_serializer_spec.rb
|
|
1643
1662
|
- spec/lutaml/key_value/transformation/rule_compiler_spec.rb
|
|
1644
1663
|
- spec/lutaml/key_value/transformation/value_serializer_spec.rb
|
|
@@ -1657,6 +1676,7 @@ files:
|
|
|
1657
1676
|
- spec/lutaml/model/collection_index_spec.rb
|
|
1658
1677
|
- spec/lutaml/model/collection_mutation_spec.rb
|
|
1659
1678
|
- spec/lutaml/model/collection_spec.rb
|
|
1679
|
+
- spec/lutaml/model/collection_state_nesting_spec.rb
|
|
1660
1680
|
- spec/lutaml/model/collection_validation_spec.rb
|
|
1661
1681
|
- spec/lutaml/model/comparable_model_spec.rb
|
|
1662
1682
|
- spec/lutaml/model/compiled_rule_spec.rb
|
|
@@ -1677,6 +1697,7 @@ files:
|
|
|
1677
1697
|
- spec/lutaml/model/enum_spec.rb
|
|
1678
1698
|
- spec/lutaml/model/except_spec.rb
|
|
1679
1699
|
- spec/lutaml/model/finalization_cache_spec.rb
|
|
1700
|
+
- spec/lutaml/model/generator_defaults_spec.rb
|
|
1680
1701
|
- spec/lutaml/model/global_context_spec.rb
|
|
1681
1702
|
- spec/lutaml/model/global_register_spec.rb
|
|
1682
1703
|
- spec/lutaml/model/group_spec.rb
|
|
@@ -1686,6 +1707,7 @@ files:
|
|
|
1686
1707
|
- spec/lutaml/model/inheritance_spec.rb
|
|
1687
1708
|
- spec/lutaml/model/json_adapter_spec.rb
|
|
1688
1709
|
- spec/lutaml/model/json_spec.rb
|
|
1710
|
+
- spec/lutaml/model/json_state_nesting_spec.rb
|
|
1689
1711
|
- spec/lutaml/model/jsonl/standard_adapter_spec.rb
|
|
1690
1712
|
- spec/lutaml/model/jsonl_spec.rb
|
|
1691
1713
|
- spec/lutaml/model/key_value_data_model/key_value_element_spec.rb
|
|
@@ -1888,6 +1910,7 @@ files:
|
|
|
1888
1910
|
- spec/lutaml/xml/ordered_method_spec.rb
|
|
1889
1911
|
- spec/lutaml/xml/out_of_namespace_parsing_spec.rb
|
|
1890
1912
|
- spec/lutaml/xml/pipeline_integration_spec.rb
|
|
1913
|
+
- spec/lutaml/xml/plan_fast_path_spec.rb
|
|
1891
1914
|
- spec/lutaml/xml/prefix_control_spec.rb
|
|
1892
1915
|
- spec/lutaml/xml/register_spec.rb
|
|
1893
1916
|
- spec/lutaml/xml/reusable_mapping_spec.rb
|
|
@@ -1916,6 +1939,7 @@ files:
|
|
|
1916
1939
|
- spec/lutaml/xml/schema/xsd/xsd_spec.rb
|
|
1917
1940
|
- spec/lutaml/xml/schema_primer_spec.rb
|
|
1918
1941
|
- spec/lutaml/xml/serializable_namespace_spec.rb
|
|
1942
|
+
- spec/lutaml/xml/shared_element_rules_spec.rb
|
|
1919
1943
|
- spec/lutaml/xml/transformation/custom_method_wrapper_spec.rb
|
|
1920
1944
|
- spec/lutaml/xml/transformation_spec.rb
|
|
1921
1945
|
- spec/lutaml/xml/type_namespace/collector_spec.rb
|
|
@@ -1936,6 +1960,7 @@ files:
|
|
|
1936
1960
|
- spec/lutaml/xml/xml_space_spec.rb
|
|
1937
1961
|
- spec/lutaml/xml/xml_space_type_spec.rb
|
|
1938
1962
|
- spec/lutaml/xml/xml_spec.rb
|
|
1963
|
+
- spec/lutaml/yaml/yeptris_adapter_spec.rb
|
|
1939
1964
|
- spec/lutaml/yamlld/adapter_spec.rb
|
|
1940
1965
|
- spec/lutaml/yamlld/registration_spec.rb
|
|
1941
1966
|
- spec/parent_root_spec.rb
|