json-merge 7.1.6 → 7.1.7

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: c831f4fec35d4c3db916ae782c5d8cb003ce2833048801bb06224ca56926d5f8
4
- data.tar.gz: b1435a3f064913631757213e1b169268bcf42e3501f93c3fde38609bce86c8e8
3
+ metadata.gz: cfec64cce61554a44c1b1aad9493f582f3480d0234b750b7181fe3abde10b038
4
+ data.tar.gz: ce6035cd086c2b89c02299818e3b608d1581e23d4945d798202a228717d27dd6
5
5
  SHA512:
6
- metadata.gz: 90f80a0d33d02bfbdeeeae0b593067f5eed9987f3200662465caf54e49c641a69d52af0be191e5c2ee730377c9ad1e5da44a5f576079e92a726e759ea72b50d5
7
- data.tar.gz: '0518c8d411f1515448e9a44000d823aa66beea3079b92446e2eeaecb2b7508c88261c46cd8449e78ae3c91c7ba9af916f968f6c69284e2d2c6e2195ad78f1b4e'
6
+ metadata.gz: 1954aab0c8c2a8bcdc83613e594a1ead63343cbb1cb0f1c3b99c53ba9b387582545d0e1a5bb7afef27048d66a18e9fd52e5622339f2556941127b4842c525458
7
+ data.tar.gz: 6011cfacce9dd817811928eba2e0c3ae5d77a00a54b9c0f2eaebd77548abefa2f930f385ba165ff2bc4b83a6577df7503559a2631e09b98bf43fa3616d739fde
checksums.yaml.gz.sig CHANGED
Binary file
@@ -105,7 +105,7 @@ module Json
105
105
  # @param dest_nodes [Array<NodeWrapper>] Destination nodes
106
106
  # @param template_analysis [FileAnalysis] Template analysis for line access
107
107
  # @param dest_analysis [FileAnalysis] Destination analysis for line access
108
- def merge_node_lists_to_emitter(template_nodes, dest_nodes, template_analysis, dest_analysis, dest_owners: nil)
108
+ def merge_node_lists_to_emitter(template_nodes, dest_nodes, template_analysis, dest_analysis)
109
109
  # Build signature maps for matching
110
110
  template_by_sig = build_signature_map(template_nodes, template_analysis)
111
111
  dest_by_sig = build_signature_map(dest_nodes, dest_analysis)
@@ -154,6 +154,8 @@ module Json
154
154
 
155
155
  # Check for signature match
156
156
  if dest_sig && template_by_sig[dest_sig]
157
+ emit_retained_gap_before_destination_node(dest_node, dest_analysis, owners: dest_nodes)
158
+
157
159
  # Find the next unconsumed template node with this signature
158
160
  candidates = template_by_sig[dest_sig]
159
161
  cursor = sig_cursor[dest_sig]
@@ -172,8 +174,7 @@ module Json
172
174
  template_node = template_info[:node]
173
175
 
174
176
  # Both have this node - merge them (recursively if containers)
175
- merge_matched_nodes_to_emitter(template_node, dest_node, template_analysis, dest_analysis,
176
- dest_owners: dest_nodes)
177
+ merge_matched_nodes_to_emitter(template_node, dest_node, template_analysis, dest_analysis)
177
178
 
178
179
  consumed_template_indices << template_info[:index]
179
180
  sig_cursor[dest_sig] = cursor + 1
@@ -182,6 +183,8 @@ module Json
182
183
  emit_atomic_node(dest_node, dest_analysis)
183
184
  end
184
185
  elsif refined_dest_to_template.key?(dest_node)
186
+ emit_retained_gap_before_destination_node(dest_node, dest_analysis, owners: dest_nodes)
187
+
185
188
  # Found refined match
186
189
  template_node = refined_dest_to_template[dest_node]
187
190
  template_sig = template_analysis.generate_signature(template_node)
@@ -197,12 +200,12 @@ module Json
197
200
  end
198
201
 
199
202
  # Merge matched nodes
200
- merge_matched_nodes_to_emitter(template_node, dest_node, template_analysis, dest_analysis,
201
- dest_owners: dest_nodes)
203
+ merge_matched_nodes_to_emitter(template_node, dest_node, template_analysis, dest_analysis)
202
204
  elsif @remove_template_missing_nodes
203
205
  emit_removed_destination_node_comments(dest_node, dest_analysis)
204
206
  else
205
207
  # Destination-only node - always keep
208
+ emit_retained_gap_before_destination_node(dest_node, dest_analysis, owners: dest_nodes)
206
209
  emit_atomic_node(dest_node, dest_analysis)
207
210
  end
208
211
 
@@ -239,11 +242,7 @@ module Json
239
242
  # @param dest_node [NodeWrapper] Destination node
240
243
  # @param template_analysis [FileAnalysis] Template analysis
241
244
  # @param dest_analysis [FileAnalysis] Destination analysis
242
- def merge_matched_nodes_to_emitter(template_node, dest_node, template_analysis, dest_analysis, dest_owners: nil)
243
- if preference_for_pair(template_node, dest_node) == :template
244
- emit_retained_gap_before_matched_template_node(dest_node, dest_analysis, owners: dest_owners)
245
- end
246
-
245
+ def merge_matched_nodes_to_emitter(template_node, dest_node, template_analysis, dest_analysis)
247
246
  if dest_node.container? && template_node.container?
248
247
  # Both are containers - recursively merge their children
249
248
  merge_container_to_emitter(template_node, dest_node, template_analysis, dest_analysis)
@@ -305,8 +304,7 @@ module Json
305
304
  template_value.mergeable_children,
306
305
  dest_value.mergeable_children,
307
306
  template_analysis,
308
- dest_analysis,
309
- dest_owners: dest_value.mergeable_children
307
+ dest_analysis
310
308
  )
311
309
 
312
310
  emit_container_trailing_lines(trailing_source_node, trailing_source_analysis)
@@ -363,7 +361,7 @@ module Json
363
361
  end
364
362
  end
365
363
 
366
- def emit_retained_gap_before_matched_template_node(dest_node, dest_analysis, owners: nil)
364
+ def emit_retained_gap_before_destination_node(dest_node, dest_analysis, owners: nil)
367
365
  gap_lines = retained_owner_leading_gap_lines_for(dest_node, dest_analysis, owners: owners)
368
366
  return if gap_lines.empty?
369
367
  return if @emitter.blank_lines?(gap_lines) && @emitter.ends_with_blank_line?
@@ -5,7 +5,7 @@ module Json
5
5
  # Version namespace for this gem.
6
6
  module Version
7
7
  # Current gem version.
8
- VERSION = '7.1.6'
8
+ VERSION = '7.1.7'
9
9
  end
10
10
  # Current gem version exposed at the traditional constant location.
11
11
  VERSION = Version::VERSION # Traditional Constant Location
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json-merge
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.1.6
4
+ version: 7.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -43,28 +43,28 @@ dependencies:
43
43
  requirements:
44
44
  - - '='
45
45
  - !ruby/object:Gem::Version
46
- version: 7.1.6
46
+ version: 7.1.7
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - '='
52
52
  - !ruby/object:Gem::Version
53
- version: 7.1.6
53
+ version: 7.1.7
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: tree_haver
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - '='
59
59
  - !ruby/object:Gem::Version
60
- version: 7.1.6
60
+ version: 7.1.7
61
61
  type: :runtime
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - '='
66
66
  - !ruby/object:Gem::Version
67
- version: 7.1.6
67
+ version: 7.1.7
68
68
  - !ruby/object:Gem::Dependency
69
69
  name: version_gem
70
70
  requirement: !ruby/object:Gem::Requirement
@@ -320,10 +320,10 @@ licenses:
320
320
  - PolyForm-Small-Business-1.0.0
321
321
  metadata:
322
322
  homepage_uri: https://structuredmerge.org
323
- source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.6
324
- changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.6/CHANGELOG.md
323
+ source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.7
324
+ changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.7/CHANGELOG.md
325
325
  bug_tracker_uri: https://github.com/structuredmerge/structuredmerge-ruby/issues
326
- documentation_uri: https://www.rubydoc.info/gems/json-merge/7.1.6
326
+ documentation_uri: https://www.rubydoc.info/gems/json-merge/7.1.7
327
327
  funding_uri: https://github.com/sponsors/pboling
328
328
  wiki_uri: https://github.com/structuredmerge/structuredmerge-ruby/wiki
329
329
  news_uri: https://www.railsbling.com/tags/json-merge
metadata.gz.sig CHANGED
Binary file