json-merge 1.0.0 → 1.1.1

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: 5f5ae754dce8048a02861e616c3468c3a8411da18deb9140addd8433c476914f
4
- data.tar.gz: '093aa8f13467096d683b3cc7bf4a5ffc88dfd4f3bc81e3f8cde5a3e2eaf5974c'
3
+ metadata.gz: e4b80810376606cc51dc2bb9b44a4cd40c59fc1f7c8d56f12fb2840d0860a5f0
4
+ data.tar.gz: dcae0b630a056f5fcc2a59d6ace275b2b649b62df5af62c287e12d80468fa78d
5
5
  SHA512:
6
- metadata.gz: bbd7f9c51d2f32b6495ff656701ecc142826e8b4aa4aa2ec56b3fa0f700025ea1921bab8aa7ab9393a5cd8d808bd206cd980976a9d2864dbc1abaf02edd6f8db
7
- data.tar.gz: ee0e3f3d5d71a00e13a7b070b9c28bf912fcb1340efdca88bed060ab6aa1316b4e434d880b5da8ff77b73be4e0c9d80731941095173922da2c90c2c1e62ea046
6
+ metadata.gz: 0002d281c55f8f0dfd5d0000d22237f5bf68495eaa724008a57efd049fe1845d32cb4318fcc00266948cc5b93855bd4315eea87bfd65bdce57386747c10d118b
7
+ data.tar.gz: 48360b4e51149e4c83111ec167ffb1279e84147db5d67e9701dab41f247c9862970df48681fedbfca6460791ef8f39918bb49b1d2ee59f9d9a74cb818ba16fc8
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,76 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [1.1.1] - 2026-01-26
34
+
35
+ - TAG: [v1.1.1][1.1.1t]
36
+ - COVERAGE: 95.72% -- 604/631 lines in 10 files
37
+ - BRANCH COVERAGE: 77.81% -- 235/302 branches in 10 files
38
+ - 96.63% documented
39
+
40
+ ### Added
41
+
42
+ - ConflictResolver now applies per-node-type preferences via `node_typing`.
43
+
44
+ ### Changed
45
+
46
+ - ast-merge v4.0.4
47
+ - tree_haver v5.0.2
48
+
49
+ ## [1.1.0] - 2026-01-12
50
+
51
+ - TAG: [v1.1.0][1.1.0t]
52
+ - COVERAGE: 95.77% -- 589/615 lines in 10 files
53
+ - BRANCH COVERAGE: 78.82% -- 227/288 branches in 10 files
54
+ - 96.63% documented
55
+
56
+ ### Added
57
+
58
+ - bin/rspec-ffi to run FFI isolated specs
59
+ - Also bin/rake ffi_specs
60
+ - FFI backend isolation for test suite
61
+ - Added `bin/rspec-ffi` script to run FFI specs in isolation (before MRI backend loads)
62
+ - Added `spec/spec_ffi_helper.rb` for FFI-specific test configuration
63
+ - Updated Rakefile with `ffi_specs` and `remaining_specs` tasks
64
+ - The `:test` task now runs FFI specs first, then remaining specs
65
+
66
+ ### Changed
67
+
68
+ - ast-merge v4.0.2
69
+ - Includes Ast::Merge::EmitterBase
70
+ - tree_haver v5.0.1
71
+ - Many Backend improvements
72
+ - Many error handling improvements
73
+ - **Simplified dependency_tags.rb**: Removed redundant debug code
74
+ - Removed `JSON_MERGE_DEBUG` env var handling (use `TREE_HAVER_DEBUG` instead)
75
+ - tree_haver's debug output now respects blocked backends via `compute_blocked_backends`
76
+ - Avoids accidentally loading MRI backend during FFI-only test runs
77
+
78
+ ### Removed
79
+
80
+ - **Obsolete Tests**: Removed 3 obsolete integration tests
81
+ - Tests for `add_node_to_result` and `add_wrapper_to_result` methods
82
+ - These methods don't exist in the `:batch` strategy (ConflictResolver now uses Emitter)
83
+ - Tests were for old `:node` strategy pattern
84
+
85
+ ### Fixed
86
+
87
+ - **NodeWrapper signature tests**: Updated tests to expect `:root_object`/`:root_array` for root-level containers
88
+ - Root-level objects now correctly return `[:root_object, ...]` instead of `[:object, ...]`
89
+ - Root-level arrays now correctly return `[:root_array]` instead of `[:array, count]`
90
+ - Added `:parent` method stubs to mock node tests for `root_level_container?` compatibility
91
+ - **ConflictResolver#emit_node**: Fixed handling of pair nodes with object values
92
+ - When emitting a pair like `"features": {...}`, the value was treated as raw text
93
+ - Now correctly detects when a pair's value is an object container
94
+ - Recursively emits object structure using `emit_nested_object_start/end`
95
+ - Treats arrays as atomic values (emits as raw text)
96
+ - Prevents double key emission and invalid JSON output in nested merges
97
+ - **ConflictResolver#merge_matched_nodes_to_emitter**: Fixed array handling in merge logic
98
+ - Arrays are now treated atomically and replaced based on preference setting
99
+ - Only objects (not arrays) are recursively merged
100
+ - Fixes potential "expected object key, got number" errors when merging arrays
101
+ - Arrays like `[1,2,3]` are now correctly replaced with `[4,5]` based on preference
102
+
33
103
  ## [1.0.0] - 2026-01-06
34
104
 
35
105
  - TAG: [v1.0.0][1.0.0t]
@@ -43,6 +113,10 @@ Please file a bug if you notice a violation of semantic versioning.
43
113
 
44
114
  ### Security
45
115
 
46
- [Unreleased]: https://github.com/kettle-rb/json-merge/compare/v1.0.0...HEAD
116
+ [Unreleased]: https://github.com/kettle-rb/json-merge/compare/v1.1.1...HEAD
117
+ [1.1.1]: https://github.com/kettle-rb/json-merge/compare/v1.1.0...v1.1.1
118
+ [1.1.1t]: https://github.com/kettle-rb/json-merge/releases/tag/v1.1.1
119
+ [1.1.0]: https://github.com/kettle-rb/json-merge/compare/v1.0.0...v1.1.0
120
+ [1.1.0t]: https://github.com/kettle-rb/json-merge/releases/tag/v1.1.0
47
121
  [1.0.0]: https://github.com/kettle-rb/json-merge/compare/f1cc25b1d9b79c598270e3aa203fa56787e6c6fc...v1.0.0
48
122
  [1.0.0t]: https://github.com/kettle-rb/json-merge/tags/v1.0.0