snaky_hash 2.0.3 → 2.0.5

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.
data/RUBOCOP.md ADDED
@@ -0,0 +1,71 @@
1
+ # RuboCop Usage Guide
2
+
3
+ ## Overview
4
+
5
+ A tale of two RuboCop plugin gems.
6
+
7
+ ### RuboCop Gradual
8
+
9
+ This project uses `rubocop_gradual` instead of vanilla RuboCop for code style checking. The `rubocop_gradual` tool allows for gradual adoption of RuboCop rules by tracking violations in a lock file.
10
+
11
+ ### RuboCop LTS
12
+
13
+ This project uses `rubocop-lts` to ensure, on a best-effort basis, compatibility with Ruby >= 1.9.2.
14
+ RuboCop rules are meticulously configured by the `rubocop-lts` family of gems to ensure that a project is compatible with a specific version of Ruby. See: https://rubocop-lts.gitlab.io for more.
15
+
16
+ ## Checking RuboCop Violations
17
+
18
+ To check for RuboCop violations in this project, always use:
19
+
20
+ ```bash
21
+ bundle exec rake rubocop_gradual:check
22
+ ```
23
+
24
+ **Do not use** the standard RuboCop commands like:
25
+ - `bundle exec rubocop`
26
+ - `rubocop`
27
+
28
+ ## Understanding the Lock File
29
+
30
+ The `.rubocop_gradual.lock` file tracks all current RuboCop violations in the project. This allows the team to:
31
+
32
+ 1. Prevent new violations while gradually fixing existing ones
33
+ 2. Track progress on code style improvements
34
+ 3. Ensure CI builds don't fail due to pre-existing violations
35
+
36
+ ## Common Commands
37
+
38
+ - **Check violations**
39
+ - `bundle exec rake rubocop_gradual`
40
+ - `bundle exec rake rubocop_gradual:check`
41
+ - **(Safe) Autocorrect violations, and update lockfile if no new violations**
42
+ - `bundle exec rake rubocop_gradual:autocorrect`
43
+ - **Force update the lock file (w/o autocorrect) to match violations present in code**
44
+ - `bundle exec rake rubocop_gradual:force_update`
45
+
46
+ ## Workflow
47
+
48
+ 1. Before submitting a PR, run `bundle exec rake rubocop_gradual:autocorrect`
49
+ a. or just the default `bundle exec rake`, as autocorrection is a pre-requisite of the default task.
50
+ 2. If there are new violations, either:
51
+ - Fix them in your code
52
+ - Run `bundle exec rake rubocop_gradual:force_update` to update the lock file (only for violations you can't fix immediately)
53
+ 3. Commit the updated `.rubocop_gradual.lock` file along with your changes
54
+
55
+ ## Never add inline RuboCop disables
56
+
57
+ Do not add inline `rubocop:disable` / `rubocop:enable` comments anywhere in the codebase (including specs, except when following the few existing `rubocop:disable` patterns for a rule already being disabled elsewhere in the code). We handle exceptions in two supported ways:
58
+
59
+ - Permanent/structural exceptions: prefer adjusting the RuboCop configuration (e.g., in `.rubocop.yml`) to exclude a rule for a path or file pattern when it makes sense project-wide.
60
+ - Temporary exceptions while improving code: record the current violations in `.rubocop_gradual.lock` via the gradual workflow:
61
+ - `bundle exec rake rubocop_gradual:autocorrect` (preferred; will autocorrect what it can and update the lock only if no new violations were introduced)
62
+ - If needed, `bundle exec rake rubocop_gradual:force_update` (as a last resort when you cannot fix the newly reported violations immediately)
63
+
64
+ In general, treat the rules as guidance to follow; fix violations rather than ignore them. For example, RSpec conventions in this project expect `described_class` to be used in specs that target a specific class under test.
65
+
66
+ ## Benefits of rubocop_gradual
67
+
68
+ - Allows incremental adoption of code style rules
69
+ - Prevents CI failures due to pre-existing violations
70
+ - Provides a clear record of code style debt
71
+ - Enables focused efforts on improving code quality over time
data/SECURITY.md CHANGED
@@ -2,24 +2,20 @@
2
2
 
3
3
  ## Supported Versions
4
4
 
5
- | Version | Supported | EOL | Post-EOL / Enterprise |
6
- |---------|-----------|---------|---------------------------------------|
7
- | 2.0.x | ✅ | 04/2023 | [Tidelift Subscription][tidelift-ref] |
8
- | 1.0.x | | | |
5
+ | Version | Supported |
6
+ |----------|-----------|
7
+ | 2.0.latest | ✅ |
9
8
 
10
- ### EOL Policy
9
+ ## Security contact information
11
10
 
12
- Non-commercial support for the oldest version of Ruby (which itself is going EOL) will be dropped each year in April.
13
-
14
- ## Reporting a Vulnerability
15
-
16
- To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security).
11
+ To report a security vulnerability, please use the
12
+ [Tidelift security contact](https://tidelift.com/security).
17
13
  Tidelift will coordinate the fix and disclosure.
18
14
 
19
- ## Snaky Hash for Enterprise
20
-
21
- Available as part of the Tidelift Subscription.
15
+ ## Additional Support
22
16
 
23
- The maintainers of snaky_hash and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source packages you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact packages you use. [Learn more.][tidelift-ref]
17
+ If you are interested in support for versions older than the latest release,
18
+ please consider sponsoring the project / maintainer @ https://liberapay.com/pboling/donate,
19
+ or find other sponsorship links in the [README].
24
20
 
25
- [tidelift-ref]: https://tidelift.com/subscription/pkg/rubygems-snaky_hash?utm_source=rubygems-oauth&utm_medium=referral&utm_campaign=enterprise&utm_term=repo
21
+ [README]: README.md
data/certs/pboling.pem ADDED
@@ -0,0 +1,27 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIEgDCCAuigAwIBAgIBATANBgkqhkiG9w0BAQsFADBDMRUwEwYDVQQDDAxwZXRl
3
+ ci5ib2xpbmcxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkW
4
+ A2NvbTAeFw0yNTA1MDQxNTMzMDlaFw00NTA0MjkxNTMzMDlaMEMxFTATBgNVBAMM
5
+ DHBldGVyLmJvbGluZzEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPy
6
+ LGQBGRYDY29tMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAruUoo0WA
7
+ uoNuq6puKWYeRYiZekz/nsDeK5x/0IEirzcCEvaHr3Bmz7rjo1I6On3gGKmiZs61
8
+ LRmQ3oxy77ydmkGTXBjruJB+pQEn7UfLSgQ0xa1/X3kdBZt6RmabFlBxnHkoaGY5
9
+ mZuZ5+Z7walmv6sFD9ajhzj+oIgwWfnEHkXYTR8I6VLN7MRRKGMPoZ/yvOmxb2DN
10
+ coEEHWKO9CvgYpW7asIihl/9GMpKiRkcYPm9dGQzZc6uTwom1COfW0+ZOFrDVBuV
11
+ FMQRPswZcY4Wlq0uEBLPU7hxnCL9nKK6Y9IhdDcz1mY6HZ91WImNslOSI0S8hRpj
12
+ yGOWxQIhBT3fqCBlRIqFQBudrnD9jSNpSGsFvbEijd5ns7Z9ZMehXkXDycpGAUj1
13
+ to/5cuTWWw1JqUWrKJYoifnVhtE1o1DZ+LkPtWxHtz5kjDG/zR3MG0Ula0UOavlD
14
+ qbnbcXPBnwXtTFeZ3C+yrWpE4pGnl3yGkZj9SMTlo9qnTMiPmuWKQDatAgMBAAGj
15
+ fzB9MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBQE8uWvNbPVNRXZ
16
+ HlgPbc2PCzC4bjAhBgNVHREEGjAYgRZwZXRlci5ib2xpbmdAZ21haWwuY29tMCEG
17
+ A1UdEgQaMBiBFnBldGVyLmJvbGluZ0BnbWFpbC5jb20wDQYJKoZIhvcNAQELBQAD
18
+ ggGBAJbnUwfJQFPkBgH9cL7hoBfRtmWiCvdqdjeTmi04u8zVNCUox0A4gT982DE9
19
+ wmuN12LpdajxZONqbXuzZvc+nb0StFwmFYZG6iDwaf4BPywm2e/Vmq0YG45vZXGR
20
+ L8yMDSK1cQXjmA+ZBKOHKWavxP6Vp7lWvjAhz8RFwqF9GuNIdhv9NpnCAWcMZtpm
21
+ GUPyIWw/Cw/2wZp74QzZj6Npx+LdXoLTF1HMSJXZ7/pkxLCsB8m4EFVdb/IrW/0k
22
+ kNSfjtAfBHO8nLGuqQZVH9IBD1i9K6aSs7pT6TW8itXUIlkIUI2tg5YzW6OFfPzq
23
+ QekSkX3lZfY+HTSp/o+YvKkqWLUV7PQ7xh1ZYDtocpaHwgxe/j3bBqHE+CUPH2vA
24
+ 0V/FwdTRWcwsjVoOJTrYcff8pBZ8r2MvtAc54xfnnhGFzeRHfcltobgFxkAXdE6p
25
+ DVjBtqT23eugOqQ73umLcYDZkc36vnqGxUBSsXrzY9pzV5gGr2I8YUxMqf6ATrZt
26
+ L9nRqA==
27
+ -----END CERTIFICATE-----
@@ -24,7 +24,7 @@ module SnakyHash
24
24
  base.include(ConvenienceInstanceMethods)
25
25
  # :nocov:
26
26
  # This will be run in CI on Ruby 2.3, but we only collect coverage from current Ruby
27
- unless base.instance_methods.include?(:transform_values)
27
+ unless base.method_defined?(:transform_values)
28
28
  base.include(BackportedInstanceMethods)
29
29
  end
30
30
  # :nocov:
@@ -1,13 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SnakyHash
4
- # Defines the version information for SnakyHash
5
- #
6
- # @api public
7
4
  module Version
8
- # Current version of SnakyHash
9
- #
10
- # @return [String] the current version in semantic versioning format
11
- VERSION = "2.0.3"
5
+ VERSION = "2.0.5"
12
6
  end
7
+ VERSION = Version::VERSION # Traditional Constant Location
13
8
  end
@@ -0,0 +1,6 @@
1
+ module SnakyHash
2
+ module Version
3
+ VERSION: String
4
+ end
5
+ VERSION: String
6
+ end
@@ -0,0 +1,4 @@
1
+ module SnakyHash
2
+ VERSION: String
3
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: snaky_hash
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.3
4
+ version: 2.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Boling
@@ -35,7 +35,7 @@ cert_chain:
35
35
  DVjBtqT23eugOqQ73umLcYDZkc36vnqGxUBSsXrzY9pzV5gGr2I8YUxMqf6ATrZt
36
36
  L9nRqA==
37
37
  -----END CERTIFICATE-----
38
- date: 2025-05-23 00:00:00.000000000 Z
38
+ date: 1980-01-02 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: hashie
@@ -78,25 +78,39 @@ dependencies:
78
78
  - !ruby/object:Gem::Version
79
79
  version: '3'
80
80
  - !ruby/object:Gem::Dependency
81
- name: backports
81
+ name: kettle-dev
82
82
  requirement: !ruby/object:Gem::Requirement
83
83
  requirements:
84
84
  - - "~>"
85
85
  - !ruby/object:Gem::Version
86
- version: '3.25'
86
+ version: '2.1'
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: 3.25.1
89
+ version: 2.1.1
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '3.25'
96
+ version: '2.1'
97
97
  - - ">="
98
98
  - !ruby/object:Gem::Version
99
- version: 3.25.1
99
+ version: 2.1.1
100
+ - !ruby/object:Gem::Dependency
101
+ name: bundler-audit
102
+ requirement: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - "~>"
105
+ - !ruby/object:Gem::Version
106
+ version: 0.9.3
107
+ type: :development
108
+ prerelease: false
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - "~>"
112
+ - !ruby/object:Gem::Version
113
+ version: 0.9.3
100
114
  - !ruby/object:Gem::Dependency
101
115
  name: rake
102
116
  requirement: !ruby/object:Gem::Requirement
@@ -112,59 +126,99 @@ dependencies:
112
126
  - !ruby/object:Gem::Version
113
127
  version: '13.0'
114
128
  - !ruby/object:Gem::Dependency
115
- name: rspec
129
+ name: require_bench
116
130
  requirement: !ruby/object:Gem::Requirement
117
131
  requirements:
118
132
  - - "~>"
119
133
  - !ruby/object:Gem::Version
120
- version: '3.13'
134
+ version: '1.0'
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: 1.0.4
121
138
  type: :development
122
139
  prerelease: false
123
140
  version_requirements: !ruby/object:Gem::Requirement
124
141
  requirements:
125
142
  - - "~>"
126
143
  - !ruby/object:Gem::Version
127
- version: '3.13'
144
+ version: '1.0'
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: 1.0.4
128
148
  - !ruby/object:Gem::Dependency
129
- name: rspec-block_is_expected
149
+ name: appraisal2
130
150
  requirement: !ruby/object:Gem::Requirement
131
151
  requirements:
132
152
  - - "~>"
133
153
  - !ruby/object:Gem::Version
134
- version: '1.0'
154
+ version: '3.1'
135
155
  - - ">="
136
156
  - !ruby/object:Gem::Version
137
- version: 1.0.6
157
+ version: 3.1.1
138
158
  type: :development
139
159
  prerelease: false
140
160
  version_requirements: !ruby/object:Gem::Requirement
141
161
  requirements:
142
162
  - - "~>"
143
163
  - !ruby/object:Gem::Version
144
- version: '1.0'
164
+ version: '3.1'
145
165
  - - ">="
146
166
  - !ruby/object:Gem::Version
147
- version: 1.0.6
167
+ version: 3.1.1
148
168
  - !ruby/object:Gem::Dependency
149
- name: rspec-pending_for
169
+ name: kettle-test
150
170
  requirement: !ruby/object:Gem::Requirement
151
171
  requirements:
152
172
  - - "~>"
153
173
  - !ruby/object:Gem::Version
154
- version: '0.1'
174
+ version: '2.0'
155
175
  - - ">="
156
176
  - !ruby/object:Gem::Version
157
- version: 0.1.17
177
+ version: 2.0.3
158
178
  type: :development
159
179
  prerelease: false
160
180
  version_requirements: !ruby/object:Gem::Requirement
161
181
  requirements:
162
182
  - - "~>"
163
183
  - !ruby/object:Gem::Version
164
- version: '0.1'
184
+ version: '2.0'
165
185
  - - ">="
166
186
  - !ruby/object:Gem::Version
167
- version: 0.1.17
187
+ version: 2.0.3
188
+ - !ruby/object:Gem::Dependency
189
+ name: turbo_tests2
190
+ requirement: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: '3.1'
195
+ - - ">="
196
+ - !ruby/object:Gem::Version
197
+ version: 3.1.1
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - "~>"
203
+ - !ruby/object:Gem::Version
204
+ version: '3.1'
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ version: 3.1.1
208
+ - !ruby/object:Gem::Dependency
209
+ name: ruby-progressbar
210
+ requirement: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - "~>"
213
+ - !ruby/object:Gem::Version
214
+ version: '1.13'
215
+ type: :development
216
+ prerelease: false
217
+ version_requirements: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - "~>"
220
+ - !ruby/object:Gem::Version
221
+ version: '1.13'
168
222
  - !ruby/object:Gem::Dependency
169
223
  name: stone_checksums
170
224
  requirement: !ruby/object:Gem::Requirement
@@ -172,6 +226,9 @@ dependencies:
172
226
  - - "~>"
173
227
  - !ruby/object:Gem::Version
174
228
  version: '1.0'
229
+ - - ">="
230
+ - !ruby/object:Gem::Version
231
+ version: 1.0.3
175
232
  type: :development
176
233
  prerelease: false
177
234
  version_requirements: !ruby/object:Gem::Requirement
@@ -179,26 +236,76 @@ dependencies:
179
236
  - - "~>"
180
237
  - !ruby/object:Gem::Version
181
238
  version: '1.0'
182
- description: 'A Hashie::Mash joint to make #snakelife better'
239
+ - - ">="
240
+ - !ruby/object:Gem::Version
241
+ version: 1.0.3
242
+ - !ruby/object:Gem::Dependency
243
+ name: gitmoji-regex
244
+ requirement: !ruby/object:Gem::Requirement
245
+ requirements:
246
+ - - "~>"
247
+ - !ruby/object:Gem::Version
248
+ version: '2.0'
249
+ - - ">="
250
+ - !ruby/object:Gem::Version
251
+ version: 2.0.1
252
+ type: :development
253
+ prerelease: false
254
+ version_requirements: !ruby/object:Gem::Requirement
255
+ requirements:
256
+ - - "~>"
257
+ - !ruby/object:Gem::Version
258
+ version: '2.0'
259
+ - - ">="
260
+ - !ruby/object:Gem::Version
261
+ version: 2.0.1
262
+ - !ruby/object:Gem::Dependency
263
+ name: backports
264
+ requirement: !ruby/object:Gem::Requirement
265
+ requirements:
266
+ - - "~>"
267
+ - !ruby/object:Gem::Version
268
+ version: '3.25'
269
+ - - ">="
270
+ - !ruby/object:Gem::Version
271
+ version: 3.25.1
272
+ type: :development
273
+ prerelease: false
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - "~>"
277
+ - !ruby/object:Gem::Version
278
+ version: '3.25'
279
+ - - ">="
280
+ - !ruby/object:Gem::Version
281
+ version: 3.25.1
282
+ description: "\U0001F40D A Hashie::Mash joint to make #snakelife better"
183
283
  email:
184
- - peter.boling@gmail.com
284
+ - floss@galtzo.com
185
285
  - oauth-ruby@googlegroups.com
186
286
  executables: []
187
287
  extensions: []
188
288
  extra_rdoc_files:
189
289
  - CHANGELOG.md
290
+ - CITATION.cff
190
291
  - CODE_OF_CONDUCT.md
191
292
  - CONTRIBUTING.md
192
- - LICENSE.txt
293
+ - FUNDING.md
294
+ - LICENSE.md
193
295
  - README.md
296
+ - RUBOCOP.md
194
297
  - SECURITY.md
195
298
  files:
196
299
  - CHANGELOG.md
300
+ - CITATION.cff
197
301
  - CODE_OF_CONDUCT.md
198
302
  - CONTRIBUTING.md
199
- - LICENSE.txt
303
+ - FUNDING.md
304
+ - LICENSE.md
200
305
  - README.md
306
+ - RUBOCOP.md
201
307
  - SECURITY.md
308
+ - certs/pboling.pem
202
309
  - lib/snaky_hash.rb
203
310
  - lib/snaky_hash/extensions.rb
204
311
  - lib/snaky_hash/serializer.rb
@@ -206,30 +313,29 @@ files:
206
313
  - lib/snaky_hash/string_keyed.rb
207
314
  - lib/snaky_hash/symbol_keyed.rb
208
315
  - lib/snaky_hash/version.rb
209
- homepage: https://github.com/oauth-xx/snaky_hash
316
+ - sig/snaky_hash.rbs
317
+ - sig/snaky_hash/version.rbs
318
+ homepage: https://github.com/ruby-oauth/snaky_hash
210
319
  licenses:
211
320
  - MIT
212
321
  metadata:
213
- homepage_uri: https://snaky-hash.galtzo.com/
214
- source_code_uri: https://github.com/oauth-xx/snaky_hash/releases/tag//v2.0.3
215
- changelog_uri: https://gitlab.com/oauth-xx/snaky_hash/-/blob/v2.0.3/CHANGELOG.md
216
- bug_tracker_uri: https://gitlab.com/oauth-xx/snaky_hash/-/issues
217
- documentation_uri: https://www.rubydoc.info/gems/snaky_hash/2.0.3
218
- wiki_uri: https://gitlab.com/oauth-xx/snaky_hash/-/wiki
219
- mailing_list_uri: https://groups.google.com/g/oauth-ruby
220
- funding_uri: https://liberapay.com/pboling
322
+ homepage_uri: https://snaky-hash.galtzo.com
323
+ source_code_uri: https://github.com/ruby-oauth/snaky_hash/tree/v2.0.5
324
+ changelog_uri: https://github.com/ruby-oauth/snaky_hash/blob/v2.0.5/CHANGELOG.md
325
+ bug_tracker_uri: https://github.com/ruby-oauth/snaky_hash/issues
326
+ documentation_uri: https://www.rubydoc.info/gems/snaky_hash/2.0.5
327
+ funding_uri: https://github.com/sponsors/pboling
328
+ wiki_uri: https://github.com/ruby-oauth/snaky_hash/wiki
221
329
  news_uri: https://www.railsbling.com/tags/snaky_hash
330
+ discord_uri: https://discord.gg/3qme4XHNKN
222
331
  rubygems_mfa_required: 'true'
223
332
  rdoc_options:
224
333
  - "--title"
225
- - snaky_hash - A very snaky hash
334
+ - "snaky_hash - \U0001F40D A very snaky hash"
226
335
  - "--main"
227
- - CHANGELOG.md
228
- - CODE_OF_CONDUCT.md
229
- - CONTRIBUTING.md
230
- - LICENSE.txt
231
336
  - README.md
232
- - SECURITY.md
337
+ - "--exclude"
338
+ - "^sig/"
233
339
  - "--line-numbers"
234
340
  - "--inline-source"
235
341
  - "--quiet"
@@ -246,7 +352,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
246
352
  - !ruby/object:Gem::Version
247
353
  version: '0'
248
354
  requirements: []
249
- rubygems_version: 3.6.9
355
+ rubygems_version: 4.0.10
250
356
  specification_version: 4
251
- summary: A very snaky hash
357
+ summary: "\U0001F40D A very snaky hash"
252
358
  test_files: []
metadata.gz.sig CHANGED
Binary file
data/LICENSE.txt DELETED
@@ -1,21 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2022, 2025 Peter Boling
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.