lutaml-model 0.8.135 → 0.8.137

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: 51feb7853a13baba31f30840887bffdaa44dd44e7fe29c31e8e5fe1657847db7
4
- data.tar.gz: 1464e32175a9ad90844529f27703040ee6e363184ce86c6edb7d6bcd560d287a
3
+ metadata.gz: 6c2afc32a6388d8ebb0a54a71a1e985860511be854729f2776a5075f255ff0eb
4
+ data.tar.gz: 6bc50c18c84ab0dc27466b32d9de5566d52d95eb54669c33dcea41fde3ac98f6
5
5
  SHA512:
6
- metadata.gz: 5da32b5d0a99d97d60db8b7a0936cd1ad550779246397446d08fdc39082b5e6b847f9bf9070ea7c424df2597a4dc9ee683256b127f8425e25c736be318646d66
7
- data.tar.gz: 50614e126790cd21f7a377d6dd777125c1ea8d90275323bb213607e06a747620758323b42c75a1b73205adc9396663ce30eda8fb2f6169bc2025ca3e48812548
6
+ metadata.gz: f2e701ec4c50e37c12c781d14b2fae5296cb95c0845b77a505d3f160c6c7b9ba7b960dadfe2e6d7b580122b8f122b6f1824d6f576f82f39767725ed508676503
7
+ data.tar.gz: e31699cf34fb46a2c0b2a0cec58e3fce25681c2a1f91c0eab74b0694a60e0f248cb666d5194bfb6630293095b696486f1c2c8c16f854f8303f3bf9b7932ae083
@@ -25,7 +25,12 @@ jobs:
25
25
  rake:
26
26
  uses: metanorma/ci/.github/workflows/dependent-rake.yml@main
27
27
  with:
28
- command: bundle exec rspec
28
+ # #1020: the spec-file count distinguishes a truncated checkout from
29
+ # a full one, and the explicit rspec-exit line separates an
30
+ # in-process exit (green summary, nonzero code) from test failures.
31
+ # set +e keeps the capture alive under the runner's errexit; the
32
+ # final exit preserves rspec's own status — nothing is masked.
33
+ command: set +e; echo "spec-files=$(find spec -name '*_spec.rb' 2>/dev/null | wc -l)"; bundle exec rspec > rspec-run.log 2>&1; code=$?; echo "rspec-exit=$code"; tail -25 rspec-run.log; exit $code
29
34
  repos-json-file: .github/workflows/dependent-repos.json
30
35
  after-setup-ruby: |
31
36
  if [ -f frontend/package.json ]; then cd frontend && npm install && npm run build; fi
@@ -39,7 +44,7 @@ jobs:
39
44
  rake-with-tools:
40
45
  uses: metanorma/ci/.github/workflows/dependent-rake.yml@main
41
46
  with:
42
- command: bundle exec rspec
47
+ command: set +e; echo "spec-files=$(find spec -name '*_spec.rb' 2>/dev/null | wc -l)"; bundle exec rspec; code=$?; echo "rspec-exit=$code"; exit $code
43
48
  repos-json-file: .github/workflows/dependent-repos-tools.json
44
49
  setup-tools: 'inkscape,ghostscript,exiftool,ffmpeg,imagemagick,yq'
45
50
  after-setup-ruby: |
@@ -28,6 +28,10 @@ NATIVE_ONLY_PATTERNS = [
28
28
  %r{/schema_builder/(nokogiri|oga)\b},
29
29
  %r{/schema/builder/(nokogiri|oga)\b},
30
30
  %r{\Alutaml/model/cli\z},
31
+ # leptris is an FFI wrapper over a native library — Opal::Builder dies
32
+ # on its requires (and FFI itself does not exist under Opal); the
33
+ # adapter probe degrades to moxml at runtime (#1008).
34
+ %r{\Alutaml/xml/leptris},
31
35
  ].freeze
32
36
 
33
37
  # Match `autoload :Name, "...anything..."` where the string argument may
@@ -148,7 +148,6 @@ require "lutaml/xml/format"
148
148
  require "lutaml/xml/format_chooser"
149
149
  require "lutaml/xml/hoisting_algorithm"
150
150
  require "lutaml/xml/html_entities"
151
- require "lutaml/xml/leptris"
152
151
  require "lutaml/xml/listener"
153
152
  require "lutaml/xml/mapping"
154
153
  require "lutaml/xml/mapping_rule"
@@ -399,12 +398,6 @@ require "lutaml/xml/error/namespace_mismatch_error"
399
398
  require "lutaml/xml/error/schema_validation_error"
400
399
  require "lutaml/xml/error/xml_configuration_error"
401
400
  require "lutaml/xml/error/xml_error"
402
- require "lutaml/xml/leptris/native_emission"
403
- require "lutaml/xml/leptris/plan_compiler"
404
- require "lutaml/xml/leptris/plan_hydrator"
405
- require "lutaml/xml/leptris/plan_order"
406
- require "lutaml/xml/leptris/plan_serializer"
407
- require "lutaml/xml/leptris/plan_walk"
408
401
  require "lutaml/xml/oga/element"
409
402
  require "lutaml/xml/ox/element"
410
403
  require "lutaml/xml/rexml/element"
@@ -370,11 +370,29 @@ module Lutaml
370
370
  def allocate_for_walk(register = nil)
371
371
  register_id = extract_register_id(register)
372
372
  ensure_imports!(register_id) if finalized? && deferred_imports_pending?(register_id)
373
+ # Classes with their own initialize set up internal state the
374
+ # compiled seed cannot know about (SchemaRepository's
375
+ # @parsed_schemas/@namespace_registry/@type_index): construct
376
+ # through the real constructor for them, exactly as the walk
377
+ # did before the compiled seed existed. The seed stays the
378
+ # fast path for classes using the standard initializer.
379
+ return new if walk_needs_constructor?
380
+
373
381
  instance = allocate
374
382
  instance.init_walk_state(register_id)
375
383
  instance
376
384
  end
377
385
 
386
+ # True when the class does not use Serializable's standard
387
+ # initializer — its initialize is constructor contract, not
388
+ # optional setup, and the compiled walk seed would skip it.
389
+ # (The standard initializer's owner is Serialize::Builder; a
390
+ # class- or parent-defined initialize makes the owner the class.)
391
+ def walk_needs_constructor?
392
+ @walk_needs_constructor ||=
393
+ instance_method(:initialize).owner != Lutaml::Model::Serialize::Builder
394
+ end
395
+
378
396
  def allocate_for_deserialization(register = nil)
379
397
  register_id = extract_register_id(register)
380
398
  # Deferred imports (symbol-form import_model_attributes) must
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Lutaml
4
4
  module Model
5
- VERSION = "0.8.135"
5
+ VERSION = "0.8.137"
6
6
  end
7
7
  end
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.135
4
+ version: 0.8.137
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-10-26 00:00:00.000000000 Z
11
+ date: 2026-10-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64