json-merge 1.1.2 → 7.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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/LICENSE.md +13 -0
- data/README.md +190 -618
- data/lib/json/merge/comment_tracker.rb +27 -0
- data/lib/json/merge/conflict_resolver.rb +1156 -113
- data/lib/json/merge/debug_logger.rb +8 -8
- data/lib/json/merge/emitter.rb +101 -37
- data/lib/json/merge/file_analysis.rb +261 -96
- data/lib/json/merge/freeze_node.rb +62 -0
- data/lib/json/merge/merge_result.rb +25 -5
- data/lib/json/merge/node_wrapper.rb +82 -131
- data/lib/json/merge/object_match_refiner.rb +13 -14
- data/lib/json/merge/smart_merger.rb +136 -10
- data/lib/json/merge/version.rb +5 -4
- data/lib/json/merge.rb +498 -101
- data/lib/json-merge.rb +7 -4
- data/sig/json/merge.rbs +3 -196
- data.tar.gz.sig +0 -0
- metadata +99 -81
- metadata.gz.sig +0 -0
- data/CHANGELOG.md +0 -149
- data/CITATION.cff +0 -20
- data/CODE_OF_CONDUCT.md +0 -134
- data/CONTRIBUTING.md +0 -227
- data/FUNDING.md +0 -74
- data/LICENSE.txt +0 -21
- data/REEK +0 -0
- data/RUBOCOP.md +0 -71
- data/SECURITY.md +0 -21
data/sig/json/merge.rbs
CHANGED
|
@@ -1,201 +1,8 @@
|
|
|
1
|
-
# Type signatures for json-merge gem
|
|
2
|
-
# Smart merge for JSON files using tree-sitter AST analysis
|
|
3
|
-
|
|
4
1
|
module Json
|
|
5
2
|
module Merge
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
# Base error class for json-merge errors
|
|
9
|
-
class Error < StandardError
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
# Error raised when template JSON file has syntax errors
|
|
13
|
-
class TemplateParseError < Error
|
|
14
|
-
attr_reader errors: Array[untyped]
|
|
15
|
-
attr_reader content: String?
|
|
16
|
-
|
|
17
|
-
def initialize: (?String? message, ?errors: Array[untyped], ?content: String?) -> void
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
# Error raised when destination JSON file has syntax errors
|
|
21
|
-
class DestinationParseError < Error
|
|
22
|
-
attr_reader errors: Array[untyped]
|
|
23
|
-
attr_reader content: String?
|
|
24
|
-
|
|
25
|
-
def initialize: (?String? message, ?errors: Array[untyped], ?content: String?) -> void
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
# Debug logging utility for Json::Merge
|
|
29
|
-
module DebugLogger
|
|
30
|
-
extend Ast::Merge::DebugLogger
|
|
31
|
-
|
|
32
|
-
def self.env_var_name: () -> String
|
|
33
|
-
def self.env_var_name=: (String name) -> String
|
|
34
|
-
def self.log_prefix: () -> String
|
|
35
|
-
def self.log_prefix=: (String prefix) -> String
|
|
36
|
-
def self.enabled?: () -> bool
|
|
37
|
-
def self.debug: (String message, ?Hash[Symbol, untyped] context) -> void
|
|
38
|
-
def self.info: (String message) -> void
|
|
39
|
-
def self.warning: (String message) -> void
|
|
40
|
-
def self.time: [T] (String operation) { () -> T } -> T
|
|
41
|
-
def self.extract_node_info: (untyped node) -> Hash[Symbol, untyped]
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
# Wrapper for tree-sitter JSON nodes
|
|
45
|
-
class NodeWrapper
|
|
46
|
-
attr_reader node: untyped
|
|
47
|
-
attr_reader start_line: Integer
|
|
48
|
-
attr_reader end_line: Integer
|
|
49
|
-
attr_reader analysis: FileAnalysis?
|
|
50
|
-
|
|
51
|
-
def initialize: (
|
|
52
|
-
untyped node,
|
|
53
|
-
String source,
|
|
54
|
-
?analysis: FileAnalysis?
|
|
55
|
-
) -> void
|
|
56
|
-
|
|
57
|
-
def location: () -> Ast::Merge::FreezeNode::Location
|
|
58
|
-
def signature: () -> Array[untyped]
|
|
59
|
-
def object?: () -> bool
|
|
60
|
-
def array?: () -> bool
|
|
61
|
-
def pair?: () -> bool
|
|
62
|
-
def key: () -> String?
|
|
63
|
-
def value: () -> untyped
|
|
64
|
-
def slice: () -> String?
|
|
65
|
-
def text: () -> String
|
|
66
|
-
def inspect: () -> String
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
# File analysis for JSON files
|
|
70
|
-
class FileAnalysis
|
|
71
|
-
include Ast::Merge::FileAnalysisBase
|
|
72
|
-
|
|
73
|
-
PARSER_SEARCH_PATHS: Array[String]
|
|
74
|
-
|
|
75
|
-
attr_reader source: String
|
|
76
|
-
attr_reader lines: Array[String]
|
|
77
|
-
attr_reader ast: untyped
|
|
78
|
-
attr_reader statements: Array[NodeWrapper]
|
|
79
|
-
attr_reader signature_generator: (^(untyped) -> Array[untyped]?)?
|
|
80
|
-
attr_reader errors: Array[untyped]
|
|
81
|
-
|
|
82
|
-
def self.find_parser_path: () -> String?
|
|
83
|
-
|
|
84
|
-
def initialize: (
|
|
85
|
-
String source,
|
|
86
|
-
?signature_generator: (^(untyped) -> Array[untyped]?)?,
|
|
87
|
-
?parser_path: String?
|
|
88
|
-
) -> void
|
|
89
|
-
|
|
90
|
-
def valid?: () -> bool
|
|
91
|
-
def line_at: (Integer line_num) -> String?
|
|
92
|
-
def normalized_line: (Integer line_num) -> String?
|
|
93
|
-
def signature_at: (Integer index) -> Array[untyped]?
|
|
94
|
-
def generate_signature: (untyped statement) -> Array[untyped]?
|
|
95
|
-
def compute_node_signature: (untyped statement) -> Array[untyped]?
|
|
96
|
-
|
|
97
|
-
private
|
|
98
|
-
|
|
99
|
-
def parse_json: () -> void
|
|
100
|
-
def extract_nodes: (untyped tree_node) -> Array[NodeWrapper]
|
|
101
|
-
def integrate_nodes: () -> Array[NodeWrapper]
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
# Result of a JSON merge operation
|
|
105
|
-
class MergeResult < Ast::Merge::MergeResult
|
|
106
|
-
DECISION_KEPT_TEMPLATE: Symbol
|
|
107
|
-
DECISION_KEPT_DEST: Symbol
|
|
108
|
-
DECISION_MERGED: Symbol
|
|
109
|
-
DECISION_ADDED: Symbol
|
|
110
|
-
|
|
111
|
-
attr_reader lines: Array[Hash[Symbol, untyped]]
|
|
112
|
-
attr_reader decisions: Array[Hash[Symbol, untyped]]
|
|
113
|
-
attr_reader statistics: Hash[Symbol, Integer]
|
|
114
|
-
|
|
115
|
-
def initialize: (
|
|
116
|
-
?template_analysis: FileAnalysis?,
|
|
117
|
-
?dest_analysis: FileAnalysis?,
|
|
118
|
-
?conflicts: Array[Hash[Symbol, untyped]],
|
|
119
|
-
?stats: Hash[Symbol, untyped]
|
|
120
|
-
) -> void
|
|
121
|
-
|
|
122
|
-
def add_line: (
|
|
123
|
-
String line,
|
|
124
|
-
decision: Symbol,
|
|
125
|
-
source: Symbol,
|
|
126
|
-
?original_line: Integer?
|
|
127
|
-
) -> void
|
|
128
|
-
|
|
129
|
-
def add_lines: (
|
|
130
|
-
Array[String] lines,
|
|
131
|
-
decision: Symbol,
|
|
132
|
-
source: Symbol,
|
|
133
|
-
?start_line: Integer?
|
|
134
|
-
) -> void
|
|
135
|
-
|
|
136
|
-
def add_blank_line: (?decision: Symbol, ?source: Symbol) -> void
|
|
137
|
-
def to_json: () -> String
|
|
138
|
-
def content: () -> Array[Hash[Symbol, untyped]]
|
|
139
|
-
def content_string: () -> String
|
|
140
|
-
def empty?: () -> bool
|
|
141
|
-
|
|
142
|
-
private
|
|
143
|
-
|
|
144
|
-
def track_statistics: (Symbol decision, Symbol source) -> void
|
|
145
|
-
end
|
|
146
|
-
|
|
147
|
-
# Smart merger for JSON files
|
|
148
|
-
class SmartMerger
|
|
149
|
-
include Ast::Merge::MergerConfig
|
|
150
|
-
|
|
151
|
-
attr_reader template_analysis: FileAnalysis
|
|
152
|
-
attr_reader dest_analysis: FileAnalysis
|
|
153
|
-
attr_reader signature_match_preference: (Symbol | Hash[Symbol, Symbol])
|
|
154
|
-
attr_reader add_template_only_nodes: bool
|
|
155
|
-
|
|
156
|
-
def initialize: (
|
|
157
|
-
String template_content,
|
|
158
|
-
String dest_content,
|
|
159
|
-
?signature_match_preference: (Symbol | Hash[Symbol, Symbol]),
|
|
160
|
-
?add_template_only_nodes: bool,
|
|
161
|
-
?signature_generator: (^(untyped) -> Array[untyped]?)?,
|
|
162
|
-
?node_splitter: Hash[Symbol, untyped]?,
|
|
163
|
-
?parser_path: String?
|
|
164
|
-
) -> void
|
|
165
|
-
|
|
166
|
-
def merge: () -> MergeResult
|
|
167
|
-
|
|
168
|
-
private
|
|
169
|
-
|
|
170
|
-
def perform_merge: () -> MergeResult
|
|
171
|
-
def merge_nodes: (MergeResult result) -> void
|
|
172
|
-
end
|
|
173
|
-
|
|
174
|
-
# Conflict resolver for JSON merges
|
|
175
|
-
class ConflictResolver
|
|
176
|
-
attr_reader template_analysis: FileAnalysis
|
|
177
|
-
attr_reader dest_analysis: FileAnalysis
|
|
178
|
-
attr_reader signature_match_preference: (Symbol | Hash[Symbol, Symbol])
|
|
179
|
-
attr_reader add_template_only_nodes: bool
|
|
180
|
-
|
|
181
|
-
def initialize: (
|
|
182
|
-
FileAnalysis template_analysis,
|
|
183
|
-
FileAnalysis dest_analysis,
|
|
184
|
-
?signature_match_preference: (Symbol | Hash[Symbol, Symbol]),
|
|
185
|
-
?add_template_only_nodes: bool
|
|
186
|
-
) -> void
|
|
187
|
-
|
|
188
|
-
def resolve: (untyped boundary, MergeResult result) -> void
|
|
189
|
-
end
|
|
190
|
-
|
|
191
|
-
# Emitter for reconstructing JSON output
|
|
192
|
-
class Emitter
|
|
193
|
-
attr_reader result: MergeResult
|
|
194
|
-
attr_reader indent: Integer
|
|
195
|
-
|
|
196
|
-
def initialize: (MergeResult result, ?indent: Integer) -> void
|
|
197
|
-
|
|
198
|
-
def emit: () -> String
|
|
3
|
+
module Version
|
|
4
|
+
VERSION: String
|
|
199
5
|
end
|
|
6
|
+
VERSION: String
|
|
200
7
|
end
|
|
201
8
|
end
|
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: 1.1
|
|
4
|
+
version: 7.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -38,45 +38,33 @@ cert_chain:
|
|
|
38
38
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
39
39
|
dependencies:
|
|
40
40
|
- !ruby/object:Gem::Dependency
|
|
41
|
-
name:
|
|
41
|
+
name: ast-merge
|
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
|
43
43
|
requirements:
|
|
44
|
-
- -
|
|
45
|
-
- !ruby/object:Gem::Version
|
|
46
|
-
version: '5.0'
|
|
47
|
-
- - ">="
|
|
44
|
+
- - '='
|
|
48
45
|
- !ruby/object:Gem::Version
|
|
49
|
-
version:
|
|
46
|
+
version: 7.1.1
|
|
50
47
|
type: :runtime
|
|
51
48
|
prerelease: false
|
|
52
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
53
50
|
requirements:
|
|
54
|
-
- -
|
|
55
|
-
- !ruby/object:Gem::Version
|
|
56
|
-
version: '5.0'
|
|
57
|
-
- - ">="
|
|
51
|
+
- - '='
|
|
58
52
|
- !ruby/object:Gem::Version
|
|
59
|
-
version:
|
|
53
|
+
version: 7.1.1
|
|
60
54
|
- !ruby/object:Gem::Dependency
|
|
61
|
-
name:
|
|
55
|
+
name: tree_haver
|
|
62
56
|
requirement: !ruby/object:Gem::Requirement
|
|
63
57
|
requirements:
|
|
64
|
-
- -
|
|
65
|
-
- !ruby/object:Gem::Version
|
|
66
|
-
version: '4.0'
|
|
67
|
-
- - ">="
|
|
58
|
+
- - '='
|
|
68
59
|
- !ruby/object:Gem::Version
|
|
69
|
-
version:
|
|
60
|
+
version: 7.1.1
|
|
70
61
|
type: :runtime
|
|
71
62
|
prerelease: false
|
|
72
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
73
64
|
requirements:
|
|
74
|
-
- -
|
|
75
|
-
- !ruby/object:Gem::Version
|
|
76
|
-
version: '4.0'
|
|
77
|
-
- - ">="
|
|
65
|
+
- - '='
|
|
78
66
|
- !ruby/object:Gem::Version
|
|
79
|
-
version:
|
|
67
|
+
version: 7.1.1
|
|
80
68
|
- !ruby/object:Gem::Dependency
|
|
81
69
|
name: version_gem
|
|
82
70
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -86,7 +74,7 @@ dependencies:
|
|
|
86
74
|
version: '1.1'
|
|
87
75
|
- - ">="
|
|
88
76
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: 1.1.
|
|
77
|
+
version: 1.1.15
|
|
90
78
|
type: :runtime
|
|
91
79
|
prerelease: false
|
|
92
80
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -96,35 +84,41 @@ dependencies:
|
|
|
96
84
|
version: '1.1'
|
|
97
85
|
- - ">="
|
|
98
86
|
- !ruby/object:Gem::Version
|
|
99
|
-
version: 1.1.
|
|
87
|
+
version: 1.1.15
|
|
100
88
|
- !ruby/object:Gem::Dependency
|
|
101
89
|
name: kettle-dev
|
|
102
90
|
requirement: !ruby/object:Gem::Requirement
|
|
103
91
|
requirements:
|
|
104
92
|
- - "~>"
|
|
105
93
|
- !ruby/object:Gem::Version
|
|
106
|
-
version: '
|
|
94
|
+
version: '2.5'
|
|
95
|
+
- - ">="
|
|
96
|
+
- !ruby/object:Gem::Version
|
|
97
|
+
version: 2.5.17
|
|
107
98
|
type: :development
|
|
108
99
|
prerelease: false
|
|
109
100
|
version_requirements: !ruby/object:Gem::Requirement
|
|
110
101
|
requirements:
|
|
111
102
|
- - "~>"
|
|
112
103
|
- !ruby/object:Gem::Version
|
|
113
|
-
version: '
|
|
104
|
+
version: '2.5'
|
|
105
|
+
- - ">="
|
|
106
|
+
- !ruby/object:Gem::Version
|
|
107
|
+
version: 2.5.17
|
|
114
108
|
- !ruby/object:Gem::Dependency
|
|
115
109
|
name: bundler-audit
|
|
116
110
|
requirement: !ruby/object:Gem::Requirement
|
|
117
111
|
requirements:
|
|
118
112
|
- - "~>"
|
|
119
113
|
- !ruby/object:Gem::Version
|
|
120
|
-
version: 0.9.
|
|
114
|
+
version: 0.9.3
|
|
121
115
|
type: :development
|
|
122
116
|
prerelease: false
|
|
123
117
|
version_requirements: !ruby/object:Gem::Requirement
|
|
124
118
|
requirements:
|
|
125
119
|
- - "~>"
|
|
126
120
|
- !ruby/object:Gem::Version
|
|
127
|
-
version: 0.9.
|
|
121
|
+
version: 0.9.3
|
|
128
122
|
- !ruby/object:Gem::Dependency
|
|
129
123
|
name: rake
|
|
130
124
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -160,45 +154,85 @@ dependencies:
|
|
|
160
154
|
- !ruby/object:Gem::Version
|
|
161
155
|
version: 1.0.4
|
|
162
156
|
- !ruby/object:Gem::Dependency
|
|
163
|
-
name:
|
|
157
|
+
name: anonymous_loader
|
|
164
158
|
requirement: !ruby/object:Gem::Requirement
|
|
165
159
|
requirements:
|
|
166
160
|
- - "~>"
|
|
167
161
|
- !ruby/object:Gem::Version
|
|
168
|
-
version: '
|
|
169
|
-
- - "
|
|
162
|
+
version: '0.1'
|
|
163
|
+
- - ">="
|
|
170
164
|
- !ruby/object:Gem::Version
|
|
171
|
-
version:
|
|
165
|
+
version: 0.1.3
|
|
172
166
|
type: :development
|
|
173
167
|
prerelease: false
|
|
174
168
|
version_requirements: !ruby/object:Gem::Requirement
|
|
175
169
|
requirements:
|
|
176
170
|
- - "~>"
|
|
177
171
|
- !ruby/object:Gem::Version
|
|
178
|
-
version: '
|
|
172
|
+
version: '0.1'
|
|
173
|
+
- - ">="
|
|
174
|
+
- !ruby/object:Gem::Version
|
|
175
|
+
version: 0.1.3
|
|
176
|
+
- !ruby/object:Gem::Dependency
|
|
177
|
+
name: appraisal2
|
|
178
|
+
requirement: !ruby/object:Gem::Requirement
|
|
179
|
+
requirements:
|
|
179
180
|
- - "~>"
|
|
180
181
|
- !ruby/object:Gem::Version
|
|
181
|
-
version: 3.
|
|
182
|
+
version: '3.2'
|
|
183
|
+
- - ">="
|
|
184
|
+
- !ruby/object:Gem::Version
|
|
185
|
+
version: 3.2.0
|
|
186
|
+
type: :development
|
|
187
|
+
prerelease: false
|
|
188
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
189
|
+
requirements:
|
|
190
|
+
- - "~>"
|
|
191
|
+
- !ruby/object:Gem::Version
|
|
192
|
+
version: '3.2'
|
|
193
|
+
- - ">="
|
|
194
|
+
- !ruby/object:Gem::Version
|
|
195
|
+
version: 3.2.0
|
|
182
196
|
- !ruby/object:Gem::Dependency
|
|
183
197
|
name: kettle-test
|
|
184
198
|
requirement: !ruby/object:Gem::Requirement
|
|
185
199
|
requirements:
|
|
186
200
|
- - "~>"
|
|
187
201
|
- !ruby/object:Gem::Version
|
|
188
|
-
version: '
|
|
202
|
+
version: '2.0'
|
|
189
203
|
- - ">="
|
|
190
204
|
- !ruby/object:Gem::Version
|
|
191
|
-
version:
|
|
205
|
+
version: 2.0.19
|
|
192
206
|
type: :development
|
|
193
207
|
prerelease: false
|
|
194
208
|
version_requirements: !ruby/object:Gem::Requirement
|
|
195
209
|
requirements:
|
|
196
210
|
- - "~>"
|
|
197
211
|
- !ruby/object:Gem::Version
|
|
198
|
-
version: '
|
|
212
|
+
version: '2.0'
|
|
213
|
+
- - ">="
|
|
214
|
+
- !ruby/object:Gem::Version
|
|
215
|
+
version: 2.0.19
|
|
216
|
+
- !ruby/object:Gem::Dependency
|
|
217
|
+
name: turbo_tests2
|
|
218
|
+
requirement: !ruby/object:Gem::Requirement
|
|
219
|
+
requirements:
|
|
220
|
+
- - "~>"
|
|
221
|
+
- !ruby/object:Gem::Version
|
|
222
|
+
version: '3.2'
|
|
199
223
|
- - ">="
|
|
200
224
|
- !ruby/object:Gem::Version
|
|
201
|
-
version:
|
|
225
|
+
version: 3.2.4
|
|
226
|
+
type: :development
|
|
227
|
+
prerelease: false
|
|
228
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
229
|
+
requirements:
|
|
230
|
+
- - "~>"
|
|
231
|
+
- !ruby/object:Gem::Version
|
|
232
|
+
version: '3.2'
|
|
233
|
+
- - ">="
|
|
234
|
+
- !ruby/object:Gem::Version
|
|
235
|
+
version: 3.2.4
|
|
202
236
|
- !ruby/object:Gem::Dependency
|
|
203
237
|
name: ruby-progressbar
|
|
204
238
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -222,7 +256,7 @@ dependencies:
|
|
|
222
256
|
version: '1.0'
|
|
223
257
|
- - ">="
|
|
224
258
|
- !ruby/object:Gem::Version
|
|
225
|
-
version: 1.0.
|
|
259
|
+
version: 1.0.8
|
|
226
260
|
type: :development
|
|
227
261
|
prerelease: false
|
|
228
262
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -232,86 +266,70 @@ dependencies:
|
|
|
232
266
|
version: '1.0'
|
|
233
267
|
- - ">="
|
|
234
268
|
- !ruby/object:Gem::Version
|
|
235
|
-
version: 1.0.
|
|
269
|
+
version: 1.0.8
|
|
236
270
|
- !ruby/object:Gem::Dependency
|
|
237
271
|
name: gitmoji-regex
|
|
238
272
|
requirement: !ruby/object:Gem::Requirement
|
|
239
273
|
requirements:
|
|
240
274
|
- - "~>"
|
|
241
275
|
- !ruby/object:Gem::Version
|
|
242
|
-
version: '
|
|
276
|
+
version: '2.0'
|
|
243
277
|
- - ">="
|
|
244
278
|
- !ruby/object:Gem::Version
|
|
245
|
-
version:
|
|
279
|
+
version: 2.0.11
|
|
246
280
|
type: :development
|
|
247
281
|
prerelease: false
|
|
248
282
|
version_requirements: !ruby/object:Gem::Requirement
|
|
249
283
|
requirements:
|
|
250
284
|
- - "~>"
|
|
251
285
|
- !ruby/object:Gem::Version
|
|
252
|
-
version: '
|
|
286
|
+
version: '2.0'
|
|
253
287
|
- - ">="
|
|
254
288
|
- !ruby/object:Gem::Version
|
|
255
|
-
version:
|
|
256
|
-
description: "☯️
|
|
257
|
-
|
|
258
|
-
tsconfig.json (without comments), and other standard JSON files. For JSON with Comments
|
|
259
|
-
(JSONC) files like devcontainer.json and VS Code settings, use jsonc-merge instead."
|
|
289
|
+
version: 2.0.11
|
|
290
|
+
description: "☯️ Portable JSON and JSONC analysis, owner matching, fallback, and merge
|
|
291
|
+
behavior for Structured Merge."
|
|
260
292
|
email:
|
|
261
293
|
- floss@galtzo.com
|
|
262
294
|
executables: []
|
|
263
295
|
extensions: []
|
|
264
|
-
extra_rdoc_files:
|
|
265
|
-
- CHANGELOG.md
|
|
266
|
-
- CITATION.cff
|
|
267
|
-
- CODE_OF_CONDUCT.md
|
|
268
|
-
- CONTRIBUTING.md
|
|
269
|
-
- FUNDING.md
|
|
270
|
-
- LICENSE.txt
|
|
271
|
-
- README.md
|
|
272
|
-
- REEK
|
|
273
|
-
- RUBOCOP.md
|
|
274
|
-
- SECURITY.md
|
|
296
|
+
extra_rdoc_files: []
|
|
275
297
|
files:
|
|
276
|
-
-
|
|
277
|
-
- CITATION.cff
|
|
278
|
-
- CODE_OF_CONDUCT.md
|
|
279
|
-
- CONTRIBUTING.md
|
|
280
|
-
- FUNDING.md
|
|
281
|
-
- LICENSE.txt
|
|
298
|
+
- LICENSE.md
|
|
282
299
|
- README.md
|
|
283
|
-
- REEK
|
|
284
|
-
- RUBOCOP.md
|
|
285
|
-
- SECURITY.md
|
|
286
300
|
- lib/json-merge.rb
|
|
287
301
|
- lib/json/merge.rb
|
|
302
|
+
- lib/json/merge/comment_tracker.rb
|
|
288
303
|
- lib/json/merge/conflict_resolver.rb
|
|
289
304
|
- lib/json/merge/debug_logger.rb
|
|
290
305
|
- lib/json/merge/emitter.rb
|
|
291
306
|
- lib/json/merge/file_analysis.rb
|
|
307
|
+
- lib/json/merge/freeze_node.rb
|
|
292
308
|
- lib/json/merge/merge_result.rb
|
|
293
309
|
- lib/json/merge/node_wrapper.rb
|
|
294
310
|
- lib/json/merge/object_match_refiner.rb
|
|
295
311
|
- lib/json/merge/smart_merger.rb
|
|
296
312
|
- lib/json/merge/version.rb
|
|
297
313
|
- sig/json/merge.rbs
|
|
298
|
-
homepage: https://github.com/
|
|
314
|
+
homepage: https://github.com/structuredmerge/structuredmerge-ruby
|
|
299
315
|
licenses:
|
|
300
|
-
-
|
|
316
|
+
- AGPL-3.0-only
|
|
317
|
+
- PolyForm-Small-Business-1.0.0
|
|
301
318
|
metadata:
|
|
302
|
-
homepage_uri: https://
|
|
303
|
-
source_code_uri: https://github.com/
|
|
304
|
-
changelog_uri: https://github.com/
|
|
305
|
-
bug_tracker_uri: https://github.com/
|
|
306
|
-
documentation_uri: https://www.rubydoc.info/gems/json-merge/1.1
|
|
319
|
+
homepage_uri: https://structuredmerge.org
|
|
320
|
+
source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.1
|
|
321
|
+
changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.1/CHANGELOG.md
|
|
322
|
+
bug_tracker_uri: https://github.com/structuredmerge/structuredmerge-ruby/issues
|
|
323
|
+
documentation_uri: https://www.rubydoc.info/gems/json-merge/7.1.1
|
|
307
324
|
funding_uri: https://github.com/sponsors/pboling
|
|
308
|
-
wiki_uri: https://github.com/
|
|
325
|
+
wiki_uri: https://github.com/structuredmerge/structuredmerge-ruby/wiki
|
|
309
326
|
news_uri: https://www.railsbling.com/tags/json-merge
|
|
310
327
|
discord_uri: https://discord.gg/3qme4XHNKN
|
|
328
|
+
mailing_list_uri: https://www.rubyforum.org/tag/structuredmerge
|
|
311
329
|
rubygems_mfa_required: 'true'
|
|
312
330
|
rdoc_options:
|
|
313
331
|
- "--title"
|
|
314
|
-
- json-merge - ☯️
|
|
332
|
+
- json-merge - ☯️ Structured Merge JSON analysis and merge for Ruby
|
|
315
333
|
- "--main"
|
|
316
334
|
- README.md
|
|
317
335
|
- "--exclude"
|
|
@@ -325,14 +343,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
325
343
|
requirements:
|
|
326
344
|
- - ">="
|
|
327
345
|
- !ruby/object:Gem::Version
|
|
328
|
-
version:
|
|
346
|
+
version: 4.0.0
|
|
329
347
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
330
348
|
requirements:
|
|
331
349
|
- - ">="
|
|
332
350
|
- !ruby/object:Gem::Version
|
|
333
351
|
version: '0'
|
|
334
352
|
requirements: []
|
|
335
|
-
rubygems_version: 4.0.
|
|
353
|
+
rubygems_version: 4.0.17
|
|
336
354
|
specification_version: 4
|
|
337
|
-
summary: "☯️
|
|
355
|
+
summary: "☯️ Structured Merge JSON analysis and merge for Ruby"
|
|
338
356
|
test_files: []
|
metadata.gz.sig
CHANGED
|
Binary file
|