stone_checksums 1.0.2 → 1.0.4

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
@@ -4,7 +4,7 @@
4
4
 
5
5
  | Version | Supported |
6
6
  |----------|-----------|
7
- | 1.latest | ✅ |
7
+ | 1.0.latest | ✅ |
8
8
 
9
9
  ## Security contact information
10
10
 
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-----
data/lib/gem_checksums.rb CHANGED
@@ -3,6 +3,7 @@
3
3
  # Std lib
4
4
  require "digest/sha2"
5
5
  require "fileutils"
6
+ require "rubygems/package"
6
7
 
7
8
  # external gems
8
9
  require "version_gem"
@@ -25,31 +26,31 @@ module GemChecksums
25
26
  GIT_DRY_RUN_ENV = ENV.fetch("GEM_CHECKSUMS_GIT_DRY_RUN", "false").casecmp("true") == 0
26
27
  CHECKSUMS_DIR = ENV.fetch("GEM_CHECKSUMS_CHECKSUMS_DIR", "checksums")
27
28
  PACKAGE_DIR = ENV.fetch("GEM_CHECKSUMS_PACKAGE_DIR", "pkg")
28
- BUILD_TIME_WARNING = <<~BUILD_TIME_WARNING
29
- WARNING: Build time not provided via environment variable SOURCE_DATE_EPOCH.
30
- When using Bundler < 2.7.0, you must set SOURCE_DATE_EPOCH *before* building
31
- the gem to ensure consistent SHA-256 & SHA-512 checksums.
32
-
33
- PREFERRED: Upgrade to Bundler >= 2.7.0, which uses a constant timestamp for gem builds,
34
- making SOURCE_DATE_EPOCH unnecessary for reproducible checksums.
35
-
36
- IMPORTANT: If you choose to set the build time via SOURCE_DATE_EPOCH,
37
- you must re-build the gem, i.e. `bundle exec rake build` or `gem build`.
38
-
39
- How to set the build time (only needed for Bundler < 2.7.0):
40
-
41
- In zsh shell:
42
- - export SOURCE_DATE_EPOCH=$EPOCHSECONDS && echo $SOURCE_DATE_EPOCH
43
- - If the echo above has no output, then it didn't work.
44
- - Note that you'll need the `zsh/datetime` module enabled.
45
-
46
- In fish shell:
47
- - set -x SOURCE_DATE_EPOCH (date +%s)
48
- - echo $SOURCE_DATE_EPOCH
49
-
50
- In bash shell:
51
- - export SOURCE_DATE_EPOCH=$(date +%s) && echo $SOURCE_DATE_EPOCH
52
-
29
+ BUILD_TIME_WARNING = <<-BUILD_TIME_WARNING
30
+ WARNING: Build time not provided via environment variable SOURCE_DATE_EPOCH.
31
+ When using Bundler < 2.7.0, you must set SOURCE_DATE_EPOCH *before* building
32
+ the gem to ensure consistent SHA-256 & SHA-512 checksums.
33
+
34
+ PREFERRED: Upgrade to Bundler >= 2.7.0, which uses a constant timestamp for gem builds,
35
+ making SOURCE_DATE_EPOCH unnecessary for reproducible checksums.
36
+
37
+ IMPORTANT: If you choose to set the build time via SOURCE_DATE_EPOCH,
38
+ you must re-build the gem, i.e. `bundle exec rake build` or `gem build`.
39
+
40
+ How to set the build time (only needed for Bundler < 2.7.0):
41
+
42
+ In zsh shell:
43
+ - export SOURCE_DATE_EPOCH=$EPOCHSECONDS && echo $SOURCE_DATE_EPOCH
44
+ - If the echo above has no output, then it didn't work.
45
+ - Note that you'll need the `zsh/datetime` module enabled.
46
+
47
+ In fish shell:
48
+ - set -x SOURCE_DATE_EPOCH (date +%s)
49
+ - echo $SOURCE_DATE_EPOCH
50
+
51
+ In bash shell:
52
+ - export SOURCE_DATE_EPOCH=$(date +%s) && echo $SOURCE_DATE_EPOCH
53
+
53
54
  BUILD_TIME_WARNING
54
55
 
55
56
  # Make this gem's rake tasks available in your Rakefile:
@@ -93,7 +94,7 @@ module GemChecksums
93
94
  # Header: identify the gem and version being run
94
95
  begin
95
96
  puts "[ stone_checksums #{::StoneChecksums::Version::VERSION} ]"
96
- rescue StandardError
97
+ rescue
97
98
  # If for any reason the version constant isn't available, skip header gracefully
98
99
  end
99
100
 
@@ -108,11 +109,11 @@ module GemChecksums
108
109
 
109
110
  unless proceed
110
111
  # Non-interactive prompt: advise and abort
111
- prompt_msg = <<~PROMPT
112
- Detected Bundler #{bundler_ver || "(unknown)"} which is older than 2.7.0.
113
- For reproducible builds without SOURCE_DATE_EPOCH, please update Bundler to >= 2.7.0.
114
- If you still want to proceed with this older Bundler, you must set SOURCE_DATE_EPOCH and re-run.
115
- Tip: set GEM_CHECKSUMS_ASSUME_YES=true to proceed non-interactively (still requires SOURCE_DATE_EPOCH).
112
+ prompt_msg = <<-PROMPT
113
+ Detected Bundler #{bundler_ver || "(unknown)"} which is older than 2.7.0.
114
+ For reproducible builds without SOURCE_DATE_EPOCH, please update Bundler to >= 2.7.0.
115
+ If you still want to proceed with this older Bundler, you must set SOURCE_DATE_EPOCH and re-run.
116
+ Tip: set GEM_CHECKSUMS_ASSUME_YES=true to proceed non-interactively (still requires SOURCE_DATE_EPOCH).
116
117
  PROMPT
117
118
  warn(prompt_msg)
118
119
  # Continue to enforce SOURCE_DATE_EPOCH below; if not set, this will raise.
@@ -153,12 +154,14 @@ module GemChecksums
153
154
  # Sort by newest last
154
155
  # [ "my_gem-2.3.9.gem", "my_gem-2.3.11.pre.alpha.4.gem", "my_gem-2.3.15.gem", ... ]
155
156
  gems.sort_by! { |gem| Gem::Version.new(gem[VERSION_REGEX]) }
156
- gem_pkg = gems.last
157
+ gem_pkg = preferred_project_package(gems) || gems.last
157
158
  gem_path_parts = gem_pkg.split("/")
158
159
  gem_name = gem_path_parts.last
159
- puts "Found: #{gems.length} gems; latest is #{gem_name}"
160
+ puts "Found: #{gems.length} gems; selected #{gem_name}"
160
161
  end
161
162
 
163
+ validate_project_package!(gem_pkg)
164
+
162
165
  pkg_bits = File.read(gem_pkg)
163
166
 
164
167
  # SHA-512 digest is 8 64-bit words
@@ -174,38 +177,38 @@ module GemChecksums
174
177
 
175
178
  version = gem_name[VERSION_REGEX]
176
179
 
177
- git_cmd = <<~GIT_MSG.rstrip
178
- git add #{CHECKSUMS_DIR}/* && \
179
- git commit #{git_dry_run_flag} -m "🔒️ Checksums for v#{version}"
180
+ git_cmd = <<-GIT_MSG.rstrip
181
+ git add #{CHECKSUMS_DIR}/* && \
182
+ git commit #{git_dry_run_flag} -m "🔒️ Checksums for v#{version}"
180
183
  GIT_MSG
181
184
 
182
185
  if git_dry_run_flag
183
- git_cmd += <<~CLEANUP_MSG
184
- && \
185
- echo "Cleaning up in dry run mode" && \
186
- git reset #{digest512_64bit_path} && \
187
- git reset #{digest256_32bit_path} && \
188
- rm -f #{digest512_64bit_path} && \
189
- rm -f #{digest256_32bit_path}
186
+ git_cmd += <<-CLEANUP_MSG
187
+ && \
188
+ echo "Cleaning up in dry run mode" && \
189
+ git reset #{digest512_64bit_path} && \
190
+ git reset #{digest256_32bit_path} && \
191
+ rm -f #{digest512_64bit_path} && \
192
+ rm -f #{digest256_32bit_path}
190
193
  CLEANUP_MSG
191
194
  end
192
195
 
193
- puts <<~RESULTS
194
- [ GEM: #{gem_name} ]
195
- [ VERSION: #{version} ]
196
- [ GEM PKG LOCATION: #{gem_pkg} ]
197
- [ CHECKSUM SHA-256: #{digest256_32bit} ]
198
- [ CHECKSUM SHA-512: #{digest512_64bit} ]
199
- [ CHECKSUM SHA-256 PATH: #{digest256_32bit_path} ]
200
- [ CHECKSUM SHA-512 PATH: #{digest512_64bit_path} ]
201
-
202
- ... Running ...
203
-
204
- #{git_cmd}
196
+ puts <<-RESULTS
197
+ [ GEM: #{gem_name} ]
198
+ [ VERSION: #{version} ]
199
+ [ GEM PKG LOCATION: #{gem_pkg} ]
200
+ [ CHECKSUM SHA-256: #{digest256_32bit} ]
201
+ [ CHECKSUM SHA-512: #{digest512_64bit} ]
202
+ [ CHECKSUM SHA-256 PATH: #{digest256_32bit_path} ]
203
+ [ CHECKSUM SHA-512 PATH: #{digest512_64bit_path} ]
204
+
205
+ ... Running ...
206
+
207
+ #{git_cmd}
205
208
  RESULTS
206
209
 
207
210
  if git_dry_run_flag
208
- %x{#{git_cmd}}
211
+ `#{git_cmd}`
209
212
  else
210
213
  # `exec` will replace the current process with the git process, and exit.
211
214
  # Within the generate method, Ruby code placed after the `exec` *will not be run*:
@@ -216,6 +219,46 @@ module GemChecksums
216
219
  end
217
220
  end
218
221
  module_function :generate
222
+
223
+ def validate_project_package!(gem_pkg)
224
+ project_spec = current_project_spec
225
+ return unless project_spec
226
+ return unless validate_package_against_project?(gem_pkg, project_spec)
227
+
228
+ package_spec = Gem::Package.new(gem_pkg).spec
229
+ return if package_spec.name == project_spec.name && package_spec.version == project_spec.version
230
+
231
+ raise Error, [
232
+ "Built gem version mismatch for #{gem_pkg}.",
233
+ "Current gemspec resolves to #{project_spec.name} #{project_spec.version}, but selected package is #{package_spec.name} #{package_spec.version}.",
234
+ "Remove stale packages or pass the intended .gem path explicitly before generating checksums."
235
+ ].join("\n")
236
+ rescue Gem::Package::Error => error
237
+ raise Error, "Unable to inspect built gem #{gem_pkg}: #{error.message}"
238
+ end
239
+ module_function :validate_project_package!
240
+
241
+ def current_project_spec
242
+ gemspecs = Dir["*.gemspec"]
243
+ return unless gemspecs.length == 1
244
+
245
+ Gem::Specification.load(gemspecs.first)
246
+ end
247
+ module_function :current_project_spec
248
+
249
+ def preferred_project_package(gems)
250
+ project_spec = current_project_spec
251
+ return unless project_spec
252
+
253
+ expected_name = "#{project_spec.name}-#{project_spec.version}.gem"
254
+ gems.find { |gem| File.basename(gem) == expected_name }
255
+ end
256
+ module_function :preferred_project_package
257
+
258
+ def validate_package_against_project?(gem_pkg, project_spec)
259
+ File.basename(File.expand_path(PACKAGE_DIR)) == "pkg" || File.basename(gem_pkg).start_with?("#{project_spec.name}-")
260
+ end
261
+ module_function :validate_package_against_project?
219
262
  end
220
263
 
221
264
  GemChecksums::Version.class_eval do
@@ -1,11 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Semantic version for the StoneChecksums gem
4
3
  module StoneChecksums
5
- # Version-related constants for StoneChecksums
6
4
  module Version
7
- # Current gem version
8
- # @return [String]
9
- VERSION = "1.0.2"
5
+ VERSION = "1.0.4"
10
6
  end
7
+ VERSION = Version::VERSION # Traditional Constant Location
11
8
  end
@@ -7,6 +7,8 @@
7
7
  #
8
8
  # RubyGems does not allow publishing a gem named `gem_checksums`,
9
9
  # hence the updated namespace and gem name.
10
+ require "version_gem"
11
+
10
12
  require_relative "gem_checksums"
11
13
 
12
14
  # This library's version
@@ -0,0 +1,6 @@
1
+ module StoneChecksums
2
+ module Version
3
+ VERSION: String
4
+ end
5
+ VERSION: String
6
+ end
@@ -1,11 +1,8 @@
1
1
  module StoneChecksums
2
- VERSION: String
3
-
4
2
  class Error < ::GemChecksums::Error
5
3
  end
6
4
 
7
5
  module Version
8
- VERSION: String
9
6
  end
10
7
 
11
8
  def self.install_tasks: () -> void
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stone_checksums
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
- - Peter H. Boling
7
+ - "|7eter l-|. l3oling"
8
8
  bindir: exe
9
9
  cert_chain:
10
10
  - |
@@ -46,7 +46,7 @@ dependencies:
46
46
  version: '1.1'
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 1.1.8
49
+ version: 1.1.13
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
@@ -56,9 +56,57 @@ dependencies:
56
56
  version: '1.1'
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 1.1.8
59
+ version: 1.1.13
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: kettle-dev
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "~>"
65
+ - !ruby/object:Gem::Version
66
+ version: '2.2'
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: 2.2.15
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '2.2'
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: 2.2.15
80
+ - !ruby/object:Gem::Dependency
81
+ name: bundler-audit
82
+ requirement: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - "~>"
85
+ - !ruby/object:Gem::Version
86
+ version: 0.9.3
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - "~>"
92
+ - !ruby/object:Gem::Version
93
+ version: 0.9.3
94
+ - !ruby/object:Gem::Dependency
95
+ name: rake
96
+ requirement: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - "~>"
99
+ - !ruby/object:Gem::Version
100
+ version: '13.0'
101
+ type: :development
102
+ prerelease: false
103
+ version_requirements: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - "~>"
106
+ - !ruby/object:Gem::Version
107
+ version: '13.0'
108
+ - !ruby/object:Gem::Dependency
109
+ name: require_bench
62
110
  requirement: !ruby/object:Gem::Requirement
63
111
  requirements:
64
112
  - - "~>"
@@ -66,7 +114,7 @@ dependencies:
66
114
  version: '1.0'
67
115
  - - ">="
68
116
  - !ruby/object:Gem::Version
69
- version: 1.0.10
117
+ version: 1.0.4
70
118
  type: :development
71
119
  prerelease: false
72
120
  version_requirements: !ruby/object:Gem::Requirement
@@ -76,27 +124,101 @@ dependencies:
76
124
  version: '1.0'
77
125
  - - ">="
78
126
  - !ruby/object:Gem::Version
79
- version: 1.0.10
127
+ version: 1.0.4
128
+ - !ruby/object:Gem::Dependency
129
+ name: appraisal2
130
+ requirement: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - "~>"
133
+ - !ruby/object:Gem::Version
134
+ version: '3.1'
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: 3.1.3
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '3.1'
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: 3.1.3
148
+ - !ruby/object:Gem::Dependency
149
+ name: kettle-test
150
+ requirement: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - "~>"
153
+ - !ruby/object:Gem::Version
154
+ version: '2.0'
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ version: 2.0.6
158
+ type: :development
159
+ prerelease: false
160
+ version_requirements: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - "~>"
163
+ - !ruby/object:Gem::Version
164
+ version: '2.0'
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: 2.0.6
168
+ - !ruby/object:Gem::Dependency
169
+ name: turbo_tests2
170
+ requirement: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - "~>"
173
+ - !ruby/object:Gem::Version
174
+ version: '3.1'
175
+ - - ">="
176
+ - !ruby/object:Gem::Version
177
+ version: 3.1.5
178
+ type: :development
179
+ prerelease: false
180
+ version_requirements: !ruby/object:Gem::Requirement
181
+ requirements:
182
+ - - "~>"
183
+ - !ruby/object:Gem::Version
184
+ version: '3.1'
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: 3.1.5
188
+ - !ruby/object:Gem::Dependency
189
+ name: ruby-progressbar
190
+ requirement: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: '1.13'
195
+ type: :development
196
+ prerelease: false
197
+ version_requirements: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "~>"
200
+ - !ruby/object:Gem::Version
201
+ version: '1.13'
80
202
  - !ruby/object:Gem::Dependency
81
- name: rspec-pending_for
203
+ name: gitmoji-regex
82
204
  requirement: !ruby/object:Gem::Requirement
83
205
  requirements:
84
206
  - - "~>"
85
207
  - !ruby/object:Gem::Version
86
- version: '0.1'
208
+ version: '2.0'
87
209
  - - ">="
88
210
  - !ruby/object:Gem::Version
89
- version: 0.1.18
211
+ version: 2.0.3
90
212
  type: :development
91
213
  prerelease: false
92
214
  version_requirements: !ruby/object:Gem::Requirement
93
215
  requirements:
94
216
  - - "~>"
95
217
  - !ruby/object:Gem::Version
96
- version: '0.1'
218
+ version: '2.0'
97
219
  - - ">="
98
220
  - !ruby/object:Gem::Version
99
- version: 0.1.18
221
+ version: 2.0.3
100
222
  description: "\U0001F5FF Generate both SHA256 & SHA512 checksums into the checksums
101
223
  directory, and git commit them.\n gem install stone_checksums\nThen, use the rake
102
224
  task or the script:\n rake build:generate_checksums\n gem_checksums\nControl options
@@ -109,18 +231,25 @@ executables:
109
231
  extensions: []
110
232
  extra_rdoc_files:
111
233
  - CHANGELOG.md
234
+ - CITATION.cff
112
235
  - CODE_OF_CONDUCT.md
113
236
  - CONTRIBUTING.md
114
- - LICENSE.txt
237
+ - FUNDING.md
238
+ - LICENSE.md
115
239
  - README.md
240
+ - RUBOCOP.md
116
241
  - SECURITY.md
117
242
  files:
118
243
  - CHANGELOG.md
244
+ - CITATION.cff
119
245
  - CODE_OF_CONDUCT.md
120
246
  - CONTRIBUTING.md
121
- - LICENSE.txt
247
+ - FUNDING.md
248
+ - LICENSE.md
122
249
  - README.md
250
+ - RUBOCOP.md
123
251
  - SECURITY.md
252
+ - certs/pboling.pem
124
253
  - exe/gem_checksums
125
254
  - lib/gem_checksums.rb
126
255
  - lib/gem_checksums/rakelib/gem_checksums.rake
@@ -130,15 +259,16 @@ files:
130
259
  - lib/stone_checksums/version.rb
131
260
  - sig/gem_checksums.rbs
132
261
  - sig/stone_checksums.rbs
262
+ - sig/stone_checksums/version.rbs
133
263
  homepage: https://github.com/galtzo-floss/stone_checksums
134
264
  licenses:
135
265
  - MIT
136
266
  metadata:
137
- homepage_uri: https://stone-checksums.galtzo.com/
138
- source_code_uri: https://github.com/galtzo-floss/stone_checksums/tree/v1.0.2
139
- changelog_uri: https://github.com/galtzo-floss/stone_checksums/blob/v1.0.2/CHANGELOG.md
267
+ homepage_uri: https://stone-checksums.galtzo.com
268
+ source_code_uri: https://github.com/galtzo-floss/stone_checksums/tree/v1.0.4
269
+ changelog_uri: https://github.com/galtzo-floss/stone_checksums/blob/v1.0.4/CHANGELOG.md
140
270
  bug_tracker_uri: https://github.com/galtzo-floss/stone_checksums/issues
141
- documentation_uri: https://www.rubydoc.info/gems/stone_checksums/1.0.2
271
+ documentation_uri: https://www.rubydoc.info/gems/stone_checksums/1.0.4
142
272
  funding_uri: https://github.com/sponsors/pboling
143
273
  wiki_uri: https://github.com/galtzo-floss/stone_checksums/wiki
144
274
  news_uri: https://www.railsbling.com/tags/stone_checksums
@@ -150,6 +280,8 @@ rdoc_options:
150
280
  libraries"
151
281
  - "--main"
152
282
  - README.md
283
+ - "--exclude"
284
+ - "^sig/"
153
285
  - "--line-numbers"
154
286
  - "--inline-source"
155
287
  - "--quiet"
@@ -166,7 +298,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
166
298
  - !ruby/object:Gem::Version
167
299
  version: '0'
168
300
  requirements: []
169
- rubygems_version: 3.7.1
301
+ rubygems_version: 4.0.10
170
302
  specification_version: 4
171
303
  summary: "\U0001F5FF Generate both SHA256 & SHA512 checksums of RubyGem libraries"
172
304
  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.