smarter_json 1.1.1 → 1.1.2
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/CHANGELOG.md +6 -0
- data/CONTRIBUTORS.md +6 -0
- data/README.md +2 -0
- data/ext/smarter_json/smarter_json.c +7 -0
- data/lib/smarter_json/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 616af8a85697d036162f613a7e0b370103cde9e2d8cd46496b417288785839d7
|
|
4
|
+
data.tar.gz: 6449bcecb8c631f357e3885f931407c8d52bcdc35acb4dcb2776d3047951986e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6866b5eeeb2932d6c083da8c78daf1715eda5cc8c633f961947229698ae2bd79b25f14dd39d43f47dc3056984755e75892488c6c51cd5c1dea4efff90e114255
|
|
7
|
+
data.tar.gz: 2d911cad4653363fa8de29e84cefc306604190df6e11e1ef2b7807ede5e52006592d6cd5f4f17e58b9d2b36be1ed6b6145c5deda541f8bc56c59f9c5e64afdf8
|
data/CHANGELOG.md
CHANGED
|
@@ -12,6 +12,12 @@
|
|
|
12
12
|
> ⚠️ We discourage the use of `process(input).first` / `process(input)[0]` because it silently drops potential additional documents
|
|
13
13
|
> Please use `process_one` if you are expecting only one JSON doc, e.g. in API payloads.
|
|
14
14
|
|
|
15
|
+
## 1.1.2 (2026-06-12)
|
|
16
|
+
|
|
17
|
+
RSpec tests: 1,097
|
|
18
|
+
|
|
19
|
+
- The C extension now correctly supports Ruby's GC heap compaction (`GC.compact` / auto-compaction) — its cached exception/warning classes are declared to the GC. Thanks [Jean Boussier](https://github.com/byroot) for PR [#7](https://github.com/tilo/smarter_json/pull/7).
|
|
20
|
+
|
|
15
21
|
## 1.1.1 (2026-06-11)
|
|
16
22
|
|
|
17
23
|
RSpec tests: 1,070 → 1,097
|
data/CONTRIBUTORS.md
ADDED
data/README.md
CHANGED
|
@@ -359,6 +359,8 @@ Both the C extension and the pure-Ruby engine are **iterative, not recursive**
|
|
|
359
359
|
The trade-off: there is currently **no fixed nesting or input-size limit**, so extremely large or adversarially-nested untrusted input is bounded by memory (it can exhaust RAM), not by a crash. If you process untrusted input and want a hard cap, that's a planned opt-in guard — for now, size-limit upstream.
|
|
360
360
|
|
|
361
361
|
|
|
362
|
+
# [A Special Thanks to all Contributors!](CONTRIBUTORS.md) 🎉🎉🎉
|
|
363
|
+
|
|
362
364
|
## Development
|
|
363
365
|
|
|
364
366
|
After checking out the repo, run `bin/setup` to install dependencies, then `rake compile` to build the C extension and `rake spec` to run the tests. The test suite runs every example against **both** the C and pure-Ruby paths, so the two stay behavior-identical.
|
|
@@ -1676,9 +1676,16 @@ static VALUE fj_parse_c(VALUE self, VALUE input, VALUE opts) {
|
|
|
1676
1676
|
|
|
1677
1677
|
void Init_smarter_json(void) {
|
|
1678
1678
|
mSmarterJSON = rb_define_module("SmarterJSON");
|
|
1679
|
+
|
|
1680
|
+
rb_global_variable(&cParseError);
|
|
1679
1681
|
cParseError = rb_const_get(mSmarterJSON, rb_intern("ParseError"));
|
|
1682
|
+
|
|
1683
|
+
rb_global_variable(&cEncodingError);
|
|
1680
1684
|
cEncodingError = rb_const_get(mSmarterJSON, rb_intern("EncodingError"));
|
|
1685
|
+
|
|
1686
|
+
rb_global_variable(&cWarning);
|
|
1681
1687
|
cWarning = rb_const_get(mSmarterJSON, rb_intern("Warning"));
|
|
1688
|
+
|
|
1682
1689
|
fj_bigdecimal_id = rb_intern("BigDecimal");
|
|
1683
1690
|
fj_to_sym_id = rb_intern("to_sym");
|
|
1684
1691
|
fj_key_p_id = rb_intern("key?");
|
data/lib/smarter_json/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: smarter_json
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.1.
|
|
4
|
+
version: 1.1.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tilo Sloboda
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2026-06-
|
|
10
|
+
date: 2026-06-12 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: bigdecimal
|
|
@@ -44,6 +44,7 @@ extra_rdoc_files: []
|
|
|
44
44
|
files:
|
|
45
45
|
- ".gitignore"
|
|
46
46
|
- CHANGELOG.md
|
|
47
|
+
- CONTRIBUTORS.md
|
|
47
48
|
- LICENSE.txt
|
|
48
49
|
- README.md
|
|
49
50
|
- Rakefile
|