kettle-rb 0.1.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.
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 ADDED
@@ -0,0 +1,21 @@
1
+ # Security Policy
2
+
3
+ ## Supported Versions
4
+
5
+ | Version | Supported |
6
+ |----------|-----------|
7
+ | 0.latest | ✅ |
8
+
9
+ ## Security contact information
10
+
11
+ To report a security vulnerability, please use the
12
+ [Tidelift security contact](https://tidelift.com/security).
13
+ Tidelift will coordinate the fix and disclosure.
14
+
15
+ ## Additional Support
16
+
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].
20
+
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-----
@@ -0,0 +1,171 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rubygems"
4
+
5
+ module Kettle
6
+ module Rb
7
+ module CompatMatrix
8
+ Entry = Struct.new(
9
+ :key,
10
+ :ruby,
11
+ :engine,
12
+ :mri,
13
+ :workflow_ruby,
14
+ :rubygems,
15
+ :bundler,
16
+ :rubocop,
17
+ :rubocop_lts,
18
+ :rubocop_lts_requirement,
19
+ :rubocop_ruby_gem,
20
+ :rubocop_ruby_requirement,
21
+ :rubocop_lts_branch,
22
+ :rails,
23
+ :rails_appraisals,
24
+ :notes
25
+ )
26
+
27
+ TRUFFLERUBY_NOTES = ["Do not upgrade RubyGems or Bundler on TruffleRuby."].freeze
28
+ TRUFFLERUBY_PSYCH_NOTES = (TRUFFLERUBY_NOTES + ["psych < 5.3 is needed while Gem.ruby_version is below 3.3."]).freeze
29
+
30
+ MATRIX_ROWS = [
31
+ ["ruby-1.8", "1.8.7-p374", "ruby", nil, nil, nil, nil, nil, "0.3.0", ["~> 0.3", ">= 0.3.0"], "rubocop-ruby1_8", ["~> 2.0", ">= 2.0.2"], "r1_8-even-v0", "4.0.x", nil, nil],
32
+ ["ruby-1.9", "1.9.3-p551", "ruby", nil, nil, "2.7.11", "1.17.3", "0.41.2", "2.3.0", ["~> 2.3", ">= 2.3.0"], "rubocop-ruby1_9", ["~> 3.0", ">= 3.0.2"], "r1_9-even-v2", "4.2.11.3", nil, nil],
33
+ ["jruby-1.7", "jruby-1.7.27", "jruby", "1.9", "1.9", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil],
34
+ ["ruby-2.0", "2.0.0-p648", "ruby", nil, nil, nil, nil, "0.50.0", "4.2.0", ["~> 4.2", ">= 4.2.0"], "rubocop-ruby2_0", ["~> 3.0", ">= 3.0.2"], "r2_0-even-v4", nil, nil, nil],
35
+ ["ruby-2.1", "2.1.10", "ruby", nil, nil, nil, nil, "0.57.2", "6.3.0", ["~> 6.3", ">= 6.3.0"], "rubocop-ruby2_1", ["~> 3.0", ">= 3.0.2"], "r2_1-even-v6", nil, nil, nil],
36
+ ["ruby-2.2", "2.2.10", "ruby", nil, nil, nil, nil, "0.68.1", "8.3.0", ["~> 8.3", ">= 8.3.0"], "rubocop-ruby2_2", ["~> 3.0", ">= 3.0.2"], "r2_2-even-v8", "5.2.8.1", nil, nil],
37
+ ["ruby-2.3", "2.3.8", "ruby", nil, nil, "3.3.27", "2.3.27", "0.81.0", "10.3.0", ["~> 10.3", ">= 10.3.0"], "rubocop-ruby2_3", ["~> 3.0", ">= 3.0.2"], "r2_3-even-v10", nil, nil, nil],
38
+ ["jruby-9.1", "jruby-9.1.17.0", "jruby", "2.3", "2.3", "3.3.27", "2.3.27", nil, nil, nil, nil, nil, nil, nil, nil, nil],
39
+ ["ruby-2.4", "2.4.10", "ruby", nil, nil, nil, nil, "1.12.1", "12.3.0", ["~> 12.3", ">= 12.3.0"], "rubocop-ruby2_4", ["~> 3.0", ">= 3.0.2"], "r2_4-even-v12", nil, ["4.2.11.3", "5.2.8.1"], nil],
40
+ ["ruby-2.5", "2.5.9", "ruby", nil, nil, nil, nil, "1.28.2", "14.3.0", ["~> 14.3", ">= 14.3.0"], "rubocop-ruby2_5", ["~> 3.0", ">= 3.0.2"], "r2_5-even-v14", "6.0.6.1", nil, nil],
41
+ ["jruby-9.2", "jruby-9.2.21.0", "jruby", "2.5", "2.5", "3.3.27", "2.3.27", nil, nil, nil, nil, nil, nil, nil, nil, nil],
42
+ ["ruby-2.6", "2.6.10", "ruby", nil, nil, "3.4.22", "2.4.22", "1.50.2", "16.3.0", ["~> 16.3", ">= 16.3.0"], "rubocop-ruby2_6", ["~> 3.0", ">= 3.0.2"], "r2_6-even-v16", "6.1.7.10", nil, nil],
43
+ ["jruby-9.3", "jruby-9.3.15.0", "jruby", "2.6", "2.6", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ["JRuby 9.3 can require jar-dependencies ~> 0.4.1 when psych activates a newer default gem stack."]],
44
+ ["ruby-2.7", "2.7.8", "ruby", nil, nil, nil, nil, "1.80.x", "18.4.0", ["~> 18.4", ">= 18.4.0"], "rubocop-ruby2_7", ["~> 3.0", ">= 3.0.2"], "r2_7-even-v18", "7.2.2.2", nil, nil],
45
+ ["ruby-3.0", "3.0.7", "ruby", nil, nil, "3.5.23", "2.5.23", nil, "20.4.0", ["~> 20.4", ">= 20.4.0"], "rubocop-ruby3_0", ["~> 3.0", ">= 3.0.2"], "r3_0-even-v20", nil, nil, nil],
46
+ ["truffleruby-22.3", "truffleruby-22.3.1", "truffleruby", "3.0", "3.0", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, TRUFFLERUBY_NOTES],
47
+ ["ruby-3.1", "3.1.7", "ruby", nil, nil, "3.6.9", "2.6.9", nil, "22.3.0", ["~> 22.3", ">= 22.3.0"], "rubocop-ruby3_1", ["~> 3.0", ">= 3.0.2"], "r3_1-even-v22", nil, nil, nil],
48
+ ["truffleruby-23.0", "truffleruby-23.0.0", "truffleruby", "3.1", "3.0", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, TRUFFLERUBY_PSYCH_NOTES],
49
+ ["jruby-9.4", "jruby-9.4.15.0", "jruby", "3.1", "3.1", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil],
50
+ ["ruby-3.2", "3.2.9", "ruby", nil, nil, "3.7.x", "2.7.x", nil, "24.2.0", ["~> 24.2", ">= 24.2.0"], "rubocop-ruby3_2", ["~> 3.0", ">= 3.0.6"], "r3_2-even-v24", "8.0.x", nil, nil],
51
+ ["truffleruby-23.1", "truffleruby-23.1.2", "truffleruby", "3.2", "3.1", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, TRUFFLERUBY_PSYCH_NOTES + ["Use the Ruby 3.1/Rails 7.2 appraisal in CI; Rails 8 failed on this engine."]],
52
+ ["ruby-3.3", "3.3.9", "ruby", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil],
53
+ ["truffleruby-24.2", "truffleruby-24.2.2", "truffleruby", "3.3", "3.3", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, TRUFFLERUBY_NOTES],
54
+ ["truffleruby-25.0", "truffleruby-25.0.0", "truffleruby", "3.3", "3.3", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, TRUFFLERUBY_NOTES],
55
+ ["truffleruby-33.0", "truffleruby-33.0.1", "truffleruby", "3.3", "3.3", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, TRUFFLERUBY_NOTES],
56
+ ["ruby-3.4", "3.4.7", "ruby", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil],
57
+ ["jruby-10.1", "jruby-10.1.0.0", "jruby", "3.4", "3.4", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil],
58
+ ["truffleruby-34.0", "truffleruby-34.0.1", "truffleruby", "3.4", "3.4", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, TRUFFLERUBY_NOTES]
59
+ ].freeze
60
+
61
+ MATRIX = begin
62
+ matrix = {}
63
+ MATRIX_ROWS.each do |row|
64
+ entry = Entry.new(*row)
65
+ entry.rails_appraisals.freeze if entry.rails_appraisals
66
+ entry.notes.freeze if entry.notes
67
+ entry.freeze
68
+ matrix[entry.key] = entry
69
+ end
70
+ matrix.freeze
71
+ end
72
+
73
+ WORKFLOW_ENGINE_BY_NAME = begin
74
+ map = {
75
+ "jruby" => "jruby",
76
+ "truffle" => "truffleruby"
77
+ }
78
+ MATRIX.each do |name, entry|
79
+ map[name] = entry.engine unless entry.engine == "ruby"
80
+ end
81
+ map.freeze
82
+ end
83
+
84
+ WORKFLOW_RUBY_FLOOR_BY_NAME = begin
85
+ map = {}
86
+ MATRIX.each do |name, entry|
87
+ map[name] = entry.workflow_ruby if entry.workflow_ruby
88
+ end
89
+ map.freeze
90
+ end
91
+
92
+ RUBOCOP_ENTRIES = MATRIX.values.select { |entry| entry.rubocop_ruby_gem }.freeze
93
+
94
+ class << self
95
+ def entry(key)
96
+ MATRIX[key.to_s]
97
+ end
98
+
99
+ def entries
100
+ MATRIX
101
+ end
102
+
103
+ def engine_workflow(engine_name)
104
+ WORKFLOW_ENGINE_BY_NAME[engine_name.to_s]
105
+ end
106
+
107
+ def workflow_ruby_floor(engine_name)
108
+ WORKFLOW_RUBY_FLOOR_BY_NAME[engine_name.to_s]
109
+ end
110
+
111
+ def rubocop_entry_for_minimum_ruby(minimum_ruby)
112
+ version = gem_version(minimum_ruby)
113
+ return RUBOCOP_ENTRIES.first unless version
114
+
115
+ selected = nil
116
+ RUBOCOP_ENTRIES.each do |entry|
117
+ entry_version = entry_minimum_ruby_version(entry)
118
+ selected = entry if entry_version && version >= entry_version
119
+ end
120
+ selected || RUBOCOP_ENTRIES.first
121
+ end
122
+
123
+ def rubocop_template_tokens(minimum_ruby)
124
+ entry = rubocop_entry_for_minimum_ruby(minimum_ruby)
125
+ [
126
+ requirement_source(entry.rubocop_lts_requirement),
127
+ entry.rubocop_ruby_gem,
128
+ requirement_source(entry.rubocop_ruby_requirement)
129
+ ]
130
+ end
131
+
132
+ def rubocop_lts_branch_for_gem(gem_name)
133
+ entry = RUBOCOP_ENTRIES.find { |candidate| candidate.rubocop_ruby_gem == gem_name.to_s }
134
+ entry && entry.rubocop_lts_branch
135
+ end
136
+
137
+ def rubocop_ruby_gem?(gem_name)
138
+ !!rubocop_lts_branch_for_gem(gem_name)
139
+ end
140
+
141
+ def rubocop_lts_branch_by_gem
142
+ result = {}
143
+ RUBOCOP_ENTRIES.each do |entry|
144
+ result[entry.rubocop_ruby_gem] = entry.rubocop_lts_branch
145
+ end
146
+ result.freeze
147
+ end
148
+
149
+ def requirement_source(requirements)
150
+ Array(requirements).map { |requirement| requirement.inspect }.join(", ")
151
+ end
152
+
153
+ private
154
+
155
+ def entry_minimum_ruby_version(entry)
156
+ match = entry.key.to_s.match(/\Aruby-(\d+\.\d+)\z/)
157
+ match && Gem::Version.new(match[1])
158
+ end
159
+
160
+ def gem_version(value)
161
+ return value if value.is_a?(Gem::Version)
162
+ return nil if value.nil? || value.to_s.empty?
163
+
164
+ Gem::Version.new(value.to_s)
165
+ rescue ArgumentError
166
+ nil
167
+ end
168
+ end
169
+ end
170
+ end
171
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kettle
4
+ module Rb
5
+ module Version
6
+ VERSION = "0.1.0"
7
+ end
8
+ VERSION = Version::VERSION # Traditional Constant Location
9
+ end
10
+ end
data/lib/kettle/rb.rb ADDED
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "rb/version"
4
+ require_relative "rb/compat_matrix"
5
+
6
+ module Kettle
7
+ module Rb
8
+ class Error < StandardError; end
9
+ # Your code goes here...
10
+ end
11
+ end
@@ -0,0 +1,8 @@
1
+ module Kettle
2
+ module Rb
3
+ module Version
4
+ VERSION: String
5
+ end
6
+ VERSION: String
7
+ end
8
+ end
data/sig/kettle/rb.rbs ADDED
@@ -0,0 +1,6 @@
1
+ module Kettle
2
+ module Rb
3
+ VERSION: String
4
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
5
+ end
6
+ end
data.tar.gz.sig ADDED
@@ -0,0 +1,2 @@
1
+ .���,��4��Fi��i<�R��
2
+ L���íU/8ģ:X7�pa��ֆ��xM1�.$�>�[逅�x�TI������Z�\+G�uYÄ�Ѵ KO�� e�s膼;3���f6T�ƛ�$.��62)Y�|}zc۪˙�c�XW��E��AS5�"k��ւ�O�V�7����[��9��.��S���3���\�RZS�%O�c��l�{�?�UҊ��4� A�V���"p�xp�QïnU[�:��U@k!�:�yC{�h����<UƇSe2�Z@��&�]�ܨ�~��58��4�4���I�������IUTg�2�$J!���>��݈>�Ҭ���� T��Hg,�mq���z�%-SE�~��������cm��ժ$��/
metadata ADDED
@@ -0,0 +1,293 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: kettle-rb
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Peter H. Boling
8
+ bindir: exe
9
+ cert_chain:
10
+ - |
11
+ -----BEGIN CERTIFICATE-----
12
+ MIIEgDCCAuigAwIBAgIBATANBgkqhkiG9w0BAQsFADBDMRUwEwYDVQQDDAxwZXRl
13
+ ci5ib2xpbmcxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkW
14
+ A2NvbTAeFw0yNTA1MDQxNTMzMDlaFw00NTA0MjkxNTMzMDlaMEMxFTATBgNVBAMM
15
+ DHBldGVyLmJvbGluZzEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPy
16
+ LGQBGRYDY29tMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAruUoo0WA
17
+ uoNuq6puKWYeRYiZekz/nsDeK5x/0IEirzcCEvaHr3Bmz7rjo1I6On3gGKmiZs61
18
+ LRmQ3oxy77ydmkGTXBjruJB+pQEn7UfLSgQ0xa1/X3kdBZt6RmabFlBxnHkoaGY5
19
+ mZuZ5+Z7walmv6sFD9ajhzj+oIgwWfnEHkXYTR8I6VLN7MRRKGMPoZ/yvOmxb2DN
20
+ coEEHWKO9CvgYpW7asIihl/9GMpKiRkcYPm9dGQzZc6uTwom1COfW0+ZOFrDVBuV
21
+ FMQRPswZcY4Wlq0uEBLPU7hxnCL9nKK6Y9IhdDcz1mY6HZ91WImNslOSI0S8hRpj
22
+ yGOWxQIhBT3fqCBlRIqFQBudrnD9jSNpSGsFvbEijd5ns7Z9ZMehXkXDycpGAUj1
23
+ to/5cuTWWw1JqUWrKJYoifnVhtE1o1DZ+LkPtWxHtz5kjDG/zR3MG0Ula0UOavlD
24
+ qbnbcXPBnwXtTFeZ3C+yrWpE4pGnl3yGkZj9SMTlo9qnTMiPmuWKQDatAgMBAAGj
25
+ fzB9MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBQE8uWvNbPVNRXZ
26
+ HlgPbc2PCzC4bjAhBgNVHREEGjAYgRZwZXRlci5ib2xpbmdAZ21haWwuY29tMCEG
27
+ A1UdEgQaMBiBFnBldGVyLmJvbGluZ0BnbWFpbC5jb20wDQYJKoZIhvcNAQELBQAD
28
+ ggGBAJbnUwfJQFPkBgH9cL7hoBfRtmWiCvdqdjeTmi04u8zVNCUox0A4gT982DE9
29
+ wmuN12LpdajxZONqbXuzZvc+nb0StFwmFYZG6iDwaf4BPywm2e/Vmq0YG45vZXGR
30
+ L8yMDSK1cQXjmA+ZBKOHKWavxP6Vp7lWvjAhz8RFwqF9GuNIdhv9NpnCAWcMZtpm
31
+ GUPyIWw/Cw/2wZp74QzZj6Npx+LdXoLTF1HMSJXZ7/pkxLCsB8m4EFVdb/IrW/0k
32
+ kNSfjtAfBHO8nLGuqQZVH9IBD1i9K6aSs7pT6TW8itXUIlkIUI2tg5YzW6OFfPzq
33
+ QekSkX3lZfY+HTSp/o+YvKkqWLUV7PQ7xh1ZYDtocpaHwgxe/j3bBqHE+CUPH2vA
34
+ 0V/FwdTRWcwsjVoOJTrYcff8pBZ8r2MvtAc54xfnnhGFzeRHfcltobgFxkAXdE6p
35
+ DVjBtqT23eugOqQ73umLcYDZkc36vnqGxUBSsXrzY9pzV5gGr2I8YUxMqf6ATrZt
36
+ L9nRqA==
37
+ -----END CERTIFICATE-----
38
+ date: 1980-01-02 00:00:00.000000000 Z
39
+ dependencies:
40
+ - !ruby/object:Gem::Dependency
41
+ name: kettle-dev
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '2.2'
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 2.2.19
50
+ type: :development
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: '2.2'
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: 2.2.19
60
+ - !ruby/object:Gem::Dependency
61
+ name: bundler-audit
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "~>"
65
+ - !ruby/object:Gem::Version
66
+ version: 0.9.3
67
+ type: :development
68
+ prerelease: false
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: 0.9.3
74
+ - !ruby/object:Gem::Dependency
75
+ name: rake
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '13.0'
81
+ type: :development
82
+ prerelease: false
83
+ version_requirements: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: '13.0'
88
+ - !ruby/object:Gem::Dependency
89
+ name: require_bench
90
+ requirement: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - "~>"
93
+ - !ruby/object:Gem::Version
94
+ version: '1.0'
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: 1.0.4
98
+ type: :development
99
+ prerelease: false
100
+ version_requirements: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - "~>"
103
+ - !ruby/object:Gem::Version
104
+ version: '1.0'
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ version: 1.0.4
108
+ - !ruby/object:Gem::Dependency
109
+ name: appraisal2
110
+ requirement: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - "~>"
113
+ - !ruby/object:Gem::Version
114
+ version: '3.1'
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: 3.1.3
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '3.1'
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ version: 3.1.3
128
+ - !ruby/object:Gem::Dependency
129
+ name: kettle-test
130
+ requirement: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - "~>"
133
+ - !ruby/object:Gem::Version
134
+ version: '2.0'
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: 2.0.8
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '2.0'
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: 2.0.8
148
+ - !ruby/object:Gem::Dependency
149
+ name: turbo_tests2
150
+ requirement: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - "~>"
153
+ - !ruby/object:Gem::Version
154
+ version: '3.1'
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ version: 3.1.5
158
+ type: :development
159
+ prerelease: false
160
+ version_requirements: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - "~>"
163
+ - !ruby/object:Gem::Version
164
+ version: '3.1'
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: 3.1.5
168
+ - !ruby/object:Gem::Dependency
169
+ name: ruby-progressbar
170
+ requirement: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - "~>"
173
+ - !ruby/object:Gem::Version
174
+ version: '1.13'
175
+ type: :development
176
+ prerelease: false
177
+ version_requirements: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - "~>"
180
+ - !ruby/object:Gem::Version
181
+ version: '1.13'
182
+ - !ruby/object:Gem::Dependency
183
+ name: stone_checksums
184
+ requirement: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - "~>"
187
+ - !ruby/object:Gem::Version
188
+ version: '1.0'
189
+ - - ">="
190
+ - !ruby/object:Gem::Version
191
+ version: 1.0.3
192
+ type: :development
193
+ prerelease: false
194
+ version_requirements: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - "~>"
197
+ - !ruby/object:Gem::Version
198
+ version: '1.0'
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: 1.0.3
202
+ - !ruby/object:Gem::Dependency
203
+ name: gitmoji-regex
204
+ requirement: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: '2.0'
209
+ - - ">="
210
+ - !ruby/object:Gem::Version
211
+ version: 2.0.3
212
+ type: :development
213
+ prerelease: false
214
+ version_requirements: !ruby/object:Gem::Requirement
215
+ requirements:
216
+ - - "~>"
217
+ - !ruby/object:Gem::Version
218
+ version: '2.0'
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ version: 2.0.3
222
+ description: "\U0001F4CF TODO: Write a longer description or delete this line."
223
+ email:
224
+ - floss@galtzo.com
225
+ executables: []
226
+ extensions: []
227
+ extra_rdoc_files:
228
+ - CHANGELOG.md
229
+ - CITATION.cff
230
+ - CODE_OF_CONDUCT.md
231
+ - CONTRIBUTING.md
232
+ - FUNDING.md
233
+ - LICENSE.md
234
+ - README.md
235
+ - RUBOCOP.md
236
+ - SECURITY.md
237
+ files:
238
+ - CHANGELOG.md
239
+ - CITATION.cff
240
+ - CODE_OF_CONDUCT.md
241
+ - CONTRIBUTING.md
242
+ - FUNDING.md
243
+ - LICENSE.md
244
+ - README.md
245
+ - RUBOCOP.md
246
+ - SECURITY.md
247
+ - certs/pboling.pem
248
+ - lib/kettle/rb.rb
249
+ - lib/kettle/rb/compat_matrix.rb
250
+ - lib/kettle/rb/version.rb
251
+ - sig/kettle/rb.rbs
252
+ - sig/kettle/rb/version.rbs
253
+ homepage: https://github.com/kettle-dev/kettle-rb
254
+ licenses:
255
+ - MIT
256
+ metadata:
257
+ homepage_uri: https://kettle-rb.galtzo.com
258
+ source_code_uri: https://github.com/kettle-dev/kettle-rb/tree/v0.1.0
259
+ changelog_uri: https://github.com/kettle-dev/kettle-rb/blob/v0.1.0/CHANGELOG.md
260
+ bug_tracker_uri: https://github.com/kettle-dev/kettle-rb/issues
261
+ documentation_uri: https://www.rubydoc.info/gems/kettle-rb/0.1.0
262
+ funding_uri: https://github.com/sponsors/pboling
263
+ wiki_uri: https://github.com/kettle-dev/kettle-rb/wiki
264
+ news_uri: https://www.railsbling.com/tags/kettle-rb
265
+ discord_uri: https://discord.gg/3qme4XHNKN
266
+ rubygems_mfa_required: 'true'
267
+ rdoc_options:
268
+ - "--title"
269
+ - "kettle-rb - \U0001F4CF TODO: Write a short summary, because RubyGems requires one."
270
+ - "--main"
271
+ - README.md
272
+ - "--exclude"
273
+ - "^sig/"
274
+ - "--line-numbers"
275
+ - "--inline-source"
276
+ - "--quiet"
277
+ require_paths:
278
+ - lib
279
+ required_ruby_version: !ruby/object:Gem::Requirement
280
+ requirements:
281
+ - - ">="
282
+ - !ruby/object:Gem::Version
283
+ version: 1.8.7
284
+ required_rubygems_version: !ruby/object:Gem::Requirement
285
+ requirements:
286
+ - - ">="
287
+ - !ruby/object:Gem::Version
288
+ version: '0'
289
+ requirements: []
290
+ rubygems_version: 4.0.10
291
+ specification_version: 4
292
+ summary: "\U0001F4CF TODO: Write a short summary, because RubyGems requires one."
293
+ test_files: []
metadata.gz.sig ADDED
Binary file