firm 1.1.3 → 1.2.0

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: 96c404bdd2cf03c75741f2dc1e6ad05c633390d5d4a349bd957ca5499eb80047
4
- data.tar.gz: 033bbd98c33ed5f1873b269c99c4f84aa5e414415445848e7e872bad26b7d7c1
3
+ metadata.gz: 469e6b9c969363f1a02dec82461e0d7f176c6dcb179c69e5d3e49028850ede2f
4
+ data.tar.gz: c289d16555c8e499ee83045042095b89f038122a9033aa0f74d82d42ccaeefdb
5
5
  SHA512:
6
- metadata.gz: 4d78b76279d1583d59b88a3659ddc88986bd553722c529c1013839a919bac34833a099746a3c2075f09fc548f386b8d4c273235a0daabcb5c611d5fae45e6235
7
- data.tar.gz: a05f7d1218054a6a50128abdd458327289c8def60191bd2af89bd4b6d6236ccc6bc705be5a5958fd37ec78d507fa169c2603a9034343bf7cbedd2730078c8a6d
6
+ metadata.gz: d949b1da43a928fc2e36ea058cde3b040e3b8e10e8a0ed8d9d3ad2de3053535e5b8616f0e1792c8a7e6d6285573298d2f352b4fc90126b4f2fc85d80258f9fce
7
+ data.tar.gz: ecb380c724b12eb9dc93a6abb368ad41aeaf6f554a46472f026aa39226dd2d2c8527b351ae628721763a09898ea0ffc38a37853fab45b8efeae1ac6dc341b964
@@ -32,9 +32,10 @@ module FIRM
32
32
 
33
33
  CREATE_ID = 'rbklass'.freeze
34
34
 
35
- # Derived Hash class to use for deserialized JSON object data which
35
+ # Hash class mixin to use for deserialized JSON object data which
36
36
  # supports using Symbol keys.
37
- class ObjectHash < ::Hash
37
+ module ObjectHashPatch
38
+
38
39
  # Returns the object associated with given key.
39
40
  # @param [String,Symbol] key key value
40
41
  # @return [Object] associated object
@@ -52,6 +53,7 @@ module FIRM
52
53
  alias member? include?
53
54
  alias has_key? include?
54
55
  alias key? include?
56
+
55
57
  end
56
58
 
57
59
  module ContainerPatch
@@ -195,8 +197,7 @@ module FIRM
195
197
  # set custom (more compact) create_id
196
198
  ::JSON.create_id = Serializable::JSON::CREATE_ID
197
199
  ::JSON.parse!(source,
198
- create_additions: true,
199
- object_class: Serializable::JSON::ObjectHash)
200
+ create_additions: true)
200
201
  ensure
201
202
  # reset safe deserializing
202
203
  self.end_safe_deserialize
@@ -211,6 +212,7 @@ module FIRM
211
212
 
212
213
  def json_create(object)
213
214
  data = object['data']
215
+ data.extend(Serializable::JSON::ObjectHashPatch)
214
216
  # deserializing (anchor) object or alias
215
217
  if object.has_key?('*id')
216
218
  if Serializable::Aliasing.restored?(self, object['*id'])
data/lib/firm/version.rb CHANGED
@@ -4,6 +4,6 @@
4
4
  module FIRM
5
5
 
6
6
  # FIRM version
7
- VERSION = "1.1.3"
7
+ VERSION = "1.2.0"
8
8
 
9
9
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: firm
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Corino
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-01-22 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies: []
12
12
  description: FIRM is a pure Ruby library providing format independent object marshalling
13
13
  email: mcorino@m2c-software.nl
@@ -55,7 +55,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
55
55
  - !ruby/object:Gem::Version
56
56
  version: '0'
57
57
  requirements: []
58
- rubygems_version: 3.6.2
58
+ rubygems_version: 4.0.3
59
59
  specification_version: 4
60
60
  summary: Format independent Ruby object marshalling
61
61
  test_files: []