json-merge 1.1.1 → 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.
metadata CHANGED
@@ -1,11 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json-merge
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
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-----
@@ -37,296 +37,74 @@ cert_chain:
37
37
  -----END CERTIFICATE-----
38
38
  date: 1980-01-02 00:00:00.000000000 Z
39
39
  dependencies:
40
- - !ruby/object:Gem::Dependency
41
- name: tree_haver
42
- requirement: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - "~>"
45
- - !ruby/object:Gem::Version
46
- version: '5.0'
47
- - - ">="
48
- - !ruby/object:Gem::Version
49
- version: 5.0.2
50
- type: :runtime
51
- prerelease: false
52
- version_requirements: !ruby/object:Gem::Requirement
53
- requirements:
54
- - - "~>"
55
- - !ruby/object:Gem::Version
56
- version: '5.0'
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- version: 5.0.2
60
40
  - !ruby/object:Gem::Dependency
61
41
  name: ast-merge
62
42
  requirement: !ruby/object:Gem::Requirement
63
43
  requirements:
64
- - - "~>"
65
- - !ruby/object:Gem::Version
66
- version: '4.0'
67
- - - ">="
44
+ - - '='
68
45
  - !ruby/object:Gem::Version
69
- version: 4.0.4
46
+ version: 7.0.0
70
47
  type: :runtime
71
48
  prerelease: false
72
49
  version_requirements: !ruby/object:Gem::Requirement
73
50
  requirements:
74
- - - "~>"
51
+ - - '='
75
52
  - !ruby/object:Gem::Version
76
- version: '4.0'
77
- - - ">="
78
- - !ruby/object:Gem::Version
79
- version: 4.0.4
53
+ version: 7.0.0
80
54
  - !ruby/object:Gem::Dependency
81
- name: version_gem
55
+ name: tree_haver
82
56
  requirement: !ruby/object:Gem::Requirement
83
57
  requirements:
84
- - - "~>"
85
- - !ruby/object:Gem::Version
86
- version: '1.1'
87
- - - ">="
58
+ - - '='
88
59
  - !ruby/object:Gem::Version
89
- version: 1.1.9
60
+ version: 7.0.0
90
61
  type: :runtime
91
62
  prerelease: false
92
63
  version_requirements: !ruby/object:Gem::Requirement
93
64
  requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '1.1'
97
- - - ">="
98
- - !ruby/object:Gem::Version
99
- version: 1.1.9
100
- - !ruby/object:Gem::Dependency
101
- name: kettle-dev
102
- requirement: !ruby/object:Gem::Requirement
103
- requirements:
104
- - - "~>"
105
- - !ruby/object:Gem::Version
106
- version: '1.1'
107
- type: :development
108
- prerelease: false
109
- version_requirements: !ruby/object:Gem::Requirement
110
- requirements:
111
- - - "~>"
112
- - !ruby/object:Gem::Version
113
- version: '1.1'
114
- - !ruby/object:Gem::Dependency
115
- name: bundler-audit
116
- requirement: !ruby/object:Gem::Requirement
117
- requirements:
118
- - - "~>"
119
- - !ruby/object:Gem::Version
120
- version: 0.9.2
121
- type: :development
122
- prerelease: false
123
- version_requirements: !ruby/object:Gem::Requirement
124
- requirements:
125
- - - "~>"
126
- - !ruby/object:Gem::Version
127
- version: 0.9.2
128
- - !ruby/object:Gem::Dependency
129
- name: rake
130
- requirement: !ruby/object:Gem::Requirement
131
- requirements:
132
- - - "~>"
133
- - !ruby/object:Gem::Version
134
- version: '13.0'
135
- type: :development
136
- prerelease: false
137
- version_requirements: !ruby/object:Gem::Requirement
138
- requirements:
139
- - - "~>"
140
- - !ruby/object:Gem::Version
141
- version: '13.0'
142
- - !ruby/object:Gem::Dependency
143
- name: require_bench
144
- requirement: !ruby/object:Gem::Requirement
145
- requirements:
146
- - - "~>"
147
- - !ruby/object:Gem::Version
148
- version: '1.0'
149
- - - ">="
150
- - !ruby/object:Gem::Version
151
- version: 1.0.4
152
- type: :development
153
- prerelease: false
154
- version_requirements: !ruby/object:Gem::Requirement
155
- requirements:
156
- - - "~>"
157
- - !ruby/object:Gem::Version
158
- version: '1.0'
159
- - - ">="
160
- - !ruby/object:Gem::Version
161
- version: 1.0.4
162
- - !ruby/object:Gem::Dependency
163
- name: appraisal2
164
- requirement: !ruby/object:Gem::Requirement
165
- requirements:
166
- - - "~>"
167
- - !ruby/object:Gem::Version
168
- version: '3.0'
169
- type: :development
170
- prerelease: false
171
- version_requirements: !ruby/object:Gem::Requirement
172
- requirements:
173
- - - "~>"
174
- - !ruby/object:Gem::Version
175
- version: '3.0'
176
- - !ruby/object:Gem::Dependency
177
- name: kettle-test
178
- requirement: !ruby/object:Gem::Requirement
179
- requirements:
180
- - - "~>"
181
- - !ruby/object:Gem::Version
182
- version: '1.0'
183
- - - ">="
184
- - !ruby/object:Gem::Version
185
- version: 1.0.6
186
- type: :development
187
- prerelease: false
188
- version_requirements: !ruby/object:Gem::Requirement
189
- requirements:
190
- - - "~>"
191
- - !ruby/object:Gem::Version
192
- version: '1.0'
193
- - - ">="
194
- - !ruby/object:Gem::Version
195
- version: 1.0.6
196
- - !ruby/object:Gem::Dependency
197
- name: ruby-progressbar
198
- requirement: !ruby/object:Gem::Requirement
199
- requirements:
200
- - - "~>"
201
- - !ruby/object:Gem::Version
202
- version: '1.13'
203
- type: :development
204
- prerelease: false
205
- version_requirements: !ruby/object:Gem::Requirement
206
- requirements:
207
- - - "~>"
208
- - !ruby/object:Gem::Version
209
- version: '1.13'
210
- - !ruby/object:Gem::Dependency
211
- name: stone_checksums
212
- requirement: !ruby/object:Gem::Requirement
213
- requirements:
214
- - - "~>"
215
- - !ruby/object:Gem::Version
216
- version: '1.0'
217
- - - ">="
218
- - !ruby/object:Gem::Version
219
- version: 1.0.2
220
- type: :development
221
- prerelease: false
222
- version_requirements: !ruby/object:Gem::Requirement
223
- requirements:
224
- - - "~>"
225
- - !ruby/object:Gem::Version
226
- version: '1.0'
227
- - - ">="
228
- - !ruby/object:Gem::Version
229
- version: 1.0.2
230
- - !ruby/object:Gem::Dependency
231
- name: gitmoji-regex
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
- - - ">="
65
+ - - '='
248
66
  - !ruby/object:Gem::Version
249
- version: 1.0.3
250
- description: "☯️ Json::Merge provides smart JSON file merging that understands JSON
251
- structure. Perfect for merging strict JSON configuration files like package.json,
252
- tsconfig.json (without comments), and other standard JSON files. For JSON with Comments
253
- (JSONC) files like devcontainer.json and VS Code settings, use jsonc-merge instead."
67
+ version: 7.0.0
68
+ description: Portable JSON and JSONC analysis, owner matching, fallback, and merge
69
+ behavior for Structured Merge.
254
70
  email:
255
- - floss@galtzo.com
71
+ - info@structuredmerge.org
256
72
  executables: []
257
73
  extensions: []
258
- extra_rdoc_files:
259
- - CHANGELOG.md
260
- - CITATION.cff
261
- - CODE_OF_CONDUCT.md
262
- - CONTRIBUTING.md
263
- - FUNDING.md
264
- - LICENSE.txt
265
- - README.md
266
- - REEK
267
- - RUBOCOP.md
268
- - SECURITY.md
74
+ extra_rdoc_files: []
269
75
  files:
270
- - CHANGELOG.md
271
- - CITATION.cff
272
- - CODE_OF_CONDUCT.md
273
- - CONTRIBUTING.md
274
- - FUNDING.md
275
- - LICENSE.txt
276
- - README.md
277
- - REEK
278
- - RUBOCOP.md
279
- - SECURITY.md
280
76
  - lib/json-merge.rb
281
77
  - lib/json/merge.rb
282
- - lib/json/merge/conflict_resolver.rb
283
- - lib/json/merge/debug_logger.rb
284
- - lib/json/merge/emitter.rb
285
- - lib/json/merge/file_analysis.rb
286
- - lib/json/merge/merge_result.rb
287
- - lib/json/merge/node_wrapper.rb
288
- - lib/json/merge/object_match_refiner.rb
289
- - lib/json/merge/smart_merger.rb
290
78
  - lib/json/merge/version.rb
291
- - sig/json/merge.rbs
292
- homepage: https://github.com/kettle-rb/json-merge
79
+ homepage: https://github.com/structuredmerge/structuredmerge-ruby
293
80
  licenses:
294
- - MIT
81
+ - AGPL-3.0-only
82
+ - PolyForm-Small-Business-1.0.0
295
83
  metadata:
296
- homepage_uri: https://json-merge.galtzo.com/
297
- source_code_uri: https://github.com/kettle-rb/json-merge/tree/v1.1.1
298
- changelog_uri: https://github.com/kettle-rb/json-merge/blob/v1.1.1/CHANGELOG.md
299
- bug_tracker_uri: https://github.com/kettle-rb/json-merge/issues
300
- documentation_uri: https://www.rubydoc.info/gems/json-merge/1.1.1
84
+ homepage_uri: https://structuredmerge.org
85
+ source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.0.0
86
+ changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.0.0/CHANGELOG.md
87
+ bug_tracker_uri: https://github.com/structuredmerge/structuredmerge-ruby/issues
88
+ documentation_uri: https://www.rubydoc.info/gems/json-merge/7.0.0
301
89
  funding_uri: https://github.com/sponsors/pboling
302
- wiki_uri: https://github.com/kettle-rb/json-merge/wiki
303
- news_uri: https://www.railsbling.com/tags/json-merge
90
+ wiki_uri: https://github.com/structuredmerge/structuredmerge-ruby/wiki
304
91
  discord_uri: https://discord.gg/3qme4XHNKN
305
92
  rubygems_mfa_required: 'true'
306
- rdoc_options:
307
- - "--title"
308
- - json-merge - ☯️ Intelligent JSON file merging using tree-sitter AST analysis
309
- - "--main"
310
- - README.md
311
- - "--exclude"
312
- - "^sig/"
313
- - "--line-numbers"
314
- - "--inline-source"
315
- - "--quiet"
93
+ rdoc_options: []
316
94
  require_paths:
317
95
  - lib
318
96
  required_ruby_version: !ruby/object:Gem::Requirement
319
97
  requirements:
320
98
  - - ">="
321
99
  - !ruby/object:Gem::Version
322
- version: 3.2.0
100
+ version: 4.0.0
323
101
  required_rubygems_version: !ruby/object:Gem::Requirement
324
102
  requirements:
325
103
  - - ">="
326
104
  - !ruby/object:Gem::Version
327
105
  version: '0'
328
106
  requirements: []
329
- rubygems_version: 4.0.3
107
+ rubygems_version: 4.0.10
330
108
  specification_version: 4
331
- summary: "☯️ Intelligent JSON file merging using tree-sitter AST analysis"
109
+ summary: Structured Merge JSON analysis and merge for Ruby
332
110
  test_files: []
metadata.gz.sig CHANGED
Binary file
data/CHANGELOG.md DELETED
@@ -1,122 +0,0 @@
1
- # Changelog
2
-
3
- [![SemVer 2.0.0][📌semver-img]][📌semver] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog]
4
-
5
- All notable changes to this project will be documented in this file.
6
-
7
- The format is based on [Keep a Changelog][📗keep-changelog],
8
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
9
- and [yes][📌major-versions-not-sacred], platform and engine support are part of the [public API][📌semver-breaking].
10
- Please file a bug if you notice a violation of semantic versioning.
11
-
12
- [📌semver]: https://semver.org/spec/v2.0.0.html
13
- [📌semver-img]: https://img.shields.io/badge/semver-2.0.0-FFDD67.svg?style=flat
14
- [📌semver-breaking]: https://github.com/semver/semver/issues/716#issuecomment-869336139
15
- [📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
16
- [📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
17
- [📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-FFDD67.svg?style=flat
18
-
19
- ## [Unreleased]
20
-
21
- ### Added
22
-
23
- ### Changed
24
-
25
- ### Deprecated
26
-
27
- ### Removed
28
-
29
- ### Fixed
30
-
31
- ### Security
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
-
103
- ## [1.0.0] - 2026-01-06
104
-
105
- - TAG: [v1.0.0][1.0.0t]
106
- - COVERAGE: 100.00% -- 194/194 lines in 2 files
107
- - BRANCH COVERAGE: 84.15% -- 69/82 branches in 2 files
108
- - 96.67% documented
109
-
110
- ### Added
111
-
112
- - Initial release
113
-
114
- ### Security
115
-
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
121
- [1.0.0]: https://github.com/kettle-rb/json-merge/compare/f1cc25b1d9b79c598270e3aa203fa56787e6c6fc...v1.0.0
122
- [1.0.0t]: https://github.com/kettle-rb/json-merge/tags/v1.0.0
data/CITATION.cff DELETED
@@ -1,20 +0,0 @@
1
- cff-version: 1.2.0
2
- title: json-merge
3
- message: >-
4
- If you use this work and you want to cite it,
5
- then you can use the metadata from this file.
6
- type: software
7
- authors:
8
- - given-names: Peter Hurn
9
- family-names: Boling
10
- email: peter@railsbling.com
11
- affiliation: railsbling.com
12
- orcid: 'https://orcid.org/0009-0008-8519-441X'
13
- identifiers:
14
- - type: url
15
- value: 'https://github.com/kettle-rb/json-merge'
16
- description: json-merge
17
- repository-code: 'https://github.com/kettle-rb/json-merge'
18
- abstract: >-
19
- json-merge
20
- license: See license file
data/CODE_OF_CONDUCT.md DELETED
@@ -1,134 +0,0 @@
1
- # Contributor Covenant Code of Conduct
2
-
3
- ## Our Pledge
4
-
5
- We as members, contributors, and leaders pledge to make participation in our
6
- community a harassment-free experience for everyone, regardless of age, body
7
- size, visible or invisible disability, ethnicity, sex characteristics, gender
8
- identity and expression, level of experience, education, socio-economic status,
9
- nationality, personal appearance, race, caste, color, religion, or sexual
10
- identity and orientation.
11
-
12
- We pledge to act and interact in ways that contribute to an open, welcoming,
13
- diverse, inclusive, and healthy community.
14
-
15
- ## Our Standards
16
-
17
- Examples of behavior that contributes to a positive environment for our
18
- community include:
19
-
20
- * Demonstrating empathy and kindness toward other people
21
- * Being respectful of differing opinions, viewpoints, and experiences
22
- * Giving and gracefully accepting constructive feedback
23
- * Accepting responsibility and apologizing to those affected by our mistakes,
24
- and learning from the experience
25
- * Focusing on what is best not just for us as individuals, but for the overall
26
- community
27
-
28
- Examples of unacceptable behavior include:
29
-
30
- * The use of sexualized language or imagery, and sexual attention or advances of
31
- any kind
32
- * Trolling, insulting or derogatory comments, and personal or political attacks
33
- * Public or private harassment
34
- * Publishing others' private information, such as a physical or email address,
35
- without their explicit permission
36
- * Other conduct which could reasonably be considered inappropriate in a
37
- professional setting
38
-
39
- ## Enforcement Responsibilities
40
-
41
- Community leaders are responsible for clarifying and enforcing our standards of
42
- acceptable behavior and will take appropriate and fair corrective action in
43
- response to any behavior that they deem inappropriate, threatening, offensive,
44
- or harmful.
45
-
46
- Community leaders have the right and responsibility to remove, edit, or reject
47
- comments, commits, code, wiki edits, issues, and other contributions that are
48
- not aligned to this Code of Conduct, and will communicate reasons for moderation
49
- decisions when appropriate.
50
-
51
- ## Scope
52
-
53
- This Code of Conduct applies within all community spaces, and also applies when
54
- an individual is officially representing the community in public spaces.
55
- Examples of representing our community include using an official email address,
56
- posting via an official social media account, or acting as an appointed
57
- representative at an online or offline event.
58
-
59
- ## Enforcement
60
-
61
- Instances of abusive, harassing, or otherwise unacceptable behavior may be
62
- reported to the community leaders responsible for enforcement at
63
- [![Contact Maintainer][🚂maint-contact-img]][🚂maint-contact].
64
- All complaints will be reviewed and investigated promptly and fairly.
65
-
66
- All community leaders are obligated to respect the privacy and security of the
67
- reporter of any incident.
68
-
69
- ## Enforcement Guidelines
70
-
71
- Community leaders will follow these Community Impact Guidelines in determining
72
- the consequences for any action they deem in violation of this Code of Conduct:
73
-
74
- ### 1. Correction
75
-
76
- **Community Impact**: Use of inappropriate language or other behavior deemed
77
- unprofessional or unwelcome in the community.
78
-
79
- **Consequence**: A private, written warning from community leaders, providing
80
- clarity around the nature of the violation and an explanation of why the
81
- behavior was inappropriate. A public apology may be requested.
82
-
83
- ### 2. Warning
84
-
85
- **Community Impact**: A violation through a single incident or series of
86
- actions.
87
-
88
- **Consequence**: A warning with consequences for continued behavior. No
89
- interaction with the people involved, including unsolicited interaction with
90
- those enforcing the Code of Conduct, for a specified period of time. This
91
- includes avoiding interactions in community spaces as well as external channels
92
- like social media. Violating these terms may lead to a temporary or permanent
93
- ban.
94
-
95
- ### 3. Temporary Ban
96
-
97
- **Community Impact**: A serious violation of community standards, including
98
- sustained inappropriate behavior.
99
-
100
- **Consequence**: A temporary ban from any sort of interaction or public
101
- communication with the community for a specified period of time. No public or
102
- private interaction with the people involved, including unsolicited interaction
103
- with those enforcing the Code of Conduct, is allowed during this period.
104
- Violating these terms may lead to a permanent ban.
105
-
106
- ### 4. Permanent Ban
107
-
108
- **Community Impact**: Demonstrating a pattern of violation of community
109
- standards, including sustained inappropriate behavior, harassment of an
110
- individual, or aggression toward or disparagement of classes of individuals.
111
-
112
- **Consequence**: A permanent ban from any sort of public interaction within the
113
- community.
114
-
115
- ## Attribution
116
-
117
- This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118
- version 2.1, available at
119
- [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
120
-
121
- Community Impact Guidelines were inspired by
122
- [Mozilla's code of conduct enforcement ladder][Mozilla CoC].
123
-
124
- For answers to common questions about this code of conduct, see the FAQ at
125
- [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
126
- [https://www.contributor-covenant.org/translations][translations].
127
-
128
- [homepage]: https://www.contributor-covenant.org
129
- [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
130
- [Mozilla CoC]: https://github.com/mozilla/diversity
131
- [FAQ]: https://www.contributor-covenant.org/faq
132
- [translations]: https://www.contributor-covenant.org/translations
133
- [🚂maint-contact]: http://www.railsbling.com/contact
134
- [🚂maint-contact-img]: https://img.shields.io/badge/Contact-Maintainer-0093D0.svg?style=flat&logo=rubyonrails&logoColor=red