multi_json 1.15.0 → 1.18.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: ba3f1870ebd467a8356a8138d7bba83f224659a5cea2d4f9a845fa88e8d4934f
4
- data.tar.gz: 89051067684a2f7f101dbc1b00e8cc4a417fdb9b829e476db6d90ea2cc4cf37b
3
+ metadata.gz: e4844623fce51f6461e352b05ed0bf04712f213e33a290398c5ee46847a2fefb
4
+ data.tar.gz: 78985a7bae5a3c1001f19151f85ed221c8e392811edfda5ab3eb916785d6c465
5
5
  SHA512:
6
- metadata.gz: 3f317d2719838c2466a2ca066b25259a2653cf639198a9e47fc0c0365a8a02e8307feaa4392b445ae1f918c92c4cc7deb833e1c1945c4682cd3dac3d91af9789
7
- data.tar.gz: 81b37aeb82f9744a93eec867a54e3a83537bedb6f29747818187b6fc27d599a6ee88f239db382f85ed840319e19452f43f09c29655ac664e9a4680bc33c335a8
6
+ metadata.gz: 728727f42292c6aeb50fe442f60bd930a68aa7de9713ce109806e204b071a9ef4763b766a6860fa1407724584413ae3d298fe75cfc081aed69e4654e687dce0c
7
+ data.tar.gz: 54df198586a1118df89ce5467cc9ada2942842c10ed88355e5891f2b39b79a219516647a8beea2f7facfc24d78def27659e984840a5eb28388a5a1d4a689c29f
data/CHANGELOG.md CHANGED
@@ -1,160 +1,167 @@
1
- 1.14.2
1
+ 1.18.0
2
2
  ------
3
+ * [Fix conflict between JSON gem and ActiveSupport](https://github.com/intridea/multi_json/issues/222)
3
4
 
4
- * [Improve detection of json_gem adapter](https://github.com/intridea/multi_json/commit/62d54019b17ebf83b28c8deb871a02a122e7d9cf)
5
+ 1.17.0
6
+ ------
7
+ * [Revert minimum ruby version requirement](https://github.com/sferik/multi_json/pull/16)
5
8
 
6
- 1.14.1
9
+ 1.16.0
7
10
  ------
11
+ * [Remove `NSJSONSerialization`](https://github.com/sferik/multi_json/commit/0423d3b5886e93405f4c2221687b7e3329bd2940)
12
+ * [Stop referencing `JSON::PRETTY_STATE_PROTOTYPE`](https://github.com/sferik/multi_json/commit/58094d7a0583bf1f5052886806a032c00f16ffc5)
13
+ * [Drop support for Ruby versions < 3.2](https://github.com/sferik/multi_json/commit/ff3b42c4bc26cd6512914b7e5321976e948985dc)
14
+ * [Move repo from @intridea to @sferik](https://github.com/sferik/multi_json/commit/e87aeadbc9b9aa6df79818fa01bfc5fa959d8474)
15
+ * [`JsonCommon`: force encoding to UTF-8, not binary](https://github.com/sferik/multi_json/commit/34dd0247de07f2703c7d42a42d4cefc73635f3cc)
16
+ * [Stop setting defaults in `JsonCommon`](https://github.com/sferik/multi_json/commit/d5f9e6e72b99a7def695f430f72c8365998de625)
17
+ * [Make `json_pure` an alias of `json_gem`](https://github.com/sferik/multi_json/commit/9ff7c3dcbe3650e712b38e636ad19061a4c08d1a)
18
+
19
+ 1.15.0
20
+ ------
21
+ * [Improve detection of json_gem adapter](https://github.com/sferik/multi_json/commit/62d54019b17ebf83b28c8deb871a02a122e7d9cf)
8
22
 
9
- * [Fix a warning in Ruby 2.7](https://github.com/intridea/multi_json/commit/26a94ab8c78a394cc237e2ea292c1de4f6ed30d7)
23
+ 1.14.1
24
+ ------
25
+ * [Fix a warning in Ruby 2.7](https://github.com/sferik/multi_json/commit/26a94ab8c78a394cc237e2ea292c1de4f6ed30d7)
10
26
 
11
27
  1.14.0
12
28
  ------
13
-
14
- * [Support Oj 3.x gem](https://github.com/intridea/multi_json/commit/5d8febdbebc428882811b90d514f3628617a61d5)
29
+ * [Support Oj 3.x gem](https://github.com/sferik/multi_json/commit/5d8febdbebc428882811b90d514f3628617a61d5)
15
30
 
16
31
  1.13.1
17
32
  ------
18
-
19
- * [Fix missing stdlib set dependency in oj adapter](https://github.com/intridea/multi_json/commit/c4ff66e7bee6fb4f45e54429813d7fada1c152b8)
33
+ * [Fix missing stdlib set dependency in oj adapter](https://github.com/sferik/multi_json/commit/c4ff66e7bee6fb4f45e54429813d7fada1c152b8)
20
34
 
21
35
  1.13.0
22
36
  -----
23
-
24
- * [Make Oj adapter handle JSON::ParseError correctly](https://github.com/intridea/multi_json/commit/275e3ffd8169797c510d23d9ef5b8b07e64c3b42)
37
+ * [Make Oj adapter handle JSON::ParseError correctly](https://github.com/sferik/multi_json/commit/275e3ffd8169797c510d23d9ef5b8b07e64c3b42)
25
38
 
26
39
  1.12.2
27
40
  ------
28
-
29
- * [Renew gem certificate](https://github.com/intridea/multi_json/commit/57922d898c6eb587cc9a28ba5724c11e81724700)
41
+ * [Renew gem certificate](https://github.com/sferik/multi_json/commit/57922d898c6eb587cc9a28ba5724c11e81724700)
30
42
 
31
43
  1.12.1
32
44
  ------
33
-
34
- * [Prevent memory leak in OptionsCache](https://github.com/intridea/multi_json/commit/aa7498199ad272f3d4a13750d7c568a66047e2ee)
45
+ * [Prevent memory leak in OptionsCache](https://github.com/sferik/multi_json/commit/aa7498199ad272f3d4a13750d7c568a66047e2ee)
35
46
 
36
47
  1.12.0
37
48
  ------
38
-
39
- * [Introduce global options cache to improve peroformance](https://github.com/intridea/multi_json/commit/7aaef2a1bc2b83c95e4208b12dad5d1d87ff20a6)
49
+ * [Introduce global options cache to improve peroformance](https://github.com/sferik/multi_json/commit/7aaef2a1bc2b83c95e4208b12dad5d1d87ff20a6)
40
50
 
41
51
  1.11.2
42
52
  ------
43
-
44
- * [Only pass one argument to JrJackson when two is not supported](https://github.com/intridea/multi_json/commit/e798fa517c817fc706982d3f3c61129b6651d601)
53
+ * [Only pass one argument to JrJackson when two is not supported](https://github.com/sferik/multi_json/commit/e798fa517c817fc706982d3f3c61129b6651d601)
45
54
 
46
55
  1.11.1
47
56
  ------
48
-
49
- * [Dump method passes options throught for JrJackson adapter](https://github.com/intridea/multi_json/commit/3c730fd12135c3e7bf212f878958004908f13909)
57
+ * [Dump method passes options throught for JrJackson adapter](https://github.com/sferik/multi_json/commit/3c730fd12135c3e7bf212f878958004908f13909)
50
58
 
51
59
  1.11.0
52
60
  ------
53
-
54
- * [Make all adapters read IO object before load](https://github.com/intridea/multi_json/commit/167f559e18d4efee05e1f160a2661d16dbb215d4)
61
+ * [Make all adapters read IO object before load](https://github.com/sferik/multi_json/commit/167f559e18d4efee05e1f160a2661d16dbb215d4)
55
62
 
56
63
  1.10.1
57
64
  ------
58
- * [Explicitly require stringio for Gson adapter](https://github.com/intridea/multi_json/commit/623ec8142d4a212fa0db763bb71295789a119929)
59
- * [Do not read StringIO object before passing it to JrJackson](https://github.com/intridea/multi_json/commit/a6dc935df08e7b3d5d701fbb9298384c96df0fde)
65
+ * [Explicitly require stringio for Gson adapter](https://github.com/sferik/multi_json/commit/623ec8142d4a212fa0db763bb71295789a119929)
66
+ * [Do not read StringIO object before passing it to JrJackson](https://github.com/sferik/multi_json/commit/a6dc935df08e7b3d5d701fbb9298384c96df0fde)
60
67
 
61
68
  1.10.0
62
69
  ------
63
- * [Performance tweaks](https://github.com/intridea/multi_json/commit/58724acfed31866d079eaafb1cd824e341ade287)
70
+ * [Performance tweaks](https://github.com/sferik/multi_json/commit/58724acfed31866d079eaafb1cd824e341ade287)
64
71
 
65
72
  1.9.3
66
73
  -----
67
- * [Convert indent option to Fixnum before passing to Oj](https://github.com/intridea/multi_json/commit/826fc5535b863b74fc9f981dfdda3e26f1ee4e5b)
74
+ * [Convert indent option to Fixnum before passing to Oj](https://github.com/sferik/multi_json/commit/826fc5535b863b74fc9f981dfdda3e26f1ee4e5b)
68
75
 
69
76
  1.9.2
70
77
  -----
71
- * [Enable use_to_json option for Oj adapter by default](https://github.com/intridea/multi_json/commit/76a4aaf697b10bbabd5d535d83cf1149efcfe5c7)
78
+ * [Enable use_to_json option for Oj adapter by default](https://github.com/sferik/multi_json/commit/76a4aaf697b10bbabd5d535d83cf1149efcfe5c7)
72
79
 
73
80
  1.9.1
74
81
  -----
75
- * [Remove unused LoadError file](https://github.com/intridea/multi_json/commit/65dedd84d59baeefc25c477fedf0bbe85e7ce2cd)
82
+ * [Remove unused LoadError file](https://github.com/sferik/multi_json/commit/65dedd84d59baeefc25c477fedf0bbe85e7ce2cd)
76
83
 
77
84
  1.9.0
78
85
  ----
79
- * [Rename LoadError to ParseError](https://github.com/intridea/multi_json/commit/4abb98fe3a90b2a7b3d1594515c8a06042b4a27d)
80
- * [Adapter load failure throws AdapterError instead of ArgumentError](https://github.com/intridea/multi_json/commit/4da612b617bd932bb6fa1cc4c43210327f98f271)
86
+ * [Rename LoadError to ParseError](https://github.com/sferik/multi_json/commit/4abb98fe3a90b2a7b3d1594515c8a06042b4a27d)
87
+ * [Adapter load failure throws AdapterError instead of ArgumentError](https://github.com/sferik/multi_json/commit/4da612b617bd932bb6fa1cc4c43210327f98f271)
81
88
 
82
89
  1.8.4
83
90
  -----
84
- * [Make Gson adapter explicitly read StringIO object](https://github.com/intridea/multi_json/commit/b58b498747ff6e94f41488c971b2a30a98760ef2)
91
+ * [Make Gson adapter explicitly read StringIO object](https://github.com/sferik/multi_json/commit/b58b498747ff6e94f41488c971b2a30a98760ef2)
85
92
 
86
93
  1.8.3
87
94
  -----
88
- * [Make JrJackson explicitly read StringIO objects](https://github.com/intridea/multi_json/commit/e1f162d5b668e5e4db5afa175361a601a8aa2b05)
89
- * [Prevent calling #downcase on alias symbols](https://github.com/intridea/multi_json/commit/c1cf075453ce0110f7decc4f906444b1233bb67c)
95
+ * [Make JrJackson explicitly read StringIO objects](https://github.com/sferik/multi_json/commit/e1f162d5b668e5e4db5afa175361a601a8aa2b05)
96
+ * [Prevent calling #downcase on alias symbols](https://github.com/sferik/multi_json/commit/c1cf075453ce0110f7decc4f906444b1233bb67c)
90
97
 
91
98
  1.8.2
92
99
  -----
93
- * [Downcase adapter string name for OS compatibility](https://github.com/intridea/multi_json/commit/b8e15a032247a63f1410d21a18add05035f3fa66)
100
+ * [Downcase adapter string name for OS compatibility](https://github.com/sferik/multi_json/commit/b8e15a032247a63f1410d21a18add05035f3fa66)
94
101
 
95
102
  1.8.1
96
103
  -----
97
- * [Let the adapter handle strings with invalid encoding](https://github.com/intridea/multi_json/commit/6af2bf87b89f44eabf2ae9ca96779febc65ea94b)
104
+ * [Let the adapter handle strings with invalid encoding](https://github.com/sferik/multi_json/commit/6af2bf87b89f44eabf2ae9ca96779febc65ea94b)
98
105
 
99
106
  1.8.0
100
107
  -----
101
- * [Raise MultiJson::LoadError on blank input](https://github.com/intridea/multi_json/commit/c44f9c928bb25fe672246ad394b3e5b991be32e6)
108
+ * [Raise MultiJson::LoadError on blank input](https://github.com/sferik/multi_json/commit/c44f9c928bb25fe672246ad394b3e5b991be32e6)
102
109
 
103
110
  1.7.9
104
111
  -----
105
- * [Explicitly require json gem code even when constant is defined](https://github.com/intridea/multi_json/commit/36f7906c66477eb4b55b7afeaa3684b6db69eff2)
112
+ * [Explicitly require json gem code even when constant is defined](https://github.com/sferik/multi_json/commit/36f7906c66477eb4b55b7afeaa3684b6db69eff2)
106
113
 
107
114
  1.7.8
108
115
  -----
109
- * [Reorder JrJackson before json_gem](https://github.com/intridea/multi_json/commit/315b6e460b6e4dcdb6c82e04e4be8ee975d395da)
110
- * [Update vendored OkJson to version 43](https://github.com/intridea/multi_json/commit/99a6b662f6ef4036e3ee94d7eb547fa72fb2ab50)
116
+ * [Reorder JrJackson before json_gem](https://github.com/sferik/multi_json/commit/315b6e460b6e4dcdb6c82e04e4be8ee975d395da)
117
+ * [Update vendored OkJson to version 43](https://github.com/sferik/multi_json/commit/99a6b662f6ef4036e3ee94d7eb547fa72fb2ab50)
111
118
 
112
119
  1.7.7
113
120
  -----
114
- * [Fix options caching issues](https://github.com/intridea/multi_json/commit/a3f14c3661688c5927638fa6088c7b46a67e875e)
121
+ * [Fix options caching issues](https://github.com/sferik/multi_json/commit/a3f14c3661688c5927638fa6088c7b46a67e875e)
115
122
 
116
123
  1.7.6
117
124
  -----
118
- * [Bring back MultiJson::VERSION constant](https://github.com/intridea/multi_json/commit/31b990c2725e6673bf8ce57540fe66b57a751a72)
125
+ * [Bring back MultiJson::VERSION constant](https://github.com/sferik/multi_json/commit/31b990c2725e6673bf8ce57540fe66b57a751a72)
119
126
 
120
127
  1.7.5
121
128
  -----
122
- * [Fix warning '*' interpreted as argument prefix](https://github.com/intridea/multi_json/commit/b698962c7f64430222a1f06430669706a47aff89)
123
- * [Remove stdlib warning](https://github.com/intridea/multi_json/commit/d06eec6b7996ac8b4ff0e2229efd835379b0c30f)
129
+ * [Fix warning '*' interpreted as argument prefix](https://github.com/sferik/multi_json/commit/b698962c7f64430222a1f06430669706a47aff89)
130
+ * [Remove stdlib warning](https://github.com/sferik/multi_json/commit/d06eec6b7996ac8b4ff0e2229efd835379b0c30f)
124
131
 
125
132
  1.7.4
126
133
  -----
127
- * [Cache options for better performance](https://github.com/intridea/multi_json/commit/8a26ee93140c4bed36194ed9fb887a1b6919257b)
134
+ * [Cache options for better performance](https://github.com/sferik/multi_json/commit/8a26ee93140c4bed36194ed9fb887a1b6919257b)
128
135
 
129
136
  1.7.3
130
137
  -----
131
- * [Require json/ext to ensure extension version gets loaded for json_gem](https://github.com/intridea/multi_json/commit/942686f7e8597418c6f90ee69e1d45242fac07b1)
132
- * [Rename JrJackson](https://github.com/intridea/multi_json/commit/078de7ba8b6035343c3e96b4767549e9ec43369a)
133
- * [Prefer JrJackson to JSON gem if present](https://github.com/intridea/multi_json/commit/af8bd9799a66855f04b3aff1c488485950cec7bf)
134
- * [Print a warning if outdated gem versions are used](https://github.com/intridea/multi_json/commit/e7438e7ba2be0236cfa24c2bb9ad40ee821286d1)
135
- * [Loosen required_rubygems_version for compatibility with Ubuntu 10.04](https://github.com/intridea/multi_json/commit/59fad014e8fe41dbc6f09485ea0dc21fc42fd7a7)
138
+ * [Require json/ext to ensure extension version gets loaded for json_gem](https://github.com/sferik/multi_json/commit/942686f7e8597418c6f90ee69e1d45242fac07b1)
139
+ * [Rename JrJackson](https://github.com/sferik/multi_json/commit/078de7ba8b6035343c3e96b4767549e9ec43369a)
140
+ * [Prefer JrJackson to JSON gem if present](https://github.com/sferik/multi_json/commit/af8bd9799a66855f04b3aff1c488485950cec7bf)
141
+ * [Print a warning if outdated gem versions are used](https://github.com/sferik/multi_json/commit/e7438e7ba2be0236cfa24c2bb9ad40ee821286d1)
142
+ * [Loosen required_rubygems_version for compatibility with Ubuntu 10.04](https://github.com/sferik/multi_json/commit/59fad014e8fe41dbc6f09485ea0dc21fc42fd7a7)
136
143
 
137
144
  1.7.2
138
145
  -----
139
- * [Rename Jrjackson adapter to JrJackson](https://github.com/intridea/multi_json/commit/b36dc915fc0e6548cbad06b5db6f520e040c9c8b)
140
- * [Implement jrjackson -> jr_jackson alias for back-compatability](https://github.com/intridea/multi_json/commit/aa50ab8b7bb646b8b75d5d65dfeadae8248a4f10)
141
- * [Update vendored OkJson module](https://github.com/intridea/multi_json/commit/30a3f474e17dd86a697c3fab04f468d1a4fd69d7)
146
+ * [Rename Jrjackson adapter to JrJackson](https://github.com/sferik/multi_json/commit/b36dc915fc0e6548cbad06b5db6f520e040c9c8b)
147
+ * [Implement jrjackson -> jr_jackson alias for back-compatability](https://github.com/sferik/multi_json/commit/aa50ab8b7bb646b8b75d5d65dfeadae8248a4f10)
148
+ * [Update vendored OkJson module](https://github.com/sferik/multi_json/commit/30a3f474e17dd86a697c3fab04f468d1a4fd69d7)
142
149
 
143
150
  1.7.1
144
151
  -----
145
- * [Fix capitalization of JrJackson class](https://github.com/intridea/multi_json/commit/5373a5e38c647f02427a0477cb8e0e0dafad1b8d)
152
+ * [Fix capitalization of JrJackson class](https://github.com/sferik/multi_json/commit/5373a5e38c647f02427a0477cb8e0e0dafad1b8d)
146
153
 
147
154
  1.7.0
148
155
  -----
149
- * [Add load_options/dump_options to MultiJson](https://github.com/intridea/multi_json/commit/a153956be6b0df06ea1705ce3c1ff0b5b0e27ea5)
150
- * [MultiJson does not modify arguments](https://github.com/intridea/multi_json/commit/58525b01c4c2f6635ba2ac13d6fd987b79f3962f)
151
- * [Enable quirks_mode by default for json_gem/json_pure adapters](https://github.com/intridea/multi_json/commit/1fd4e6635c436515b7d7d5a0bee4548de8571520)
152
- * [Add JrJackson adapter](https://github.com/intridea/multi_json/commit/4dd86fa96300aaaf6d762578b9b31ea82adb056d)
153
- * [Raise ArgumentError on bad adapter input](https://github.com/intridea/multi_json/commit/911a3756bdff2cb5ac06497da3fa3e72199cb7ad)
156
+ * [Add load_options/dump_options to MultiJson](https://github.com/sferik/multi_json/commit/a153956be6b0df06ea1705ce3c1ff0b5b0e27ea5)
157
+ * [MultiJson does not modify arguments](https://github.com/sferik/multi_json/commit/58525b01c4c2f6635ba2ac13d6fd987b79f3962f)
158
+ * [Enable quirks_mode by default for json_gem/json_pure adapters](https://github.com/sferik/multi_json/commit/1fd4e6635c436515b7d7d5a0bee4548de8571520)
159
+ * [Add JrJackson adapter](https://github.com/sferik/multi_json/commit/4dd86fa96300aaaf6d762578b9b31ea82adb056d)
160
+ * [Raise ArgumentError on bad adapter input](https://github.com/sferik/multi_json/commit/911a3756bdff2cb5ac06497da3fa3e72199cb7ad)
154
161
 
155
162
  1.6.1
156
163
  -----
157
- * [Revert "Use JSON.generate instead of #to_json"](https://github.com/intridea/multi_json/issues/86)
164
+ * [Revert "Use JSON.generate instead of #to_json"](https://github.com/sferik/multi_json/issues/86)
158
165
 
159
166
  1.6.0
160
167
  -----
@@ -162,103 +169,103 @@
162
169
  * [Add MultiJson.default_options](https://github.com/intridea/multi_json/pull/70)
163
170
  * [Add MultiJson.with_adapter](https://github.com/intridea/multi_json/pull/67)
164
171
  * [Stringify all possible keys for ok_json](https://github.com/intridea/multi_json/pull/66)
165
- * [Use JSON.generate instead of #to_json](https://github.com/intridea/multi_json/issues/73)
172
+ * [Use JSON.generate instead of #to_json](https://github.com/sferik/multi_json/issues/73)
166
173
  * [Alias `MultiJson::DecodeError` to `MultiJson::LoadError`](https://github.com/intridea/multi_json/pull/79)
167
174
 
168
175
  1.5.1
169
176
  -----
170
- * [Do not allow Oj or JSON to create symbols by searching for classes](https://github.com/intridea/multi_json/commit/193e28cf4dc61b6e7b7b7d80f06f74c76df65c41)
177
+ * [Do not allow Oj or JSON to create symbols by searching for classes](https://github.com/sferik/multi_json/commit/193e28cf4dc61b6e7b7b7d80f06f74c76df65c41)
171
178
 
172
179
  1.5.0
173
180
  -----
174
- * [Add `MultiJson.with_adapter` method](https://github.com/intridea/multi_json/commit/d14c5d28cae96557a0421298621b9499e1f28104)
175
- * [Stringify all possible keys for `ok_json`](https://github.com/intridea/multi_json/commit/73998074058e1e58c557ffa7b9541d486d6041fa)
181
+ * [Add `MultiJson.with_adapter` method](https://github.com/sferik/multi_json/commit/d14c5d28cae96557a0421298621b9499e1f28104)
182
+ * [Stringify all possible keys for `ok_json`](https://github.com/sferik/multi_json/commit/73998074058e1e58c557ffa7b9541d486d6041fa)
176
183
 
177
184
  1.4.0
178
185
  -----
179
- * [Allow `load`/`dump` of JSON fragments](https://github.com/intridea/multi_json/commit/707aae7d48d39c85b38febbd2c210ba87f6e4a36)
186
+ * [Allow `load`/`dump` of JSON fragments](https://github.com/sferik/multi_json/commit/707aae7d48d39c85b38febbd2c210ba87f6e4a36)
180
187
 
181
188
  1.3.7
182
189
  -----
183
- * [Fix rescue clause for MagLev](https://github.com/intridea/multi_json/commit/39abdf50199828c50e85b2ce8f8ba31fcbbc9332)
184
- * [Remove unnecessary check for string version of options key](https://github.com/intridea/multi_json/commit/660101b70e962b3c007d0b90d45944fa47d13ec4)
185
- * [Explicitly set default adapter when adapter is set to `nil` or `false`](https://github.com/intridea/multi_json/commit/a9e587d5a63eafb4baee9fb211265e4dd96a26bc)
186
- * [Fix Oj `ParseError` mapping for Oj 1.4.0](https://github.com/intridea/multi_json/commit/7d9045338cc9029401c16f3c409d54ce97f275e2)
190
+ * [Fix rescue clause for MagLev](https://github.com/sferik/multi_json/commit/39abdf50199828c50e85b2ce8f8ba31fcbbc9332)
191
+ * [Remove unnecessary check for string version of options key](https://github.com/sferik/multi_json/commit/660101b70e962b3c007d0b90d45944fa47d13ec4)
192
+ * [Explicitly set default adapter when adapter is set to `nil` or `false`](https://github.com/sferik/multi_json/commit/a9e587d5a63eafb4baee9fb211265e4dd96a26bc)
193
+ * [Fix Oj `ParseError` mapping for Oj 1.4.0](https://github.com/sferik/multi_json/commit/7d9045338cc9029401c16f3c409d54ce97f275e2)
187
194
 
188
195
  1.3.6
189
196
  -----
190
- * [Allow adapter-specific options to be passed through to Oj](https://github.com/intridea/multi_json/commit/d0e5feeebcba0bc69400dd203a295f5c30971223)
197
+ * [Allow adapter-specific options to be passed through to Oj](https://github.com/sferik/multi_json/commit/d0e5feeebcba0bc69400dd203a295f5c30971223)
191
198
 
192
199
  1.3.5
193
200
  -----
194
- * [Add pretty support to Oj adapter](https://github.com/intridea/multi_json/commit/0c8f75f03020c53bcf4c6be258faf433d24b2c2b)
201
+ * [Add pretty support to Oj adapter](https://github.com/sferik/multi_json/commit/0c8f75f03020c53bcf4c6be258faf433d24b2c2b)
195
202
 
196
203
  1.3.4
197
204
  -----
198
- * [Use `class << self` instead of `module_function` to create aliases](https://github.com/intridea/multi_json/commit/ba1451c4c48baa297e049889be241a424cb05980)
205
+ * [Use `class << self` instead of `module_function` to create aliases](https://github.com/sferik/multi_json/commit/ba1451c4c48baa297e049889be241a424cb05980)
199
206
 
200
207
  1.3.3
201
208
  -----
202
- * [Remove deprecation warnings](https://github.com/intridea/multi_json/commit/36b524e71544eb0186826a891bcc03b2820a008f)
209
+ * [Remove deprecation warnings](https://github.com/sferik/multi_json/commit/36b524e71544eb0186826a891bcc03b2820a008f)
203
210
 
204
211
  1.3.2
205
212
  -----
206
- * [Add ability to use adapter per call](https://github.com/intridea/multi_json/commit/106bbec469d5d0a832bfa31fffcb8c0f0cdc9bd3)
207
- * [Add and deprecate `default_engine` method](https://github.com/intridea/multi_json/commit/fc3df0c7a3e2ab9ce0c2c7e7617a4da97dd13f6e)
213
+ * [Add ability to use adapter per call](https://github.com/sferik/multi_json/commit/106bbec469d5d0a832bfa31fffcb8c0f0cdc9bd3)
214
+ * [Add and deprecate `default_engine` method](https://github.com/sferik/multi_json/commit/fc3df0c7a3e2ab9ce0c2c7e7617a4da97dd13f6e)
208
215
 
209
216
  1.3.1
210
217
  -----
211
- * [Only warn once for each instance a deprecated method is called](https://github.com/intridea/multi_json/commit/e21d6eb7da74b3f283995c1d27d5880e75f0ae84)
218
+ * [Only warn once for each instance a deprecated method is called](https://github.com/sferik/multi_json/commit/e21d6eb7da74b3f283995c1d27d5880e75f0ae84)
212
219
 
213
220
  1.3.0
214
221
  -----
215
- * [Implement `load`/`dump`; deprecate `decode`/`encode`](https://github.com/intridea/multi_json/commit/e90fd6cb1b0293eb0c73c2f4eb0f7a1764370216)
216
- * [Rename engines to adapters](https://github.com/intridea/multi_json/commit/ae7fd144a7949a9c221dcaa446196ec23db908df)
222
+ * [Implement `load`/`dump`; deprecate `decode`/`encode`](https://github.com/sferik/multi_json/commit/e90fd6cb1b0293eb0c73c2f4eb0f7a1764370216)
223
+ * [Rename engines to adapters](https://github.com/sferik/multi_json/commit/ae7fd144a7949a9c221dcaa446196ec23db908df)
217
224
 
218
225
  1.2.0
219
226
  -----
220
- * [Add support for Oj](https://github.com/intridea/multi_json/commit/acd06b233edabe6c44f226873db7b49dab560c60)
227
+ * [Add support for Oj](https://github.com/sferik/multi_json/commit/acd06b233edabe6c44f226873db7b49dab560c60)
221
228
 
222
229
  1.1.0
223
230
  -----
224
- * [`NSJSONSerialization` support for MacRuby](https://github.com/intridea/multi_json/commit/f862e2fc966cac8867fe7da3997fc76e8a6cf5d4)
231
+ * [`NSJSONSerialization` support for MacRuby](https://github.com/sferik/multi_json/commit/f862e2fc966cac8867fe7da3997fc76e8a6cf5d4)
225
232
 
226
233
  1.0.4
227
234
  -----
228
- * [Set data context to `DecodeError` exception](https://github.com/intridea/multi_json/commit/19ddafd44029c6681f66fae2a0f6eabfd0f85176)
229
- * [Allow `ok_json` to fallback to `to_json`](https://github.com/intridea/multi_json/commit/c157240b1193b283d06d1bd4d4b5b06bcf3761f8)
230
- * [Add warning when using `ok_json`](https://github.com/intridea/multi_json/commit/dd4b68810c84f826fb98f9713bfb29ab96888d57)
231
- * [Options can be passed to an engine on encode](https://github.com/intridea/multi_json/commit/e0a7ff5d5ff621ffccc61617ed8aeec5816e81f7)
235
+ * [Set data context to `DecodeError` exception](https://github.com/sferik/multi_json/commit/19ddafd44029c6681f66fae2a0f6eabfd0f85176)
236
+ * [Allow `ok_json` to fallback to `to_json`](https://github.com/sferik/multi_json/commit/c157240b1193b283d06d1bd4d4b5b06bcf3761f8)
237
+ * [Add warning when using `ok_json`](https://github.com/sferik/multi_json/commit/dd4b68810c84f826fb98f9713bfb29ab96888d57)
238
+ * [Options can be passed to an engine on encode](https://github.com/sferik/multi_json/commit/e0a7ff5d5ff621ffccc61617ed8aeec5816e81f7)
232
239
 
233
240
  1.0.3
234
241
  -----
235
- * [`Array` support for `stringify_keys`](https://github.com/intridea/multi_json/commit/644d1c5c7c7f6a27663b11668527b346094e38b9)
236
- * [`Array` support for `symbolize_keys`](https://github.com/intridea/multi_json/commit/c885377d47a2aa39cb0d971fea78db2d2fa479a7)
242
+ * [`Array` support for `stringify_keys`](https://github.com/sferik/multi_json/commit/644d1c5c7c7f6a27663b11668527b346094e38b9)
243
+ * [`Array` support for `symbolize_keys`](https://github.com/sferik/multi_json/commit/c885377d47a2aa39cb0d971fea78db2d2fa479a7)
237
244
 
238
245
  1.0.2
239
246
  -----
240
- * [Allow encoding of rootless JSON when `ok_json` is used](https://github.com/intridea/multi_json/commit/d1cde7de97cb0f6152aef8daf14037521cdce8c6)
247
+ * [Allow encoding of rootless JSON when `ok_json` is used](https://github.com/sferik/multi_json/commit/d1cde7de97cb0f6152aef8daf14037521cdce8c6)
241
248
 
242
249
  1.0.1
243
250
  -----
244
- * [Correct an issue with `ok_json` not being returned as the default engine](https://github.com/intridea/multi_json/commit/d33c141619c54cccd770199694da8fd1bd8f449d)
251
+ * [Correct an issue with `ok_json` not being returned as the default engine](https://github.com/sferik/multi_json/commit/d33c141619c54cccd770199694da8fd1bd8f449d)
245
252
 
246
253
  1.0.0
247
254
  -----
248
- * [Remove `ActiveSupport::JSON` support](https://github.com/intridea/multi_json/commit/c2f4140141d785a24b3f56e58811b0e561b37f6a)
249
- * [Fix `@engine` ivar warning](https://github.com/intridea/multi_json/commit/3b978a8995721a8dffedc3b75a7f49e5494ec553)
250
- * [Only `rescue` from parsing errors during decoding, not any `StandardError`](https://github.com/intridea/multi_json/commit/391d00b5e85294d42d41347605d8d46b4a7f66cc)
251
- * [Rename `okjson` engine and vendored lib to `ok_json`](https://github.com/intridea/multi_json/commit/5bd1afc977a8208ddb0443e1d57cb79665c019f1)
252
- * [Add `StringIO` support to `json` gem and `ok_json`](https://github.com/intridea/multi_json/commit/1706b11568db7f50af451fce5f4d679aeb3bbe8f)
255
+ * [Remove `ActiveSupport::JSON` support](https://github.com/sferik/multi_json/commit/c2f4140141d785a24b3f56e58811b0e561b37f6a)
256
+ * [Fix `@engine` ivar warning](https://github.com/sferik/multi_json/commit/3b978a8995721a8dffedc3b75a7f49e5494ec553)
257
+ * [Only `rescue` from parsing errors during decoding, not any `StandardError`](https://github.com/sferik/multi_json/commit/391d00b5e85294d42d41347605d8d46b4a7f66cc)
258
+ * [Rename `okjson` engine and vendored lib to `ok_json`](https://github.com/sferik/multi_json/commit/5bd1afc977a8208ddb0443e1d57cb79665c019f1)
259
+ * [Add `StringIO` support to `json` gem and `ok_json`](https://github.com/sferik/multi_json/commit/1706b11568db7f50af451fce5f4d679aeb3bbe8f)
253
260
 
254
261
  0.0.5
255
262
  -----
256
- * [Trap all JSON decoding errors; raise `MultiJson::DecodeError`](https://github.com/intridea/multi_json/commit/dea9a1aef6dd1212aa1e5a37ab1669f9b045b732)
263
+ * [Trap all JSON decoding errors; raise `MultiJson::DecodeError`](https://github.com/sferik/multi_json/commit/dea9a1aef6dd1212aa1e5a37ab1669f9b045b732)
257
264
 
258
265
  0.0.4
259
266
  -----
260
- * [Fix default_engine check for `json` gem](https://github.com/intridea/multi_json/commit/caced0c4e8c795922a109ebc00c3c4fa8635bed8)
261
- * [Make requirement mapper an `Array` to preserve order in Ruby versions < 1.9](https://github.com/intridea/multi_json/commit/526f5f29a42131574a088ad9bbb43d7f48439b2c)
267
+ * [Fix default_engine check for `json` gem](https://github.com/sferik/multi_json/commit/caced0c4e8c795922a109ebc00c3c4fa8635bed8)
268
+ * [Make requirement mapper an `Array` to preserve order in Ruby versions < 1.9](https://github.com/sferik/multi_json/commit/526f5f29a42131574a088ad9bbb43d7f48439b2c)
262
269
 
263
270
  0.0.3
264
271
  -----
@@ -266,10 +273,8 @@
266
273
 
267
274
  0.0.2
268
275
  -----
269
-
270
276
  * [Rename to `multi_json`](https://github.com/sferik/twitter/commit/461ab89ce071c8c9fabfc183581e0ec523788b62)
271
277
 
272
278
  0.0.1
273
279
  -----
274
-
275
280
  * [Initial commit](https://github.com/sferik/twitter/commit/518c21ab299c500527491e6c049ab2229e22a805)
data/CONTRIBUTING.md CHANGED
@@ -17,7 +17,7 @@ Here are some ways *you* can contribute:
17
17
  * by closing [issues][]
18
18
  * by reviewing patches
19
19
 
20
- [issues]: https://github.com/intridea/multi_json/issues
20
+ [issues]: https://github.com/sferik/multi_json/issues
21
21
 
22
22
  ## Submitting an Issue
23
23
  We use the [GitHub issue tracker][issues] to track bugs and features. Before
data/LICENSE.md CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2010-2013 Michael Bleigh, Josh Kalderimis, Erik Michaels-Ober, Pavel Pravosud
1
+ Copyright (c) 2010-2025 Michael Bleigh, Josh Kalderimis, Erik Berlin, Pavel Pravosud
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # MultiJSON
2
2
 
3
3
  [![Gem Version](http://img.shields.io/gem/v/multi_json.svg)][gem]
4
- [![Build Status](http://travis-ci.org/intridea/multi_json.svg)][travis]
5
- [![Code Climate](https://codeclimate.com/github/intridea/multi_json.svg)][codeclimate]
4
+ [![Build Status](https://github.com/sferik/multi_json/actions/workflows/ci.yml/badge.svg)][build]
5
+ [![Maintainability](https://qlty.sh/badges/fde3f4a8-c331-44be-b1e6-45842137def9/maintainability.svg)][qlty]
6
6
 
7
7
  Lots of Ruby libraries parse JSON and everyone has their favorite JSON coder.
8
8
  Instead of choosing a single JSON coder and forcing users of your library to be
@@ -42,34 +42,30 @@ which inherits from `ArgumentError`.
42
42
  MultiJSON tries to have intelligent defaulting. That is, if you have any of the
43
43
  supported engines already loaded, it will utilize them before attempting to
44
44
  load any. When loading, libraries are ordered by speed. First Oj, then Yajl,
45
- then the JSON gem, then JSON pure. If no other JSON library is available,
45
+ then the JSON gem. If no other JSON library is available,
46
46
  MultiJSON falls back to [OkJson][], a simple, vendorable JSON parser.
47
47
 
48
48
  ## Supported JSON Engines
49
49
 
50
- * [Oj][oj] Optimized JSON by Peter Ohler
51
- * [Yajl][yajl] Yet Another JSON Library by Brian Lopez
52
- * [JSON][json-gem] The default JSON gem with C-extensions (ships with Ruby 1.9+)
53
- * [JSON Pure][json-gem] A Ruby variant of the JSON gem
54
- * [NSJSONSerialization][nsjson] Wrapper for Apple's NSJSONSerialization in the Cocoa Framework (MacRuby only)
55
- * [gson.rb][gson] A Ruby wrapper for google-gson library (JRuby only)
56
- * [JrJackson][jrjackson] JRuby wrapper for Jackson (JRuby only)
57
- * [OkJson][okjson] A simple, vendorable JSON parser
50
+ - [Oj][oj] Optimized JSON by Peter Ohler
51
+ - [Yajl][yajl] Yet Another JSON Library by Brian Lopez
52
+ - [JSON][json-gem] The default JSON gem with C-extensions (ships with Ruby 1.9+)
53
+ - [gson.rb][gson] A Ruby wrapper for google-gson library (JRuby only)
54
+ - [JrJackson][jrjackson] JRuby wrapper for Jackson (JRuby only)
55
+ - [OkJson][okjson] A simple, vendorable JSON parser
58
56
 
59
57
  ## Supported Ruby Versions
60
- This library aims to support and is [tested against][travis] the following Ruby
58
+
59
+ This library aims to support and is [tested against](https://github.com/sferik/multi_json/actions/workflows/ci.yml) the following Ruby
61
60
  implementations:
62
61
 
63
- * Ruby 1.8
64
- * Ruby 1.9
65
- * Ruby 2.0
66
- * Ruby 2.1
67
- * Ruby 2.2
68
- * Ruby 2.4
69
- * Ruby 2.5
70
- * Ruby 2.6
71
- * Ruby 2.7
72
- * [JRuby][]
62
+ - Ruby 3.0
63
+ - Ruby 3.1
64
+ - Ruby 3.2
65
+ - Ruby 3.3
66
+ - Ruby 3.4
67
+ - [JRuby][jruby] 9.4 (targets Ruby 3.1 compatibility)
68
+ - [JRuby][jruby] 10.0 (targets Ruby 3.4 compatibility)
73
69
 
74
70
  If something doesn't work in one of these implementations, it's a bug.
75
71
 
@@ -100,22 +96,21 @@ spec.add_dependency 'multi_json', '~> 1.0'
100
96
  ```
101
97
 
102
98
  ## Copyright
103
- Copyright (c) 2010-2018 Michael Bleigh, Josh Kalderimis, Erik Michaels-Ober,
99
+
100
+ Copyright (c) 2010-2025 Michael Bleigh, Josh Kalderimis, Erik Berlin,
104
101
  and Pavel Pravosud. See [LICENSE][] for details.
105
102
 
106
- [codeclimate]: https://codeclimate.com/github/intridea/multi_json
103
+ [build]: https://github.com/sferik/multi_json/actions/workflows/ci.yml
107
104
  [gem]: https://rubygems.org/gems/multi_json
108
105
  [gson]: https://github.com/avsej/gson.rb
109
106
  [jrjackson]: https://github.com/guyboertje/jrjackson
110
107
  [jruby]: http://www.jruby.org/
111
108
  [json-gem]: https://github.com/flori/json
112
- [json-pure]: https://github.com/flori/json
113
109
  [license]: LICENSE.md
114
110
  [macruby]: http://www.macruby.org/
115
- [nsjson]: https://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html
116
111
  [oj]: https://github.com/ohler55/oj
117
112
  [okjson]: https://github.com/kr/okjson
118
113
  [pvc]: http://docs.rubygems.org/read/chapter/16#page74
114
+ [qlty]: https://qlty.sh/gh/sferik/projects/multi_json
119
115
  [semver]: http://semver.org/
120
- [travis]: http://travis-ci.org/intridea/multi_json
121
116
  [yajl]: https://github.com/brianmario/yajl-ruby
@@ -1,5 +1,5 @@
1
- require 'singleton'
2
- require 'multi_json/options'
1
+ require "singleton"
2
+ require_relative "options"
3
3
 
4
4
  module MultiJson
5
5
  class Adapter
@@ -7,17 +7,18 @@ module MultiJson
7
7
  include Singleton
8
8
 
9
9
  class << self
10
- def defaults(action, value)
11
- metaclass = class << self; self; end
10
+ BLANK_RE = /\A\s*\z/
11
+ private_constant :BLANK_RE
12
12
 
13
- metaclass.instance_eval do
14
- define_method("default_#{action}_options") { value }
15
- end
13
+ def defaults(action, value)
14
+ value.freeze
15
+ define_singleton_method("default_#{action}_options") { value }
16
16
  end
17
17
 
18
18
  def load(string, options = {})
19
19
  string = string.read if string.respond_to?(:read)
20
- fail self::ParseError if blank?(string)
20
+ raise self::ParseError if blank?(string)
21
+
21
22
  instance.load(string, cached_load_options(options))
22
23
  end
23
24
 
@@ -25,25 +26,31 @@ module MultiJson
25
26
  instance.dump(object, cached_dump_options(options))
26
27
  end
27
28
 
28
- private
29
+ private
29
30
 
30
31
  def blank?(input)
31
- input.nil? || /\A\s*\z/ === input
32
+ input.nil? || BLANK_RE.match?(input)
32
33
  rescue ArgumentError # invalid byte sequence in UTF-8
33
34
  false
34
35
  end
35
36
 
36
37
  def cached_dump_options(options)
37
- OptionsCache.fetch(:dump, options) do
38
- dump_options(options).merge(MultiJson.dump_options(options)).merge!(options)
38
+ opts = options_without_adapter(options)
39
+ OptionsCache.dump.fetch(opts) do
40
+ dump_options(opts).merge(MultiJson.dump_options(opts)).merge!(opts)
39
41
  end
40
42
  end
41
43
 
42
44
  def cached_load_options(options)
43
- OptionsCache.fetch(:load, options) do
44
- load_options(options).merge(MultiJson.load_options(options)).merge!(options)
45
+ opts = options_without_adapter(options)
46
+ OptionsCache.load.fetch(opts) do
47
+ load_options(opts).merge(MultiJson.load_options(opts)).merge!(opts)
45
48
  end
46
49
  end
50
+
51
+ def options_without_adapter(options)
52
+ options[:adapter] ? options.except(:adapter) : options
53
+ end
47
54
  end
48
55
  end
49
56
  end
@@ -1,15 +1,13 @@
1
1
  module MultiJson
2
2
  class AdapterError < ArgumentError
3
- attr_reader :cause
3
+ def initialize(message = nil, cause: nil)
4
+ super(message)
5
+ set_backtrace(cause.backtrace) if cause
6
+ end
4
7
 
5
8
  def self.build(original_exception)
6
9
  message = "Did not recognize your adapter specification (#{original_exception.message})."
7
- new(message).tap do |exception|
8
- exception.instance_eval do
9
- @cause = original_exception
10
- set_backtrace original_exception.backtrace
11
- end
12
- end
10
+ new(message, cause: original_exception)
13
11
  end
14
12
  end
15
13
  end
@@ -1,6 +1,5 @@
1
- require 'gson'
2
- require 'stringio'
3
- require 'multi_json/adapter'
1
+ require "gson"
2
+ require_relative "../adapter"
4
3
 
5
4
  module MultiJson
6
5
  module Adapters
@@ -1,5 +1,5 @@
1
- require 'jrjackson' unless defined?(::JrJackson)
2
- require 'multi_json/adapter'
1
+ require "jrjackson" unless defined?(JrJackson)
2
+ require_relative "../adapter"
3
3
 
4
4
  module MultiJson
5
5
  module Adapters
@@ -7,7 +7,7 @@ module MultiJson
7
7
  class JrJackson < Adapter
8
8
  ParseError = ::JrJackson::ParseError
9
9
 
10
- def load(string, options = {}) #:nodoc:
10
+ def load(string, options = {}) # :nodoc:
11
11
  ::JrJackson::Json.load(string, options)
12
12
  end
13
13