rng 0.3.3 → 0.3.4

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: 10c85f9f544d78d663a1f36cffdf7d3bca10fced07581fb5f6d52d63a548c895
4
- data.tar.gz: 7fb492448f01443ede4f66af235787407bf44846a9d9ac0526fd6d1def565027
3
+ metadata.gz: 2b297a52ef81d423b4980c3b32b3b167296c733a293bc52c533926aaf7088f55
4
+ data.tar.gz: d85e507f79ab28d6f50e32128d4fdc7abe4dd9fae5cdccec2d57d23043271554
5
5
  SHA512:
6
- metadata.gz: 9e65688496d4bcf2b380b4a8c543847e3e977995b94a4763300f3ca29c19b137c93bfe0de80e8358a292ee196fb76656641d2cdbe51db5624815047fe3a0e905
7
- data.tar.gz: 1f9fa36285707a5393acdb6a0d1b7fcc5637d63a95c065afbaf5b75bdcefae237aa0fa016f408ede1bf4aba5878b6992fa478a4b7300c2f1315f419233113173
6
+ metadata.gz: 3d4cf91c1c619e39a9d923d409a741e455b32fcb364eb425e13a337438a1e2797943c605964fb85a804284d1a0ea2e4a64bc16959aa1960001b1d4f7b1744b00
7
+ data.tar.gz: 9fa1ceada50cc44fb707f7dee432718f0d8d3cd259c90991fef7b96402dc4ba5eb8cfa202644ec4fc6b9f1b586252b67c8b818094104fbb9ab2d418726993e8d
@@ -216,10 +216,30 @@ module Rng
216
216
 
217
217
  # Deep dup a pattern object
218
218
  #
219
+ # Uses recursive copying instead of Marshal to handle objects
220
+ # containing Nokogiri::XML::Element nodes (stored in element_order
221
+ # by lutaml-model), which cannot be serialized by Marshal.
222
+ #
219
223
  # @param obj [Object] Object to deep copy
220
224
  # @return [Object] Deep copy of object
221
225
  def deep_dup(obj)
222
- Marshal.load(Marshal.dump(obj))
226
+ case obj
227
+ when Lutaml::Model::Serializable
228
+ result = obj.class.new
229
+ obj.class.attributes.each_key do |attr_name|
230
+ value = obj.public_send(attr_name)
231
+ result.public_send(:"#{attr_name}=", deep_dup(value))
232
+ end
233
+ result
234
+ when Array
235
+ obj.map { |o| deep_dup(o) }
236
+ when Hash
237
+ obj.each_with_object({}) { |(k, v), h| h[deep_dup(k)] = deep_dup(v) }
238
+ when NilClass, Symbol, Numeric, TrueClass, FalseClass
239
+ obj
240
+ else
241
+ obj.dup
242
+ end
223
243
  end
224
244
 
225
245
  # Resolve a single include directive
data/lib/rng/name.rb CHANGED
@@ -9,7 +9,6 @@ module Rng
9
9
 
10
10
  xml do
11
11
  element 'name'
12
- ordered
13
12
 
14
13
  namespace ::Rng::Namespaces::RngNamespace
15
14
 
data/lib/rng/param.rb CHANGED
@@ -10,7 +10,6 @@ module Rng
10
10
 
11
11
  xml do
12
12
  element 'param'
13
- ordered
14
13
 
15
14
  namespace ::Rng::Namespaces::RngNamespace
16
15
 
data/lib/rng/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Rng
4
- VERSION = '0.3.3'
4
+ VERSION = '0.3.4'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rng
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-04-04 00:00:00.000000000 Z
11
+ date: 2026-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lutaml-model