kettle-test 1.0.6 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 91938ee551783588896733defc9f8da49ff489d75780b497a41b8eb7fa91f971
4
- data.tar.gz: 2093eb8e091fdbc4868322db79c2a39fc27e0de8d0cfea2488407cd843f6b40f
3
+ metadata.gz: 8873d02c97ae25125b1bd5e28afb7d39569147ecf825a7ee9b1a3bf683625f00
4
+ data.tar.gz: ffa4fb9d179b2c50aaee2916fb1d62f38d1b8f8223b2860b8f70fc6558cf19ed
5
5
  SHA512:
6
- metadata.gz: 32596efe80d4cb8fa00c249cbc839b8fe37c58cd56d5580a7a53c281d783f745a0f8720ca5ef52abeb76660b11ec4a4afec19589741bb5e45cfd9020c2e55dec
7
- data.tar.gz: e69b5182a17733ea0b5d363868d6e49802d654ec1aff0c460db90d9a88200c1a087e290ca5565379d0e8b99ea7eb5d8fc13f338e8fa8f6aa038f37fbab224ba3
6
+ metadata.gz: 047db72c8c38f6ff2452a02ac8e3faeebdc38a582ea052ade396114df0d367ccdc83307dc11e083347813a7b87d7febdfda210d454f549ccd8968f353a5cea77
7
+ data.tar.gz: dacda95d681dc7cf866dd14d3fb13abdaff14d72771bbada906654e9231f7ce6df2db0c352537443053f29b2fe0a52c27b0167760153dae50faa8c25e5aebc99
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,36 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [1.0.8] - 2026-02-06
34
+
35
+ - TAG: [v1.0.8][1.0.8t]
36
+ - COVERAGE: 100.00% -- 86/86 lines in 15 files
37
+ - BRANCH COVERAGE: 100.00% -- 2/2 branches in 15 files
38
+ - 100.00% documented
39
+
40
+ ### Added
41
+
42
+ - rspec/pending_for made available by default
43
+ - `skip_for` and `pending_for` are now available by default, without needing to explicitly require 'rspec/pending_for'
44
+
45
+ ### Changed
46
+
47
+ - Updated documentation on hostile takeover of RubyGems
48
+ - https://dev.to/galtzo/hostile-takeover-of-rubygems-my-thoughts-5hlo
49
+
50
+ ## [1.0.7] - 2025-12-06
51
+
52
+ - TAG: [v1.0.7][1.0.7t]
53
+ - COVERAGE: 100.00% -- 84/84 lines in 15 files
54
+ - BRANCH COVERAGE: 100.00% -- 2/2 branches in 15 files
55
+ - 100.00% documented
56
+
57
+ ### Added
58
+
59
+ - traditional `Kettle::Test::VERSION` constant
60
+ - make `hide_env` (from rspec-stubbed_env) available by default
61
+ - increased documentation to 100%, and added many documentation improvements
62
+
33
63
  ## [1.0.6] - 2025-10-21
34
64
 
35
65
  - TAG: [v1.0.6][1.0.6t]
@@ -144,7 +174,11 @@ Please file a bug if you notice a violation of semantic versioning.
144
174
  - silent_stream
145
175
  - timecop-rspec
146
176
 
147
- [Unreleased]: https://github.com/kettle-rb/kettle-test/compare/v1.0.6...HEAD
177
+ [Unreleased]: https://github.com/kettle-rb/kettle-test/compare/v1.0.8...HEAD
178
+ [1.0.8]: https://github.com/kettle-rb/kettle-test/compare/v1.0.7...v1.0.8
179
+ [1.0.8t]: https://github.com/kettle-rb/kettle-test/releases/tag/v1.0.8
180
+ [1.0.7]: https://github.com/kettle-rb/kettle-test/compare/v1.0.6...v1.0.7
181
+ [1.0.7t]: https://github.com/kettle-rb/kettle-test/releases/tag/v1.0.7
148
182
  [1.0.6]: https://github.com/kettle-rb/kettle-test/compare/v1.0.5...v1.0.6
149
183
  [1.0.6t]: https://github.com/kettle-rb/kettle-test/releases/tag/v1.0.6
150
184
  [1.0.5]: https://github.com/kettle-rb/kettle-test/compare/v1.0.4...v1.0.5
data/CONTRIBUTING.md CHANGED
@@ -24,31 +24,22 @@ Follow these instructions:
24
24
 
25
25
  ## Executables vs Rake tasks
26
26
 
27
- Executables shipped by kettle-test can be used with or without generating the binstubs.
28
- They will work when kettle-test is installed globally (i.e., `gem install kettle-test`) and do not require that kettle-test be in your bundle.
27
+ Executables shipped by dependencies, such as kettle-dev, and stone_checksums, are available
28
+ after running `bin/setup`. These include:
29
29
 
30
+ - gem_checksums
30
31
  - kettle-changelog
31
32
  - kettle-commit-msg
32
- - kettle-test-setup
33
+ - kettle-dev-setup
33
34
  - kettle-dvcs
34
35
  - kettle-pre-release
35
36
  - kettle-readme-backers
36
37
  - kettle-release
37
38
 
38
- However, the rake tasks provided by kettle-test do require kettle-test to be added as a development dependency and loaded in your Rakefile.
39
- See the full list of rake tasks in head of Rakefile
39
+ There are many Rake tasks available as well. You can see them by running:
40
40
 
41
- **Gemfile**
42
- ```ruby
43
- group :development do
44
- gem "kettle-test", require: false
45
- end
46
- ```
47
-
48
- **Rakefile**
49
- ```ruby
50
- # Rakefile
51
- require "kettle/test"
41
+ ```shell
42
+ bin/rake -T
52
43
  ```
53
44
 
54
45
  ## Environment Variables for Local Development
@@ -77,7 +68,9 @@ GitHub API and CI helpers
77
68
  Releasing and signing
78
69
  - SKIP_GEM_SIGNING: If set, skip gem signing during build/release
79
70
  - GEM_CERT_USER: Username for selecting your public cert in `certs/<USER>.pem` (defaults to $USER)
80
- - SOURCE_DATE_EPOCH: Reproducible build timestamp. `kettle-release` will set this automatically for the session.
71
+ - SOURCE_DATE_EPOCH: Reproducible build timestamp.
72
+ - `kettle-release` will set this automatically for the session.
73
+ - Not needed on bundler >= 2.7.0, as reproducible builds have become the default.
81
74
 
82
75
  Git hooks and commit message helpers (exe/kettle-commit-msg)
83
76
  - GIT_HOOK_BRANCH_VALIDATE: Branch name validation mode (e.g., `jira`) or `false` to disable
@@ -96,6 +89,12 @@ They are created and updated with the commands:
96
89
  bin/rake appraisal:update
97
90
  ```
98
91
 
92
+ If you need to reset all gemfiles/*.gemfile.lock files:
93
+
94
+ ```console
95
+ bin/rake appraisal:reset
96
+ ```
97
+
99
98
  When adding an appraisal to CI, check the [runner tool cache][🏃‍♂️runner-tool-cache] to see which runner to use.
100
99
 
101
100
  ## The Reek List
@@ -118,10 +117,8 @@ bundle exec rake test
118
117
 
119
118
  ### Spec organization (required)
120
119
 
121
- - One spec file per class/module. For each class or module under `lib/`, keep all of its unit tests in a single spec file under `spec/` that mirrors the path and file name exactly: `lib/kettle/test/release_cli.rb` -> `spec/kettle/test/release_cli_spec.rb`.
122
- - Never add a second spec file for the same class/module. Examples of disallowed names: `*_more_spec.rb`, `*_extra_spec.rb`, `*_status_spec.rb`, or any other suffix that still targets the same class. If you find yourself wanting a second file, merge those examples into the canonical spec file for that class/module.
120
+ - One spec file per class/module. For each class or module under `lib/`, keep all of its unit tests in a single spec file under `spec/` that mirrors the path and file name exactly: `lib/kettle/test/my_class.rb` -> `spec/kettle/test/my_class_spec.rb`.
123
121
  - Exception: Integration specs that intentionally span multiple classes. Place these under `spec/integration/` (or a clearly named integration folder), and do not directly mirror a single class. Name them after the scenario, not a class.
124
- - Migration note: If a duplicate spec file exists, move all examples into the canonical file and delete the duplicate. Do not leave stubs or empty files behind.
125
122
 
126
123
  ## Lint It
127
124
 
@@ -144,7 +141,7 @@ For more detailed information about using RuboCop in this project, please see th
144
141
  Never add `# rubocop:disable ...` / `# rubocop:enable ...` comments to code or specs (except when following the few existing `rubocop:disable` patterns for a rule already being disabled elsewhere in the code). Instead:
145
142
 
146
143
  - Prefer configuration-based exclusions when a rule should not apply to certain paths or files (e.g., via `.rubocop.yml`).
147
- - When a violation is temporary and you plan to fix it later, record it in `.rubocop_gradual.lock` using the gradual workflow:
144
+ - When a violation is temporary, and you plan to fix it later, record it in `.rubocop_gradual.lock` using the gradual workflow:
148
145
  - `bundle exec rake rubocop_gradual:autocorrect` (preferred)
149
146
  - `bundle exec rake rubocop_gradual:force_update` (only when you cannot fix the violations immediately)
150
147
 
@@ -176,9 +173,10 @@ NOTE: To build without signing the gem set `SKIP_GEM_SIGNING` to any value in th
176
173
 
177
174
  #### Automated process
178
175
 
179
- 1. Update version.rb to contian the correct version-to-be-released.
176
+ 1. Update version.rb to contain the correct version-to-be-released.
180
177
  2. Run `bundle exec kettle-changelog`.
181
178
  3. Run `bundle exec kettle-release`.
179
+ 4. Stay awake and monitor the release process for any errors, and answer any prompts.
182
180
 
183
181
  #### Manual process
184
182
 
data/FUNDING.md CHANGED
@@ -6,7 +6,7 @@ Many paths lead to being a sponsor or a backer of this project. Are you on such
6
6
 
7
7
  [![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal]
8
8
 
9
- [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate to my FLOSS or refugee efforts at ko-fi.com][🖇kofi-img]][🖇kofi] [![Donate to my FLOSS or refugee efforts using Patreon][🖇patreon-img]][🖇patreon]
9
+ [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi] [![Donate to my FLOSS efforts using Patreon][🖇patreon-img]][🖇patreon]
10
10
 
11
11
  [⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611&style=flat
12
12
  [⛳liberapay]: https://liberapay.com/pboling/donate
@@ -31,11 +31,11 @@ Many paths lead to being a sponsor or a backer of this project. Are you on such
31
31
 
32
32
  <!-- RELEASE-NOTES-FOOTER-END -->
33
33
 
34
- # 🤑 Request for Help
34
+ # 🤑 A request for help
35
35
 
36
36
  Maintainers have teeth and need to pay their dentists.
37
- After getting laid off in an RIF in March and filled with many dozens of rejections,
38
- I'm now spending ~60+ hours a week building open source tools.
37
+ After getting laid off in an RIF in March, and encountering difficulty finding a new one,
38
+ I began spending most of my time building open source tools.
39
39
  I'm hoping to be able to pay for my kids' health insurance this month,
40
40
  so if you value the work I am doing, I need your support.
41
41
  Please consider sponsoring me or the project.
@@ -44,16 +44,13 @@ To join the community or get help 👇️ Join the Discord.
44
44
 
45
45
  [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite]
46
46
 
47
- To say "thanks for maintaining such a great tool" ☝️ Join the Discord or 👇️ send money.
47
+ To say "thanks!" ☝️ Join the Discord or 👇️ send money.
48
48
 
49
- [![Sponsor kettle-rb/kettle-test on Open Source Collective][🖇osc-all-bottom-img]][🖇osc] 💌 [![Sponsor me on GitHub Sponsors][🖇sponsor-bottom-img]][🖇sponsor] 💌 [![Sponsor me on Liberapay][⛳liberapay-bottom-img]][⛳liberapay-img] 💌 [![Donate on PayPal][🖇paypal-bottom-img]][🖇paypal-img]
49
+ [![Sponsor kettle-rb/kettle-test on Open Source Collective][🖇osc-all-bottom-img]][🖇osc] 💌 [![Sponsor me on GitHub Sponsors][🖇sponsor-bottom-img]][🖇sponsor] 💌 [![Sponsor me on Liberapay][⛳liberapay-bottom-img]][⛳liberapay] 💌 [![Donate on PayPal][🖇paypal-bottom-img]][🖇paypal]
50
50
 
51
51
  # Another Way to Support Open Source Software
52
52
 
53
- > How wonderful it is that nobody need wait a single moment before starting to improve the world.<br/>
54
- >—Anne Frank
55
-
56
- I’m driven by a passion to foster a thriving open-source community – a space where people can tackle complex problems, no matter how small. Revitalizing libraries that have fallen into disrepair, and building new libraries focused on solving real-world challenges, are my passions — totaling 79 hours of FLOSS coding over just the past seven days, a pretty regular week for me. I was recently affected by layoffs, and the tech jobs market is unwelcoming. I’m reaching out here because your support would significantly aid my efforts to provide for my family, and my farm (11 🐔 chickens, 2 🐶 dogs, 3 🐰 rabbits, 8 🐈‍ cats).
53
+ I’m driven by a passion to foster a thriving open-source community – a space where people can tackle complex problems, no matter how small. Revitalizing libraries that have fallen into disrepair, and building new libraries focused on solving real-world challenges, are my passions. I was recently affected by layoffs, and the tech jobs market is unwelcoming. I’m reaching out here because your support would significantly aid my efforts to provide for my family, and my farm (11 🐔 chickens, 2 🐶 dogs, 3 🐰 rabbits, 8 🐈‍ cats).
57
54
 
58
55
  If you work at a company that uses my work, please encourage them to support me as a corporate sponsor. My work on gems you use might show up in `bundle fund`.
59
56
 
data/README.md CHANGED
@@ -1,32 +1,3 @@
1
- | 📍 NOTE |
2
- |-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
3
- | RubyGems (the [GitHub org][rubygems-org], not the website) [suffered][draper-security] a [hostile takeover][ellen-takeover] in September 2025. |
4
- | Ultimately [4 maintainers][simi-removed] were [hard removed][martin-removed] and a reason has been given for only 1 of those, while 2 others resigned in protest. |
5
- | It is a [complicated story][draper-takeover] which is difficult to [parse quickly][draper-lies]. |
6
- | I'm adding notes like this to gems because I [don't condone theft][draper-theft] of repositories or gems from their rightful owners. |
7
- | If a similar theft happened with my repos/gems, I'd hope some would stand up for me. |
8
- | Disenfranchised former-maintainers have started [gem.coop][gem-coop]. |
9
- | Once available I will publish there exclusively; unless RubyCentral makes amends with the community. |
10
- | The ["Technology for Humans: Joel Draper"][reinteractive-podcast] podcast episode by [reinteractive][reinteractive] is the most cogent summary I'm aware of. |
11
- | See [here][gem-naming], [here][gem-coop] and [here][martin-ann] for more info on what comes next. |
12
- | What I'm doing: A (WIP) proposal for [bundler/gem scopes][gem-scopes], and a (WIP) proposal for a federated [gem server][gem-server]. |
13
-
14
- [rubygems-org]: https://github.com/rubygems/
15
- [draper-security]: https://joel.drapper.me/p/ruby-central-security-measures/
16
- [draper-takeover]: https://joel.drapper.me/p/ruby-central-takeover/
17
- [ellen-takeover]: https://pup-e.com/blog/goodbye-rubygems/
18
- [simi-removed]: https://www.reddit.com/r/ruby/s/gOk42POCaV
19
- [martin-removed]: https://bsky.app/profile/martinemde.com/post/3m3occezxxs2q
20
- [draper-lies]: https://joel.drapper.me/p/ruby-central-fact-check/
21
- [draper-theft]: https://joel.drapper.me/p/ruby-central/
22
- [reinteractive]: https://reinteractive.com/ruby-on-rails
23
- [gem-coop]: https://gem.coop
24
- [gem-naming]: https://github.com/gem-coop/gem.coop/issues/12
25
- [martin-ann]: https://martinemde.com/2025/10/05/announcing-gem-coop.html
26
- [gem-scopes]: https://github.com/galtzo-floss/bundle-namespace
27
- [gem-server]: https://github.com/galtzo-floss/gem-server
28
- [reinteractive-podcast]: https://youtu.be/_H4qbtC5qzU?si=BvuBU90R2wAqD2E6
29
-
30
1
  [![Galtzo FLOSS Logo by Aboling0, CC BY-SA 4.0][🖼️galtzo-i]][🖼️galtzo-discord] [![ruby-lang Logo, Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5][🖼️ruby-lang-i]][🖼️ruby-lang] [![kettle-test Logo by Aboling0, CC BY-SA 4.0][🖼️kettle-test-i]][🖼️kettle-test]
31
2
 
32
3
  [🖼️galtzo-i]: https://logos.galtzo.com/assets/images/galtzo-floss/avatar-192px.svg
@@ -48,6 +19,13 @@
48
19
 
49
20
  [![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate at ko-fi.com][🖇kofi-img]][🖇kofi]
50
21
 
22
+ <details>
23
+ <summary>👣 How will this project approach the September 2025 hostile takeover of RubyGems? 🚑️</summary>
24
+
25
+ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-takeover-of-rubygems-my-thoughts-5hlo).
26
+
27
+ </details>
28
+
51
29
  ## 🌻 Synopsis
52
30
 
53
31
  Add to your `spec/spec_helper.rb`:
@@ -106,7 +84,7 @@ Compatible with MRI Ruby 2.3.0+, and concordant releases of JRuby, and TruffleRu
106
84
 
107
85
  ### Federated DVCS
108
86
 
109
- <details>
87
+ <details markdown="1">
110
88
  <summary>Find this repo on federated forges (Coming soon!)</summary>
111
89
 
112
90
  | Federated [DVCS][💎d-in-dvcs] Repository | Status | Issues | PRs | Wiki | CI | Discussions |
@@ -120,11 +98,11 @@ Compatible with MRI Ruby 2.3.0+, and concordant releases of JRuby, and TruffleRu
120
98
 
121
99
  [gh-discussions]: https://github.com/kettle-rb/kettle-test/discussions
122
100
 
123
- ### Enterprise Support [![Tidelift](https://tidelift.com/badges/package/rubygems/kettle-test)](https://tidelift.com/subscription/pkg/rubygems-kettle-test?utm_source=rubygems-kettle-test&utm_medium=referral&utm_campaign=readme)
101
+ ### Enterprise Support [![Tidelift](https://tidelift.com/badges/package/rubygems/kettle-test)][🏙️entsup-tidelift]
124
102
 
125
103
  Available as part of the Tidelift Subscription.
126
104
 
127
- <details>
105
+ <details markdown="1">
128
106
  <summary>Need enterprise-level guarantees?</summary>
129
107
 
130
108
  The maintainers of this 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.
@@ -159,7 +137,7 @@ gem install kettle-test
159
137
 
160
138
  ### 🔒 Secure Installation
161
139
 
162
- <details>
140
+ <details markdown="1">
163
141
  <summary>For Medium or High Security Installations</summary>
164
142
 
165
143
  This gem is cryptographically signed, and has verifiable [SHA-256 and SHA-512][💎SHA_checksums] checksums by
@@ -222,8 +200,8 @@ That's it! Additional customizations can be done by setting environment variabl
222
200
  Below are the environment variables recognized by kettle-test. Unless otherwise specified, set values to the string "true" to enable a boolean feature, or provide the noted type.
223
201
 
224
202
  - DEBUG (String: "true"/"false")
225
- - Overrides default silencing for the entire run; when true, STDOUT/STDERR are not silenced by this library.
226
- - Default: "false". If KETTLE_TEST_DEBUG is not set, DEBUG is used.
203
+ - Overrides default silencing for the entire run; when true, STDOUT/STDERR are not silenced by this library.
204
+ - Default: "false". If KETTLE_TEST_DEBUG is not set, DEBUG is used.
227
205
  - GLOBAL_TIME_TRAVEL_TIME (String: Date/Time)
228
206
  - Global start time for Timecop across examples when using time travel.
229
207
  - Example: "2014-11-15" or "2014-11-15 13:45:00".
@@ -232,30 +210,30 @@ Below are the environment variables recognized by kettle-test. Unless otherwise
232
210
  - Alternate way to set a global date used when GLOBAL_TIME_TRAVEL_TIME is not provided.
233
211
  - Default: today (Date.today.to_s).
234
212
  - KETTLE_TEST_DEBUG (String: "true"/"false")
235
- - Same as DEBUG but namespaced for this gem. Takes precedence over DEBUG.
236
- - Default: "false".
213
+ - Same as DEBUG but namespaced for this gem. Takes precedence over DEBUG.
214
+ - Default: "false".
237
215
  - CI (String: "true"/"false")
238
- - Signals a CI environment. When true, examples tagged :skip_ci are excluded.
239
- - Also used as the default for KETTLE_TEST_SILENT when not set.
240
- - Default: unset/empty → treated as false.
216
+ - Signals a CI environment. When true, examples tagged :skip_ci are excluded.
217
+ - Also used as the default for KETTLE_TEST_SILENT when not set.
218
+ - Default: unset/empty → treated as false.
241
219
  - KETTLE_TEST_SILENT (String: "true"/"false")
242
- - Controls silencing of STDOUT/STDERR during specs (unless :check_output is used or DEBUG is true).
243
- - Default: value of CI (true on CI, false locally unless CI=true).
220
+ - Controls silencing of STDOUT/STDERR during specs (unless :check_output is used or DEBUG is true).
221
+ - Default: value of CI (true on CI, false locally unless CI=true).
244
222
  - KETTLE_TEST_VERBOSE (String: "true"/"false")
245
- - Reserved for future verbose logging toggles. Default: "false".
223
+ - Reserved for future verbose logging toggles. Default: "false".
246
224
  - KETTLE_TEST_FULL_BACKTRACE (String: "true"/"false")
247
- - When true, enables RSpec full backtraces.
248
- - Default: "false".
225
+ - When true, enables RSpec full backtraces.
226
+ - Default: "false".
249
227
  - KETTLE_TEST_RSPEC_PROFILE_EXAMPLES (Integer as String)
250
- - When > 0, RSpec will profile the slowest N examples or example groups.
251
- - Example: KETTLE_TEST_RSPEC_PROFILE_EXAMPLES=10
252
- - Default: "0" (disabled).
228
+ - When > 0, RSpec will profile the slowest N examples or example groups.
229
+ - Example: KETTLE_TEST_RSPEC_PROFILE_EXAMPLES=10
230
+ - Default: "0" (disabled).
253
231
  - KETTLE_TEST_TM_SEQUENTIAL (String: "true"/"false")
254
232
  - Controls Timecop sequential time machine mode for RSpec examples (see below).
255
233
  - Default: "true".
256
234
  - PARALLEL_TEST_FIRST_IS_1 (String: "true"/"false") and TEST_ENV_NUMBER (String)
257
- - Used to detect parallel test runs via Kettle::Test.is_parallel_test?. Not generally required to set manually.
258
- - Default: unset (treated as non-parallel unless provided by your parallel test runner).
235
+ - Used to detect parallel test runs via Kettle::Test.is_parallel_test?. Not generally required to set manually.
236
+ - Default: unset (treated as non-parallel unless provided by your parallel test runner).
259
237
 
260
238
  ### TimeCop-RSpec
261
239
 
@@ -299,6 +277,7 @@ except that it will sometimes resume time travel.
299
277
 
300
278
  Global travel will always resume from when the previous global traveled
301
279
  example ended. E.g.
280
+
302
281
  ```ruby
303
282
  # GLOBAL_TIME_TRAVEL_TIME=2014-11-15 bundle exec rspec some_spec.rb
304
283
 
@@ -358,6 +337,7 @@ end
358
337
  Following spec's local travel will resume when specified time is the same as the
359
338
  previous examples specified time. If the time is different, it will
360
339
  start from the current examples specified time.
340
+
361
341
  ```ruby
362
342
  describe SomeUnit, travel: Time.new(2014, 11, 15) do
363
343
  it "example 1" do
@@ -381,15 +361,22 @@ Use rspec-stubbed_env to safely set and restore environment variables in specs.
381
361
 
382
362
  ```ruby
383
363
  RSpec.describe("stubbed env") do
384
- include_context "with stubbed env"
364
+ # kettle-test includes these globally, so they are always available
365
+ # include_context "with stubbed env"
366
+ # include_context "with hidden env"
385
367
 
386
368
  before do
387
369
  stub_env("FOO" => "is bar")
370
+ hide_env("PATH")
388
371
  end
389
372
 
390
373
  it "uses the stubbed value" do
391
374
  expect(ENV["FOO"]).to(eq("is bar"))
392
375
  end
376
+
377
+ it "has no path" do
378
+ expect(ENV["PATH"]).to(be_nil)
379
+ end
393
380
  end
394
381
  ```
395
382
 
@@ -465,7 +452,7 @@ and [Tidelift][🏙️entsup-tidelift].
465
452
 
466
453
  ### Open Collective for Individuals
467
454
 
468
- Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/kettle-rb#backer)]
455
+ Support us with a monthly donation and help us continue our activities. [[Become a backer][🖇osc-backers]]
469
456
 
470
457
  NOTE: [kettle-readme-backers][kettle-readme-backers] updates this list every day, automatically.
471
458
 
@@ -475,7 +462,7 @@ No backers yet. Be the first!
475
462
 
476
463
  ### Open Collective for Organizations
477
464
 
478
- Become a sponsor and get your logo on our README on GitHub with a link to your site. [[Become a sponsor](https://opencollective.com/kettle-rb#sponsor)]
465
+ Become a sponsor and get your logo on our README on GitHub with a link to your site. [[Become a sponsor][🖇osc-sponsors]]
479
466
 
480
467
  NOTE: [kettle-readme-backers][kettle-readme-backers] updates this list every day, automatically.
481
468
 
@@ -487,10 +474,7 @@ No sponsors yet. Be the first!
487
474
 
488
475
  ### Another way to support open-source
489
476
 
490
- > How wonderful it is that nobody need wait a single moment before starting to improve the world.<br/>
491
- >—Anne Frank
492
-
493
- I’m driven by a passion to foster a thriving open-source community – a space where people can tackle complex problems, no matter how small. Revitalizing libraries that have fallen into disrepair, and building new libraries focused on solving real-world challenges, are my passions — totaling 79 hours of FLOSS coding over just the past seven days, a pretty regular week for me. I was recently affected by layoffs, and the tech jobs market is unwelcoming. I’m reaching out here because your support would significantly aid my efforts to provide for my family, and my farm (11 🐔 chickens, 2 🐶 dogs, 3 🐰 rabbits, 8 🐈‍ cats).
477
+ I’m driven by a passion to foster a thriving open-source community – a space where people can tackle complex problems, no matter how small. Revitalizing libraries that have fallen into disrepair, and building new libraries focused on solving real-world challenges, are my passions. I was recently affected by layoffs, and the tech jobs market is unwelcoming. I’m reaching out here because your support would significantly aid my efforts to provide for my family, and my farm (11 🐔 chickens, 2 🐶 dogs, 3 🐰 rabbits, 8 🐈‍ cats).
494
478
 
495
479
  If you work at a company that uses my work, please encourage them to support me as a corporate sponsor. My work on gems you use might show up in `bundle fund`.
496
480
 
@@ -498,7 +482,7 @@ I’m developing a new library, [floss_funding][🖇floss-funding-gem], designed
498
482
 
499
483
  **[Floss-Funding.dev][🖇floss-funding.dev]: 👉️ No network calls. 👉️ No tracking. 👉️ No oversight. 👉️ Minimal crypto hashing. 💡 Easily disabled nags**
500
484
 
501
- [![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate to my FLOSS or refugee efforts at ko-fi.com][🖇kofi-img]][🖇kofi] [![Donate to my FLOSS or refugee efforts using Patreon][🖇patreon-img]][🖇patreon]
485
+ [![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi] [![Donate to my FLOSS efforts using Patreon][🖇patreon-img]][🖇patreon]
502
486
 
503
487
  ## 🔐 Security
504
488
 
@@ -574,12 +558,11 @@ For example:
574
558
  spec.add_dependency("kettle-test", "~> 1.0")
575
559
  ```
576
560
 
577
- <details>
561
+ <details markdown="1">
578
562
  <summary>📌 Is "Platform Support" part of the public API? More details inside.</summary>
579
563
 
580
564
  SemVer should, IMO, but doesn't explicitly, say that dropping support for specific Platforms
581
- is a *breaking change* to an API.
582
- It is obvious to many, but not all, and since the spec is silent, the bike shedding is endless.
565
+ is a *breaking change* to an API, and for that reason the bike shedding is endless.
583
566
 
584
567
  To get a better understanding of how SemVer is intended to work over a project's lifetime,
585
568
  read this article from the creator of SemVer:
@@ -613,8 +596,8 @@ See [LICENSE.txt][📄license] for the official [Copyright Notice][📄copyright
613
596
  ## 🤑 A request for help
614
597
 
615
598
  Maintainers have teeth and need to pay their dentists.
616
- After getting laid off in an RIF in March and filled with many dozens of rejections,
617
- I'm now spending ~60+ hours a week building open source tools.
599
+ After getting laid off in an RIF in March, and encountering difficulty finding a new one,
600
+ I began spending most of my time building open source tools.
618
601
  I'm hoping to be able to pay for my kids' health insurance this month,
619
602
  so if you value the work I am doing, I need your support.
620
603
  Please consider sponsoring me or the project.
@@ -625,7 +608,7 @@ To join the community or get help 👇️ Join the Discord.
625
608
 
626
609
  To say "thanks!" ☝️ Join the Discord or 👇️ send money.
627
610
 
628
- [![Sponsor kettle-rb/kettle-test on Open Source Collective][🖇osc-all-bottom-img]][🖇osc] 💌 [![Sponsor me on GitHub Sponsors][🖇sponsor-bottom-img]][🖇sponsor] 💌 [![Sponsor me on Liberapay][⛳liberapay-bottom-img]][⛳liberapay-img] 💌 [![Donate on PayPal][🖇paypal-bottom-img]][🖇paypal-img]
611
+ [![Sponsor kettle-rb/kettle-test on Open Source Collective][🖇osc-all-bottom-img]][🖇osc] 💌 [![Sponsor me on GitHub Sponsors][🖇sponsor-bottom-img]][🖇sponsor] 💌 [![Sponsor me on Liberapay][⛳liberapay-bottom-img]][⛳liberapay] 💌 [![Donate on PayPal][🖇paypal-bottom-img]][🖇paypal]
629
612
 
630
613
  ### Please give the project a star ⭐ ♥.
631
614
 
@@ -666,7 +649,6 @@ Thanks for RTFM. ☺️
666
649
  [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord
667
650
  [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white
668
651
  [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends
669
-
670
652
  [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780
671
653
  [⛳️gem-namespace]: https://github.com/kettle-rb/kettle-test
672
654
  [⛳️namespace-img]: https://img.shields.io/badge/namespace-Kettle::Test-3C2D2D.svg?style=square&logo=ruby&logoColor=white
@@ -810,10 +792,10 @@ Thanks for RTFM. ☺️
810
792
  [📌changelog]: CHANGELOG.md
811
793
  [📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
812
794
  [📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-34495e.svg?style=flat
813
- [📌gitmoji]:https://gitmoji.dev
814
- [📌gitmoji-img]:https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
795
+ [📌gitmoji]: https://gitmoji.dev
796
+ [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
815
797
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
816
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.083-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
798
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.086-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
817
799
  [🔐security]: SECURITY.md
818
800
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
819
801
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -4,4 +4,5 @@
4
4
 
5
5
  RSpec.configure do |config|
6
6
  config.include_context("with stubbed env")
7
+ config.include_context("with hidden env")
7
8
  end
@@ -7,6 +7,10 @@ RSpec.configure do |config|
7
7
  example.run
8
8
  # Make tests run silently, with shunted STDOUT & STDERR, if ENV var KETTLE_TEST_SILENT == "true"
9
9
  else
10
+ # silence_all only silences STDOUT
11
+ # Alternatives:
12
+ # quietly also silences STDERR
13
+ # silence_stderr only silences STDERR
10
14
  silence_all(Kettle::Test::SILENT) do
11
15
  example.run
12
16
  end
@@ -4,6 +4,7 @@
4
4
  # config/int and its subfolders.
5
5
  # Files in config/ext may depend on this library's internals.
6
6
  require_relative "config/int/rspec_block_is_expected"
7
+ require_relative "config/int/rspec_pending_for"
7
8
  require_relative "config/int/rspec/rspec_core"
8
9
  require_relative "config/int/rspec/silent_stream"
9
10
 
@@ -6,7 +6,8 @@ module Kettle
6
6
  module Version
7
7
  # The current version of kettle-test.
8
8
  # @return [String]
9
- VERSION = "1.0.6"
9
+ VERSION = "1.0.8"
10
10
  end
11
+ VERSION = Version::VERSION # Traditional constant at module level
11
12
  end
12
13
  end
data/lib/kettle/test.rb CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  require_relative "test/version"
4
4
 
5
+ # Kettle namespace for the kettle-rb ecosystem of gems.
5
6
  module Kettle
6
7
  # Test support and RSpec integration for kettle-rb ecosystem.
7
8
  #
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kettle-test
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -219,14 +219,14 @@ dependencies:
219
219
  requirements:
220
220
  - - "~>"
221
221
  - !ruby/object:Gem::Version
222
- version: '1.1'
222
+ version: 1.2.4
223
223
  type: :development
224
224
  prerelease: false
225
225
  version_requirements: !ruby/object:Gem::Requirement
226
226
  requirements:
227
227
  - - "~>"
228
228
  - !ruby/object:Gem::Version
229
- version: '1.1'
229
+ version: 1.2.4
230
230
  - !ruby/object:Gem::Dependency
231
231
  name: bundler-audit
232
232
  requirement: !ruby/object:Gem::Requirement
@@ -343,6 +343,26 @@ dependencies:
343
343
  - - ">="
344
344
  - !ruby/object:Gem::Version
345
345
  version: 1.0.3
346
+ - !ruby/object:Gem::Dependency
347
+ name: kettle-test
348
+ requirement: !ruby/object:Gem::Requirement
349
+ requirements:
350
+ - - "~>"
351
+ - !ruby/object:Gem::Version
352
+ version: '1.0'
353
+ - - ">="
354
+ - !ruby/object:Gem::Version
355
+ version: 1.0.6
356
+ type: :development
357
+ prerelease: false
358
+ version_requirements: !ruby/object:Gem::Requirement
359
+ requirements:
360
+ - - "~>"
361
+ - !ruby/object:Gem::Version
362
+ version: '1.0'
363
+ - - ">="
364
+ - !ruby/object:Gem::Version
365
+ version: 1.0.6
346
366
  description: "\U0001F372 Kettle::Test is a meta tool from kettle-rb to streamline
347
367
  testing. Acts as a shim dependency, pulling in many other dependencies, to give
348
368
  you OOTB productivity with a RubyGem, or Ruby app project. Configures RSpec w/ syntactic
@@ -398,10 +418,10 @@ licenses:
398
418
  - MIT
399
419
  metadata:
400
420
  homepage_uri: https://kettle-test.galtzo.com/
401
- source_code_uri: https://github.com/kettle-rb/kettle-test/tree/v1.0.6
402
- changelog_uri: https://github.com/kettle-rb/kettle-test/blob/v1.0.6/CHANGELOG.md
421
+ source_code_uri: https://github.com/kettle-rb/kettle-test/tree/v1.0.8
422
+ changelog_uri: https://github.com/kettle-rb/kettle-test/blob/v1.0.8/CHANGELOG.md
403
423
  bug_tracker_uri: https://github.com/kettle-rb/kettle-test/issues
404
- documentation_uri: https://www.rubydoc.info/gems/kettle-test/1.0.6
424
+ documentation_uri: https://www.rubydoc.info/gems/kettle-test/1.0.8
405
425
  funding_uri: https://github.com/sponsors/pboling
406
426
  wiki_uri: https://github.com/kettle-rb/kettle-test/wiki
407
427
  news_uri: https://www.railsbling.com/tags/kettle-test
@@ -430,7 +450,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
430
450
  - !ruby/object:Gem::Version
431
451
  version: '0'
432
452
  requirements: []
433
- rubygems_version: 3.7.2
453
+ rubygems_version: 4.0.5
434
454
  specification_version: 4
435
455
  summary: "\U0001F372 A kettle-rb meta tool to streamline testing"
436
456
  test_files: []
metadata.gz.sig CHANGED
Binary file