psych-merge 1.0.0 → 7.0.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: a3bda46dceac860e4b53fce09155c3c1e1b43df81dd15f57cc37c41dc10ab5a2
4
- data.tar.gz: 197ffb4fcdd783bf6b7a9a1d191244510b2effc8628c75cf30ec3a8db5e965c8
3
+ metadata.gz: da88ef0bcd6745d4a3f9474f262b66507286d7688ad4a558860c3d2d53b019a4
4
+ data.tar.gz: ff24332a09a87a1bcf32ac34598a43d1b349cd4489908a2c55588edab4ff5020
5
5
  SHA512:
6
- metadata.gz: 659097cc40dd6cc82a2cf27b5758cd526d99daf9fe61f742f7f97feb0f33193c62ec72bbc5ec37e232cb9c67c48b1f02a5f5361aa656c48bebd8f55bbc3c6d05
7
- data.tar.gz: 5021e78f9e60bced7676ee4d984864836c0587edc7e6c28e34e0f69e25eb9bc141fb373c16d776a2664138a4e7e46a7c188f62ef365254d236b2dd6c947157e7
6
+ metadata.gz: abe7ac7e4da78dd7653871a0b785b3df24e65a9a524b9e0a849d8130bf6d52b4ab75f8d7f0302b423945d0f02e06e6adadb6781e70e8c4f1028e401e106161fe
7
+ data.tar.gz: dce8552b554642c454f175c06cd296c0b51f3b9b32b6ff4a159ebc55783191015f87967ef0e5b8ca527738523f8b8bae1117db4f48e36727f71a83642123d5ae
checksums.yaml.gz.sig CHANGED
@@ -1 +1 @@
1
- x��w<^�j)�� �n`g0U�v��.�\�R��-���/���E����:b��m�|�,��(�@G- P���.�{m�/M6�ǐ׬�6�e@�F\�hZ�7� ���wo�+ӗ�˦�ٲ^i6 �VR���]���508��L�g/2,���'�_���� ��/-Ό� �4�M�����ynBTՂ��i�a� C��i��^�m"�n"V6�"n8�*i�I̳�݌D,t�!\d��g�����R]����`ͧ6�y��!�礸`��&+�ml�"�*���?>���Y#J��)f�A����;��Æ�l��Q�ZZB��O��nc���j��Ay�I�CY8���va4G[m��;��M)D ��*��8.Н�C� sR��
1
+ � s�9�:�{�X7/��pM����(��L?&F����U�AH?��^e\w��ʲ����K8��)Nڻ�����\v��%���^ٓU��J���S8�g��~�o,ٿM���Ĺ=>>dO�F�����H�d]����hO3��'�$û�孭��s�ܸ5���aB.�,h����E�ݱ���0ח��:݆�3jI��⭵�XS�/��_Ӗ�̟az<��4wP&&�����^�ߊ� ]�0��(�<*������w`�f��G����V���߁V!?yc d��S�w�^�e% N�$�Kf]��U��?)~gKF ��{2f��|\��YRrx�ߩI�Us�yS��{��qv*ͶZcr��3�
@@ -2,11 +2,10 @@
2
2
 
3
3
  module Psych
4
4
  module Merge
5
- # Version information for Psych::Merge
6
5
  module Version
7
- # Current version of the psych-merge gem
8
- VERSION = "1.0.0"
6
+ VERSION = "7.0.0"
9
7
  end
10
- VERSION = Version::VERSION # traditional location
8
+
9
+ VERSION = Version::VERSION
11
10
  end
12
11
  end
data/lib/psych/merge.rb CHANGED
@@ -1,119 +1,91 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # External gems
4
- require "psych"
5
- require "version_gem"
6
- require "set"
7
-
8
- # Shared merge infrastructure
9
- require "ast/merge"
10
-
11
- # This gem
12
- require_relative "merge/version"
13
-
14
- # Psych::Merge provides a generic YAML file smart merge system using Psych AST analysis.
15
- # It intelligently merges template and destination YAML files by identifying matching
16
- # keys and resolving differences using structural signatures.
17
- #
18
- # @example Basic usage
19
- # template = File.read("template.yml")
20
- # destination = File.read("destination.yml")
21
- # merger = Psych::Merge::SmartMerger.new(template, destination)
22
- # result = merger.merge
23
- #
24
- # @example With debug information
25
- # merger = Psych::Merge::SmartMerger.new(template, destination)
26
- # debug_result = merger.merge_with_debug
27
- # puts debug_result[:content]
28
- # puts debug_result[:statistics]
3
+ require "yaml"
4
+ require "tree_haver"
5
+ require "yaml/merge"
6
+
29
7
  module Psych
30
- # Smart merge system for YAML files using Psych AST analysis.
31
- # Provides intelligent merging by understanding YAML structure
32
- # rather than treating files as plain text.
33
- #
34
- # @see SmartMerger Main entry point for merge operations
35
- # @see FileAnalysis Analyzes YAML structure
36
- # @see ConflictResolver Resolves content conflicts
37
8
  module Merge
38
- # Base error class for Psych::Merge
39
- # Inherits from Ast::Merge::Error for consistency across merge gems.
40
- class Error < Ast::Merge::Error; end
41
-
42
- # Raised when a YAML file has parsing errors.
43
- # Inherits from Ast::Merge::ParseError for consistency across merge gems.
44
- #
45
- # @example Handling parse errors
46
- # begin
47
- # analysis = FileAnalysis.new(yaml_content)
48
- # rescue ParseError => e
49
- # puts "YAML syntax error: #{e.message}"
50
- # e.errors.each { |error| puts " #{error}" }
51
- # end
52
- class ParseError < Ast::Merge::ParseError
53
- # @param message [String, nil] Error message (auto-generated if nil)
54
- # @param content [String, nil] The YAML source that failed to parse
55
- # @param errors [Array] Parse errors from Psych
56
- def initialize(message = nil, content: nil, errors: [])
57
- super(message, errors: errors, content: content)
9
+ PACKAGE_NAME = "psych-merge"
10
+ BACKEND_REFERENCE = TreeHaver::BackendReference.new(id: "psych", family: "native").freeze
11
+ TreeHaver::BackendRegistry.register(BACKEND_REFERENCE)
12
+
13
+ module_function
14
+
15
+ def yaml_feature_profile
16
+ Yaml::Merge.yaml_feature_profile
17
+ end
18
+
19
+ def available_yaml_backends
20
+ [BACKEND_REFERENCE]
21
+ end
22
+
23
+ def yaml_backend_feature_profile(backend: nil)
24
+ requested = backend.to_s.empty? ? BACKEND_REFERENCE.id : backend.to_s
25
+ return unsupported_feature_result("Unsupported YAML backend #{requested}.") unless requested == BACKEND_REFERENCE.id
26
+
27
+ yaml_feature_profile.merge(
28
+ backend: BACKEND_REFERENCE.id,
29
+ backend_ref: BACKEND_REFERENCE.to_h
30
+ )
31
+ end
32
+
33
+ def yaml_plan_context(backend: nil)
34
+ profile = yaml_backend_feature_profile(backend: backend)
35
+ return profile if profile[:ok] == false
36
+
37
+ {
38
+ family_profile: yaml_feature_profile,
39
+ feature_profile: {
40
+ backend: profile[:backend],
41
+ supports_dialects: true,
42
+ supported_policies: profile[:supported_policies]
43
+ }
44
+ }
45
+ end
46
+
47
+ def parse_yaml(source, dialect, backend: nil)
48
+ requested = backend.to_s.empty? ? BACKEND_REFERENCE.id : backend.to_s
49
+ return unsupported_feature_parse_result("Unsupported YAML backend #{requested}.") unless requested == BACKEND_REFERENCE.id
50
+ return unsupported_feature_parse_result("Unsupported YAML dialect #{dialect}.") unless dialect == "yaml"
51
+
52
+ parsed = YAML.safe_load(source, permitted_classes: [], aliases: false)
53
+ Yaml::Merge.analyze_yaml_document(parsed, dialect)
54
+ rescue StandardError => e
55
+ parse_error_result(e.message)
56
+ end
57
+
58
+ def match_yaml_owners(template, destination)
59
+ Yaml::Merge.match_yaml_owners(template, destination)
60
+ end
61
+
62
+ def merge_yaml(template_source, destination_source, dialect, backend: nil)
63
+ requested = backend.to_s.empty? ? BACKEND_REFERENCE.id : backend.to_s
64
+ return unsupported_feature_merge_result("Unsupported YAML backend #{requested}.") unless requested == BACKEND_REFERENCE.id
65
+
66
+ Yaml::Merge.merge_yaml_with_parser(template_source, destination_source, dialect) do |source, parse_dialect|
67
+ parse_yaml(source, parse_dialect, backend: requested)
58
68
  end
59
69
  end
60
70
 
61
- # Raised when the template file has syntax errors.
62
- #
63
- # @example Handling template parse errors
64
- # begin
65
- # merger = SmartMerger.new(template, destination)
66
- # result = merger.merge
67
- # rescue TemplateParseError => e
68
- # puts "Template syntax error: #{e.message}"
69
- # e.errors.each do |error|
70
- # puts " #{error.message}"
71
- # end
72
- # end
73
- class TemplateParseError < ParseError; end
74
-
75
- # Raised when the destination file has syntax errors.
76
- #
77
- # @example Handling destination parse errors
78
- # begin
79
- # merger = SmartMerger.new(template, destination)
80
- # result = merger.merge
81
- # rescue DestinationParseError => e
82
- # puts "Destination syntax error: #{e.message}"
83
- # e.errors.each do |error|
84
- # puts " #{error.message}"
85
- # end
86
- # end
87
- class DestinationParseError < ParseError; end
88
-
89
- autoload :CommentTracker, "psych/merge/comment_tracker"
90
- autoload :DebugLogger, "psych/merge/debug_logger"
91
- autoload :DiffMapper, "psych/merge/diff_mapper"
92
- autoload :Emitter, "psych/merge/emitter"
93
- autoload :FreezeNode, "psych/merge/freeze_node"
94
- autoload :FileAnalysis, "psych/merge/file_analysis"
95
- autoload :MappingEntry, "psych/merge/file_analysis"
96
- autoload :MergeResult, "psych/merge/merge_result"
97
- autoload :NodeWrapper, "psych/merge/node_wrapper"
98
- autoload :ConflictResolver, "psych/merge/conflict_resolver"
99
- autoload :PartialTemplateMerger, "psych/merge/partial_template_merger"
100
- autoload :SmartMerger, "psych/merge/smart_merger"
101
- autoload :MappingMatchRefiner, "psych/merge/mapping_match_refiner"
102
- end
103
- end
71
+ def parse_error_result(message)
72
+ { ok: false, diagnostics: [{ severity: "error", category: "parse_error", message: message }], policies: [] }
73
+ end
74
+ private_class_method :parse_error_result
104
75
 
105
- # Register with ast-merge's MergeGemRegistry for RSpec dependency tags
106
- # Only register if MergeGemRegistry is loaded (i.e., in test environment)
107
- if defined?(Ast::Merge::RSpec::MergeGemRegistry)
108
- Ast::Merge::RSpec::MergeGemRegistry.register(
109
- :psych_merge,
110
- require_path: "psych/merge",
111
- merger_class: "Psych::Merge::SmartMerger",
112
- test_source: "key: value",
113
- category: :config,
114
- )
115
- end
76
+ def unsupported_feature_parse_result(message)
77
+ { ok: false, diagnostics: [{ severity: "error", category: "unsupported_feature", message: message }], policies: [] }
78
+ end
79
+ private_class_method :unsupported_feature_parse_result
116
80
 
117
- Psych::Merge::Version.class_eval do
118
- extend VersionGem::Basic
81
+ def unsupported_feature_merge_result(message)
82
+ { ok: false, diagnostics: [{ severity: "error", category: "unsupported_feature", message: message }], policies: [] }
83
+ end
84
+ private_class_method :unsupported_feature_merge_result
85
+
86
+ def unsupported_feature_result(message)
87
+ { ok: false, diagnostic: { severity: "error", category: "unsupported_feature", message: message } }
88
+ end
89
+ private_class_method :unsupported_feature_result
90
+ end
119
91
  end
data/lib/psych-merge.rb CHANGED
@@ -1,6 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # For technical reasons, if we move to Zeitwerk, this cannot be require_relative.
4
- # See: https://github.com/fxn/zeitwerk#for_gem_extension
5
- # Hook for other libraries to load this library (e.g. via bundler)
6
- require "psych/merge"
3
+ require_relative "psych/merge"
data.tar.gz.sig CHANGED
@@ -1 +1 @@
1
- <��(k�j~ T��e��X],f�4erSI-M�\83A�&�-��re5Ò��G6h�����[���aj���4���F�y�ϡ.�����t#|ߜ�V�ύ��0vю�7��)�ƑO%�'�������ߑ�e�`F���y ���]L(0!���b�U9o7Ly,&貚��3T�~�i\���IČ������)�Q+Z󕷑�N�s�Y7������:�f7���NF��@1<�D�{8w��dzzJ۸�tjqjN����2Eӑ��lUt�ŭA��Uw�*Z΂]hڰ�Q8ڜ"I+���|�l���/n��}���+ ',����*��j缇�Huzj\+"���D��q!ѩ5���BSQGb�#����
1
+ XnKDw�4iҺF%��]�ɻ�QLJ�V 2���d♌ƹ�{��a��J-�c�����;��c��M���_��һ�X:b�.�6��C9/�c��=W��n�� $�dr��eBD�&z8q;�s��k����Cy��G������ �NJx8t Z�_����JMDD �e��6�x��� !=b��w~��#]5���r������B̪n�ؕ�s{���Z�0sY���44�XW#� �
metadata CHANGED
@@ -1,11 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: psych-merge
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 7.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
8
- bindir: exe
8
+ bindir: bin
9
9
  cert_chain:
10
10
  - |
11
11
  -----BEGIN CERTIFICATE-----
@@ -38,318 +38,58 @@ cert_chain:
38
38
  date: 1980-01-02 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
- name: psych
41
+ name: yaml-merge
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - "~>"
44
+ - - '='
45
45
  - !ruby/object:Gem::Version
46
- version: '5.0'
46
+ version: 7.0.0
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: '5.0'
54
- - !ruby/object:Gem::Dependency
55
- name: tree_haver
56
- requirement: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - "~>"
59
- - !ruby/object:Gem::Version
60
- version: '5.0'
61
- - - ">="
62
- - !ruby/object:Gem::Version
63
- version: 5.0.5
64
- type: :runtime
65
- prerelease: false
66
- version_requirements: !ruby/object:Gem::Requirement
67
- requirements:
68
- - - "~>"
69
- - !ruby/object:Gem::Version
70
- version: '5.0'
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- version: 5.0.5
74
- - !ruby/object:Gem::Dependency
75
- name: ast-merge
76
- requirement: !ruby/object:Gem::Requirement
77
- requirements:
78
- - - "~>"
79
- - !ruby/object:Gem::Version
80
- version: '4.0'
81
- - - ">="
82
- - !ruby/object:Gem::Version
83
- version: 4.0.5
84
- type: :runtime
85
- prerelease: false
86
- version_requirements: !ruby/object:Gem::Requirement
87
- requirements:
88
- - - "~>"
89
- - !ruby/object:Gem::Version
90
- version: '4.0'
91
- - - ">="
92
- - !ruby/object:Gem::Version
93
- version: 4.0.5
94
- - !ruby/object:Gem::Dependency
95
- name: version_gem
96
- requirement: !ruby/object:Gem::Requirement
97
- requirements:
98
- - - "~>"
99
- - !ruby/object:Gem::Version
100
- version: '1.1'
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: 1.1.9
104
- type: :runtime
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '1.1'
111
- - - ">="
112
- - !ruby/object:Gem::Version
113
- version: 1.1.9
114
- - !ruby/object:Gem::Dependency
115
- name: kettle-dev
116
- requirement: !ruby/object:Gem::Requirement
117
- requirements:
118
- - - "~>"
119
- - !ruby/object:Gem::Version
120
- version: '1.1'
121
- type: :development
122
- prerelease: false
123
- version_requirements: !ruby/object:Gem::Requirement
124
- requirements:
125
- - - "~>"
126
- - !ruby/object:Gem::Version
127
- version: '1.1'
128
- - !ruby/object:Gem::Dependency
129
- name: bundler-audit
130
- requirement: !ruby/object:Gem::Requirement
131
- requirements:
132
- - - "~>"
133
- - !ruby/object:Gem::Version
134
- version: 0.9.2
135
- type: :development
136
- prerelease: false
137
- version_requirements: !ruby/object:Gem::Requirement
138
- requirements:
139
- - - "~>"
140
- - !ruby/object:Gem::Version
141
- version: 0.9.2
142
- - !ruby/object:Gem::Dependency
143
- name: rake
144
- requirement: !ruby/object:Gem::Requirement
145
- requirements:
146
- - - "~>"
147
- - !ruby/object:Gem::Version
148
- version: '13.0'
149
- type: :development
150
- prerelease: false
151
- version_requirements: !ruby/object:Gem::Requirement
152
- requirements:
153
- - - "~>"
154
- - !ruby/object:Gem::Version
155
- version: '13.0'
156
- - !ruby/object:Gem::Dependency
157
- name: require_bench
158
- requirement: !ruby/object:Gem::Requirement
159
- requirements:
160
- - - "~>"
161
- - !ruby/object:Gem::Version
162
- version: '1.0'
163
- - - ">="
164
- - !ruby/object:Gem::Version
165
- version: 1.0.4
166
- type: :development
167
- prerelease: false
168
- version_requirements: !ruby/object:Gem::Requirement
169
- requirements:
170
- - - "~>"
171
- - !ruby/object:Gem::Version
172
- version: '1.0'
173
- - - ">="
174
- - !ruby/object:Gem::Version
175
- version: 1.0.4
176
- - !ruby/object:Gem::Dependency
177
- name: appraisal2
178
- requirement: !ruby/object:Gem::Requirement
179
- requirements:
180
- - - "~>"
181
- - !ruby/object:Gem::Version
182
- version: '3.0'
183
- - - "~>"
184
- - !ruby/object:Gem::Version
185
- version: 3.0.3
186
- type: :development
187
- prerelease: false
188
- version_requirements: !ruby/object:Gem::Requirement
189
- requirements:
190
- - - "~>"
191
- - !ruby/object:Gem::Version
192
- version: '3.0'
193
- - - "~>"
194
- - !ruby/object:Gem::Version
195
- version: 3.0.3
196
- - !ruby/object:Gem::Dependency
197
- name: kettle-test
198
- requirement: !ruby/object:Gem::Requirement
199
- requirements:
200
- - - "~>"
201
- - !ruby/object:Gem::Version
202
- version: '1.0'
203
- - - ">="
204
- - !ruby/object:Gem::Version
205
- version: 1.0.10
206
- type: :development
207
- prerelease: false
208
- version_requirements: !ruby/object:Gem::Requirement
209
- requirements:
210
- - - "~>"
211
- - !ruby/object:Gem::Version
212
- version: '1.0'
213
- - - ">="
214
- - !ruby/object:Gem::Version
215
- version: 1.0.10
216
- - !ruby/object:Gem::Dependency
217
- name: ruby-progressbar
218
- requirement: !ruby/object:Gem::Requirement
219
- requirements:
220
- - - "~>"
221
- - !ruby/object:Gem::Version
222
- version: '1.13'
223
- type: :development
224
- prerelease: false
225
- version_requirements: !ruby/object:Gem::Requirement
226
- requirements:
227
- - - "~>"
228
- - !ruby/object:Gem::Version
229
- version: '1.13'
230
- - !ruby/object:Gem::Dependency
231
- name: stone_checksums
232
- requirement: !ruby/object:Gem::Requirement
233
- requirements:
234
- - - "~>"
235
- - !ruby/object:Gem::Version
236
- version: '1.0'
237
- - - ">="
238
- - !ruby/object:Gem::Version
239
- version: 1.0.3
240
- type: :development
241
- prerelease: false
242
- version_requirements: !ruby/object:Gem::Requirement
243
- requirements:
244
- - - "~>"
245
- - !ruby/object:Gem::Version
246
- version: '1.0'
247
- - - ">="
248
- - !ruby/object:Gem::Version
249
- version: 1.0.3
250
- - !ruby/object:Gem::Dependency
251
- name: gitmoji-regex
252
- requirement: !ruby/object:Gem::Requirement
253
- requirements:
254
- - - "~>"
255
- - !ruby/object:Gem::Version
256
- version: '1.0'
257
- - - ">="
258
- - !ruby/object:Gem::Version
259
- version: 1.0.3
260
- type: :development
261
- prerelease: false
262
- version_requirements: !ruby/object:Gem::Requirement
263
- requirements:
264
- - - "~>"
265
- - !ruby/object:Gem::Version
266
- version: '1.0'
267
- - - ">="
268
- - !ruby/object:Gem::Version
269
- version: 1.0.3
270
- description: "☯️ Psych::Merge provides smart YAML file merging that preserves comments,
271
- anchors/aliases, and supports freeze blocks for protecting destination content.
272
- Perfect for merging configuration templates with customized destination files."
53
+ version: 7.0.0
54
+ description: Psych-backed YAML provider gem for the Structured Merge YAML family.
273
55
  email:
274
- - floss@galtzo.com
56
+ - info@structuredmerge.org
275
57
  executables: []
276
58
  extensions: []
277
- extra_rdoc_files:
278
- - CHANGELOG.md
279
- - CITATION.cff
280
- - CODE_OF_CONDUCT.md
281
- - CONTRIBUTING.md
282
- - FUNDING.md
283
- - LICENSE.txt
284
- - README.md
285
- - REEK
286
- - RUBOCOP.md
287
- - SECURITY.md
59
+ extra_rdoc_files: []
288
60
  files:
289
- - CHANGELOG.md
290
- - CITATION.cff
291
- - CODE_OF_CONDUCT.md
292
- - CONTRIBUTING.md
293
- - FUNDING.md
294
- - LICENSE.txt
295
- - README.md
296
- - REEK
297
- - RUBOCOP.md
298
- - SECURITY.md
299
61
  - lib/psych-merge.rb
300
62
  - lib/psych/merge.rb
301
- - lib/psych/merge/comment_tracker.rb
302
- - lib/psych/merge/conflict_resolver.rb
303
- - lib/psych/merge/debug_logger.rb
304
- - lib/psych/merge/diff_mapper.rb
305
- - lib/psych/merge/emitter.rb
306
- - lib/psych/merge/file_analysis.rb
307
- - lib/psych/merge/freeze_node.rb
308
- - lib/psych/merge/mapping_match_refiner.rb
309
- - lib/psych/merge/merge_result.rb
310
- - lib/psych/merge/node_wrapper.rb
311
- - lib/psych/merge/partial_template_merger.rb
312
- - lib/psych/merge/smart_merger.rb
313
63
  - lib/psych/merge/version.rb
314
- - sig/psych/merge.rbs
315
- homepage: https://github.com/kettle-rb/psych-merge
64
+ homepage: https://github.com/structuredmerge/structuredmerge-ruby
316
65
  licenses:
317
- - MIT
66
+ - AGPL-3.0-only
67
+ - PolyForm-Small-Business-1.0.0
318
68
  metadata:
319
- homepage_uri: https://psych-merge.galtzo.com/
320
- source_code_uri: https://github.com/kettle-rb/psych-merge/tree/v1.0.0
321
- changelog_uri: https://github.com/kettle-rb/psych-merge/blob/v1.0.0/CHANGELOG.md
322
- bug_tracker_uri: https://github.com/kettle-rb/psych-merge/issues
323
- documentation_uri: https://www.rubydoc.info/gems/psych-merge/1.0.0
69
+ homepage_uri: https://structuredmerge.org
70
+ source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.0.0
71
+ changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.0.0/CHANGELOG.md
72
+ bug_tracker_uri: https://github.com/structuredmerge/structuredmerge-ruby/issues
73
+ documentation_uri: https://www.rubydoc.info/gems/psych-merge/7.0.0
324
74
  funding_uri: https://github.com/sponsors/pboling
325
- wiki_uri: https://github.com/kettle-rb/psych-merge/wiki
326
- news_uri: https://www.railsbling.com/tags/psych-merge
75
+ wiki_uri: https://github.com/structuredmerge/structuredmerge-ruby/wiki
327
76
  discord_uri: https://discord.gg/3qme4XHNKN
328
77
  rubygems_mfa_required: 'true'
329
- rdoc_options:
330
- - "--title"
331
- - psych-merge - ☯️ Intelligent YAML file merging using Psych AST analysis
332
- - "--main"
333
- - README.md
334
- - "--exclude"
335
- - "^sig/"
336
- - "--line-numbers"
337
- - "--inline-source"
338
- - "--quiet"
78
+ rdoc_options: []
339
79
  require_paths:
340
80
  - lib
341
81
  required_ruby_version: !ruby/object:Gem::Requirement
342
82
  requirements:
343
83
  - - ">="
344
84
  - !ruby/object:Gem::Version
345
- version: 3.2.0
85
+ version: 4.0.0
346
86
  required_rubygems_version: !ruby/object:Gem::Requirement
347
87
  requirements:
348
88
  - - ">="
349
89
  - !ruby/object:Gem::Version
350
90
  version: '0'
351
91
  requirements: []
352
- rubygems_version: 4.0.5
92
+ rubygems_version: 4.0.10
353
93
  specification_version: 4
354
- summary: "☯️ Intelligent YAML file merging using Psych AST analysis"
94
+ summary: Structured Merge Psych-backed YAML analysis for Ruby
355
95
  test_files: []
metadata.gz.sig CHANGED
Binary file