timecop-rspec 1.0.0 → 1.0.2

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.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/.github/workflows/deps_locked.yml +11 -1
  4. data/.idea/timecop-rspec.iml +11 -9
  5. data/.rubocop_gradual.lock +64 -64
  6. data/CHANGELOG.md +27 -4
  7. data/CONTRIBUTING.md +1 -3
  8. data/Gemfile.lock +3 -25
  9. data/README.md +33 -10
  10. data/Rakefile +39 -2
  11. data/bin/console +1 -28
  12. data/bin/setup +0 -26
  13. data/checksums/timecop-rspec-1.0.1.gem.sha256 +1 -0
  14. data/checksums/timecop-rspec-1.0.1.gem.sha512 +1 -0
  15. data/checksums/timecop-rspec-1.0.2.gem.sha256 +1 -0
  16. data/checksums/timecop-rspec-1.0.2.gem.sha512 +1 -0
  17. data/docs/Timecop/Rspec/ExampleDecorator.html +26 -26
  18. data/docs/Timecop/Rspec/SequentialTimeMachine.html +11 -11
  19. data/docs/Timecop/Rspec/TimeMachine.html +18 -18
  20. data/docs/Timecop/Rspec/TravelLog.html +18 -18
  21. data/docs/Timecop/Rspec/Traveler.html +25 -25
  22. data/docs/Timecop/Rspec/Version.html +2 -2
  23. data/docs/Timecop/Rspec.html +20 -18
  24. data/docs/Timecop.html +2 -8
  25. data/docs/_index.html +13 -1
  26. data/docs/file.CHANGELOG.html +37 -6
  27. data/docs/file.CITATION.html +1 -1
  28. data/docs/file.CODE_OF_CONDUCT.html +1 -1
  29. data/docs/file.CONTRIBUTING.html +2 -4
  30. data/docs/file.LICENSE.html +1 -1
  31. data/docs/file.README.html +35 -13
  32. data/docs/file.REEK.html +1 -1
  33. data/docs/file.RUBOCOP.html +1 -1
  34. data/docs/file.SECURITY.html +1 -1
  35. data/docs/file.rspec.html +1 -1
  36. data/docs/file.timecop-rspec-1.0.0.gem.html +71 -0
  37. data/docs/file.timecop-rspec-1.0.1.gem.html +71 -0
  38. data/docs/file.timecop.html +1 -1
  39. data/docs/file_list.html +20 -0
  40. data/docs/index.html +35 -13
  41. data/docs/top-level-namespace.html +1 -1
  42. data/lib/timecop/rspec/example_decorator.rb +3 -24
  43. data/lib/timecop/rspec/sequential_time_machine.rb +0 -24
  44. data/lib/timecop/rspec/time_machine.rb +0 -24
  45. data/lib/timecop/rspec/travel_log.rb +6 -28
  46. data/lib/timecop/rspec/traveler.rb +0 -24
  47. data/lib/timecop/rspec/version.rb +1 -25
  48. data/lib/timecop/rspec.rb +2 -26
  49. data/timecop-rspec.gemspec +6 -3
  50. data.tar.gz.sig +0 -0
  51. metadata +26 -14
  52. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b0b99b69676557af87435fb8012c3feb93de4352513ff78599b70827258d2578
4
- data.tar.gz: 5bd14a0372b799d03e5abb3036bb8e640b8c7fde4b18799916eea7c448ef940c
3
+ metadata.gz: 23eab2a846a68e7884f2bbe6d48175cb5e38db1224bac078e53420b23505a49e
4
+ data.tar.gz: 35c2a43311a08750b2724ab5b849919b5a56626bbd88860cf9c790e09cd010cf
5
5
  SHA512:
6
- metadata.gz: fcfd7f24ad4936b9fa66c7d872a3a9aab716047f7b6b645a9459ee1c29ea2078173bfb6569e77107f084a76441765bb2b2c881c0edbe45fb0002c715373015a5
7
- data.tar.gz: 7c7cb35639fb218509c069eadcf073fc3730295d6009f996b0808a3afaea905957f356150655288cd753af46c87cee4513529ff735939d99a36138f22df8c8cd
6
+ metadata.gz: e5336e6a633c933fcaf7e67bbec119e623d578e5e02b04a02b781f8a32ac717a6d450146c8d18b81cb04283561599eda9a39822565dee92915b8921f287986f8
7
+ data.tar.gz: bc536d7a76deef5bf8457689af9fffa126e7041493d05d38839ee86337fab9c5676f78af4cbdf627f08e23e84145155598119e349a1a93ca455965d83d9ee9e4
checksums.yaml.gz.sig CHANGED
Binary file
@@ -21,7 +21,17 @@ permissions:
21
21
  contents: read
22
22
 
23
23
  env:
24
- KITCHEN_SINK: true
24
+ # Running coverage, but not validating minimum coverage,
25
+ # because it would be redundant with the coverage workflow.
26
+ # Also we can validate all output formats without breaking CodeCov,
27
+ # since we aren't submitting these reports anywhere.
28
+ K_SOUP_COV_MIN_BRANCH: 71
29
+ K_SOUP_COV_MIN_LINE: 86
30
+ K_SOUP_COV_MIN_HARD: false
31
+ K_SOUP_COV_FORMATTERS: "html,xml,rcov,lcov,json,tty"
32
+ K_SOUP_COV_DO: true
33
+ K_SOUP_COV_MULTI_FORMATTERS: true
34
+ K_SOUP_COV_COMMAND_NAME: "Test Coverage"
25
35
 
26
36
  on:
27
37
  push:
@@ -8,28 +8,35 @@
8
8
  <sourceFolder url="file://$MODULE_DIR$/features" isTestSource="true" />
9
9
  <sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
10
10
  <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
11
+ <excludeFolder url="file://$MODULE_DIR$/.qlty" />
12
+ <excludeFolder url="file://$MODULE_DIR$/.yardoc" />
13
+ <excludeFolder url="file://$MODULE_DIR$/bin" />
14
+ <excludeFolder url="file://$MODULE_DIR$/certs" />
15
+ <excludeFolder url="file://$MODULE_DIR$/checksums" />
16
+ <excludeFolder url="file://$MODULE_DIR$/coverage" />
17
+ <excludeFolder url="file://$MODULE_DIR$/docs" />
18
+ <excludeFolder url="file://$MODULE_DIR$/gemfiles" />
19
+ <excludeFolder url="file://$MODULE_DIR$/pkg" />
20
+ <excludeFolder url="file://$MODULE_DIR$/results" />
11
21
  </content>
12
22
  <orderEntry type="jdk" jdkName="mise: 3.4.5" jdkType="RUBY_SDK" />
13
23
  <orderEntry type="sourceFolder" forTests="false" />
14
- <orderEntry type="library" scope="PROVIDED" name="activesupport (v8.0.2.1, mise: 3.4.5) [gem]" level="application" />
15
24
  <orderEntry type="library" scope="PROVIDED" name="ansi (v1.5.0, mise: 3.4.5) [gem]" level="application" />
16
25
  <orderEntry type="library" scope="PROVIDED" name="appraisal2 (v3.0.0, mise: 3.4.5) [gem]" level="application" />
17
26
  <orderEntry type="library" scope="PROVIDED" name="ast (v2.4.3, mise: 3.4.5) [gem]" level="application" />
18
27
  <orderEntry type="library" scope="PROVIDED" name="backports (v3.25.1, mise: 3.4.5) [gem]" level="application" />
19
- <orderEntry type="library" scope="PROVIDED" name="base64 (v0.3.0, mise: 3.4.5) [gem]" level="application" />
20
28
  <orderEntry type="library" scope="PROVIDED" name="benchmark (v0.4.1, mise: 3.4.5) [gem]" level="application" />
21
29
  <orderEntry type="library" scope="PROVIDED" name="bigdecimal (v3.2.2, mise: 3.4.5) [gem]" level="application" />
22
30
  <orderEntry type="library" scope="PROVIDED" name="bundler (v2.7.1, mise: 3.4.5) [gem]" level="application" />
23
31
  <orderEntry type="library" scope="PROVIDED" name="bundler-audit (v0.9.2, mise: 3.4.5) [gem]" level="application" />
24
32
  <orderEntry type="library" scope="PROVIDED" name="coderay (v1.1.3, mise: 3.4.5) [gem]" level="application" />
25
33
  <orderEntry type="library" scope="PROVIDED" name="concurrent-ruby (v1.3.5, mise: 3.4.5) [gem]" level="application" />
26
- <orderEntry type="library" scope="PROVIDED" name="connection_pool (v2.5.3, mise: 3.4.5) [gem]" level="application" />
27
34
  <orderEntry type="library" scope="PROVIDED" name="date (v3.4.1, mise: 3.4.5) [gem]" level="application" />
28
35
  <orderEntry type="library" scope="PROVIDED" name="debug (v1.11.0, mise: 3.4.5) [gem]" level="application" />
36
+ <orderEntry type="library" scope="PROVIDED" name="delegate (v0.4.0, mise: 3.4.5) [gem]" level="application" />
29
37
  <orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.6.2, mise: 3.4.5) [gem]" level="application" />
30
38
  <orderEntry type="library" scope="PROVIDED" name="diffy (v3.4.4, mise: 3.4.5) [gem]" level="application" />
31
39
  <orderEntry type="library" scope="PROVIDED" name="docile (v1.4.1, mise: 3.4.5) [gem]" level="application" />
32
- <orderEntry type="library" scope="PROVIDED" name="drb (v2.2.3, mise: 3.4.5) [gem]" level="application" />
33
40
  <orderEntry type="library" scope="PROVIDED" name="dry-configurable (v1.3.0, mise: 3.4.5) [gem]" level="application" />
34
41
  <orderEntry type="library" scope="PROVIDED" name="dry-core (v1.1.0, mise: 3.4.5) [gem]" level="application" />
35
42
  <orderEntry type="library" scope="PROVIDED" name="dry-inflector (v1.2.0, mise: 3.4.5) [gem]" level="application" />
@@ -39,7 +46,6 @@
39
46
  <orderEntry type="library" scope="PROVIDED" name="dry-types (v1.8.3, mise: 3.4.5) [gem]" level="application" />
40
47
  <orderEntry type="library" scope="PROVIDED" name="erb (v5.0.2, mise: 3.4.5) [gem]" level="application" />
41
48
  <orderEntry type="library" scope="PROVIDED" name="gem_bench (v2.0.5, mise: 3.4.5) [gem]" level="application" />
42
- <orderEntry type="library" scope="PROVIDED" name="i18n (v1.14.7, mise: 3.4.5) [gem]" level="application" />
43
49
  <orderEntry type="library" scope="PROVIDED" name="io-console (v0.8.1, mise: 3.4.5) [gem]" level="application" />
44
50
  <orderEntry type="library" scope="PROVIDED" name="irb (v1.15.2, mise: 3.4.5) [gem]" level="application" />
45
51
  <orderEntry type="library" scope="PROVIDED" name="json (v2.13.2, mise: 3.4.5) [gem]" level="application" />
@@ -50,7 +56,6 @@
50
56
  <orderEntry type="library" scope="PROVIDED" name="lint_roller (v1.1.0, mise: 3.4.5) [gem]" level="application" />
51
57
  <orderEntry type="library" scope="PROVIDED" name="logger (v1.7.0, mise: 3.4.5) [gem]" level="application" />
52
58
  <orderEntry type="library" scope="PROVIDED" name="method_source (v1.1.0, mise: 3.4.5) [gem]" level="application" />
53
- <orderEntry type="library" scope="PROVIDED" name="minitest (v5.25.5, mise: 3.4.5) [gem]" level="application" />
54
59
  <orderEntry type="library" scope="PROVIDED" name="nokogiri (v1.18.9, mise: 3.4.5) [gem]" level="application" />
55
60
  <orderEntry type="library" scope="PROVIDED" name="ostruct (v0.6.3, mise: 3.4.5) [gem]" level="application" />
56
61
  <orderEntry type="library" scope="PROVIDED" name="parallel (v1.27.0, mise: 3.4.5) [gem]" level="application" />
@@ -89,7 +94,6 @@
89
94
  <orderEntry type="library" scope="PROVIDED" name="rubocop-shopify (v2.17.1, mise: 3.4.5) [gem]" level="application" />
90
95
  <orderEntry type="library" scope="PROVIDED" name="rubocop-thread_safety (v0.7.3, mise: 3.4.5) [gem]" level="application" />
91
96
  <orderEntry type="library" scope="PROVIDED" name="ruby-progressbar (v1.13.0, mise: 3.4.5) [gem]" level="application" />
92
- <orderEntry type="library" scope="PROVIDED" name="securerandom (v0.4.1, mise: 3.4.5) [gem]" level="application" />
93
97
  <orderEntry type="library" scope="PROVIDED" name="silent_stream (v1.0.11, mise: 3.4.5) [gem]" level="application" />
94
98
  <orderEntry type="library" scope="PROVIDED" name="simplecov (v0.22.0, mise: 3.4.5) [gem]" level="application" />
95
99
  <orderEntry type="library" scope="PROVIDED" name="simplecov-cobertura (v3.0.0, mise: 3.4.5) [gem]" level="application" />
@@ -107,10 +111,8 @@
107
111
  <orderEntry type="library" scope="PROVIDED" name="terminal-table (v4.0.0, mise: 3.4.5) [gem]" level="application" />
108
112
  <orderEntry type="library" scope="PROVIDED" name="thor (v1.4.0, mise: 3.4.5) [gem]" level="application" />
109
113
  <orderEntry type="library" scope="PROVIDED" name="timecop (v0.9.10, mise: 3.4.5) [gem]" level="application" />
110
- <orderEntry type="library" scope="PROVIDED" name="tzinfo (v2.0.6, mise: 3.4.5) [gem]" level="application" />
111
114
  <orderEntry type="library" scope="PROVIDED" name="unicode-display_width (v3.1.5, mise: 3.4.5) [gem]" level="application" />
112
115
  <orderEntry type="library" scope="PROVIDED" name="unicode-emoji (v4.0.4, mise: 3.4.5) [gem]" level="application" />
113
- <orderEntry type="library" scope="PROVIDED" name="uri (v1.0.3, mise: 3.4.5) [gem]" level="application" />
114
116
  <orderEntry type="library" scope="PROVIDED" name="version_gem (v1.1.8, mise: 3.4.5) [gem]" level="application" />
115
117
  <orderEntry type="library" scope="PROVIDED" name="yard (v0.9.37, mise: 3.4.5) [gem]" level="application" />
116
118
  <orderEntry type="library" scope="PROVIDED" name="yard-junk (v0.0.10@54cceb, mise: 3.4.5) [gem]" level="application" />
@@ -1,76 +1,76 @@
1
1
  {
2
- "Rakefile:1123364514": [
3
- [67, 5, 15, "Rake/Desc: Describe the task with `desc` method.", 842824456]
2
+ "Rakefile:2312831157": [
3
+ [70, 5, 15, "Rake/Desc: Describe the task with `desc` method.", 842824456]
4
4
  ],
5
- "lib/timecop/rspec.rb:919485649": [
6
- [66, 9, 12, "ThreadSafety/ClassInstanceVariable: Avoid class instance variables.", 990613604]
5
+ "lib/timecop/rspec.rb:1066485176": [
6
+ [42, 9, 12, "ThreadSafety/ClassInstanceVariable: Avoid class instance variables.", 990613604]
7
7
  ],
8
- "lib/timecop/rspec/sequential_time_machine.rb:757109961": [
9
- [39, 7, 53, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 496991953],
10
- [40, 9, 9, "ThreadSafety/ClassInstanceVariable: Avoid class instance variables.", 356709996]
8
+ "lib/timecop/rspec/sequential_time_machine.rb:3576394007": [
9
+ [15, 7, 53, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 496991953],
10
+ [16, 9, 9, "ThreadSafety/ClassInstanceVariable: Avoid class instance variables.", 356709996]
11
11
  ],
12
- "lib/timecop/rspec/time_machine.rb:2818630369": [
13
- [35, 7, 53, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 496991953],
14
- [36, 9, 9, "ThreadSafety/ClassInstanceVariable: Avoid class instance variables.", 356709996]
12
+ "lib/timecop/rspec/time_machine.rb:1233248191": [
13
+ [11, 7, 53, "Style/ClassMethodsDefinitions: Use `class << self` to define a class method.", 496991953],
14
+ [12, 9, 9, "ThreadSafety/ClassInstanceVariable: Avoid class instance variables.", 356709996]
15
15
  ],
16
- "spec/timecop/rspec/a_time_machine.rb:1115759165": [
17
- [47, 13, 29, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 2090924979],
18
- [50, 7, 64, "RSpec/MultipleExpectations: Example has too many expectations [2/1].", 1461883873],
16
+ "spec/timecop/rspec/a_time_machine.rb:3434657420": [
17
+ [25, 13, 29, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 2090924979],
18
+ [28, 7, 64, "RSpec/MultipleExpectations: Example has too many expectations [2/1].", 1461883873],
19
+ [31, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
20
+ [38, 7, 56, "RSpec/MultipleExpectations: Example has too many expectations [2/1].", 643029529],
21
+ [42, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
22
+ [49, 7, 53, "RSpec/MultipleExpectations: Example has too many expectations [2/1].", 3086872678],
19
23
  [53, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
20
- [60, 7, 56, "RSpec/MultipleExpectations: Example has too many expectations [2/1].", 643029529],
24
+ [60, 7, 124, "RSpec/MultipleExpectations: Example has too many expectations [6/1].", 676965629],
21
25
  [64, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
22
- [71, 7, 53, "RSpec/MultipleExpectations: Example has too many expectations [2/1].", 3086872678],
23
- [75, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
24
- [82, 7, 124, "RSpec/MultipleExpectations: Example has too many expectations [6/1].", 676965629],
25
- [87, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
26
- [93, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
27
- [99, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
28
- [105, 7, 36, "RSpec/MultipleExpectations: Example has too many expectations [2/1].", 1669892008],
29
- [109, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
30
- [115, 7, 42, "RSpec/MultipleExpectations: Example has too many expectations [2/1].", 2672670916],
31
- [116, 23, 33, "Style/DateTime: Prefer `Time` over `DateTime`.", 2306291980],
32
- [119, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
33
- [128, 7, 62, "RSpec/MultipleExpectations: Example has too many expectations [5/1].", 1809499334],
34
- [129, 23, 25, "Style/DateTime: Prefer `Time` over `DateTime`.", 2011980225],
35
- [136, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
36
- [145, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
37
- [151, 7, 131, "RSpec/MultipleExpectations: Example has too many expectations [6/1].", 2099780707],
38
- [155, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
39
- [160, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
40
- [165, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
41
- [171, 15, 35, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 710711823],
42
- [172, 9, 81, "RSpec/MultipleExpectations: Example has too many expectations [2/1].", 262796784],
43
- [174, 30, 8, "RSpec/InstanceVariable: Avoid instance variables - use let, a method call, or a local variable (if possible).", 2321415930],
44
- [177, 37, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
45
- [184, 9, 78, "RSpec/MultipleExpectations: Example has too many expectations [2/1].", 2987422127],
46
- [186, 30, 8, "RSpec/InstanceVariable: Avoid instance variables - use let, a method call, or a local variable (if possible).", 2321981723],
47
- [189, 37, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
48
- [198, 13, 28, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 830037094],
49
- [201, 7, 48, "RSpec/MultipleExpectations: Example has too many expectations [2/1].", 1915717479],
26
+ [69, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
27
+ [74, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
28
+ [80, 7, 36, "RSpec/MultipleExpectations: Example has too many expectations [2/1].", 1669892008],
29
+ [84, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
30
+ [90, 7, 42, "RSpec/MultipleExpectations: Example has too many expectations [2/1].", 2672670916],
31
+ [91, 23, 33, "Style/DateTime: Prefer `Time` over `DateTime`.", 2306291980],
32
+ [94, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
33
+ [103, 7, 62, "RSpec/MultipleExpectations: Example has too many expectations [5/1].", 1809499334],
34
+ [104, 23, 25, "Style/DateTime: Prefer `Time` over `DateTime`.", 2011980225],
35
+ [111, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
36
+ [120, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
37
+ [126, 7, 131, "RSpec/MultipleExpectations: Example has too many expectations [6/1].", 2099780707],
38
+ [130, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
39
+ [135, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
40
+ [140, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
41
+ [146, 15, 35, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 710711823],
42
+ [147, 9, 81, "RSpec/MultipleExpectations: Example has too many expectations [2/1].", 262796784],
43
+ [149, 30, 8, "RSpec/InstanceVariable: Avoid instance variables - use let, a method call, or a local variable (if possible).", 2321415930],
44
+ [152, 37, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
45
+ [159, 9, 78, "RSpec/MultipleExpectations: Example has too many expectations [2/1].", 2987422127],
46
+ [161, 30, 8, "RSpec/InstanceVariable: Avoid instance variables - use let, a method call, or a local variable (if possible).", 2321981723],
47
+ [164, 37, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
48
+ [173, 13, 28, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 830037094],
49
+ [176, 7, 48, "RSpec/MultipleExpectations: Example has too many expectations [2/1].", 1915717479],
50
+ [177, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
51
+ [187, 7, 70, "RSpec/MultipleExpectations: Example has too many expectations [2/1].", 3183424212],
52
+ [191, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
53
+ [198, 7, 70, "RSpec/MultipleExpectations: Example has too many expectations [2/1].", 1685240264],
50
54
  [202, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
51
- [213, 7, 70, "RSpec/MultipleExpectations: Example has too many expectations [2/1].", 3183424212],
52
- [217, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
53
- [224, 7, 70, "RSpec/MultipleExpectations: Example has too many expectations [2/1].", 1685240264],
54
- [228, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
55
- [235, 7, 67, "RSpec/MultipleExpectations: Example has too many expectations [2/1].", 4130782052],
56
- [239, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950]
55
+ [209, 7, 67, "RSpec/MultipleExpectations: Example has too many expectations [2/1].", 4130782052],
56
+ [213, 35, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950]
57
57
  ],
58
- "spec/timecop/rspec/sequential_time_machine_spec.rb:1307381905": [
59
- [42, 3, 124, "RSpec/MultipleExpectations: Example has too many expectations [6/1].", 676965629],
60
- [47, 31, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
61
- [52, 31, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
62
- [57, 31, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
63
- [67, 11, 28, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 830037094],
64
- [75, 5, 72, "RSpec/MultipleExpectations: Example has too many expectations [6/1].", 2221852238],
65
- [77, 33, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
66
- [82, 33, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
67
- [87, 33, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950]
58
+ "spec/timecop/rspec/sequential_time_machine_spec.rb:2709164453": [
59
+ [19, 3, 124, "RSpec/MultipleExpectations: Example has too many expectations [6/1].", 676965629],
60
+ [24, 31, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
61
+ [29, 31, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
62
+ [34, 31, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
63
+ [44, 11, 28, "RSpec/ContextWording: Context description should match /^when\\b/, /^with\\b/, or /^without\\b/.", 830037094],
64
+ [52, 5, 72, "RSpec/MultipleExpectations: Example has too many expectations [6/1].", 2221852238],
65
+ [54, 33, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
66
+ [59, 33, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950],
67
+ [64, 33, 7, "RSpec/MessageSpies: Prefer `have_received` for setting message expectations. Setup `example_procsy` as a spy using `allow` or `instance_spy`.", 1384559950]
68
68
  ],
69
- "timecop-rspec.gemspec:4269185173": [
70
- [108, 3, 3, "Gemspec/DuplicatedAssignment: `files=` method calls already given on line 62 of the gemspec.", 193433027],
71
- [108, 16, 19, "Packaging/GemspecGit: Avoid using git to produce lists of files. Downstreams often need to build your package in an environment that does not have git (on purpose). Use some pure Ruby alternative, like `Dir` or `Dir.glob`.", 3879951891],
72
- [111, 3, 19, "Gemspec/DuplicatedAssignment: `bindir=` method calls already given on line 104 of the gemspec.", 554494033],
73
- [112, 3, 70, "Gemspec/DuplicatedAssignment: `executables=` method calls already given on line 106 of the gemspec.", 18210340],
74
- [113, 3, 28, "Gemspec/DuplicatedAssignment: `require_paths=` method calls already given on line 103 of the gemspec.", 1947597918]
69
+ "timecop-rspec.gemspec:2892863758": [
70
+ [111, 3, 3, "Gemspec/DuplicatedAssignment: `files=` method calls already given on line 65 of the gemspec.", 193433027],
71
+ [111, 16, 19, "Packaging/GemspecGit: Avoid using git to produce lists of files. Downstreams often need to build your package in an environment that does not have git (on purpose). Use some pure Ruby alternative, like `Dir` or `Dir.glob`.", 3879951891],
72
+ [114, 3, 19, "Gemspec/DuplicatedAssignment: `bindir=` method calls already given on line 107 of the gemspec.", 554494033],
73
+ [115, 3, 70, "Gemspec/DuplicatedAssignment: `executables=` method calls already given on line 109 of the gemspec.", 18210340],
74
+ [116, 3, 28, "Gemspec/DuplicatedAssignment: `require_paths=` method calls already given on line 106 of the gemspec.", 1947597918]
75
75
  ]
76
76
  }
data/CHANGELOG.md CHANGED
@@ -12,6 +12,27 @@ and this project adheres to [Semantic Versioning v2](https://semver.org/spec/v2.
12
12
  ### Fixed
13
13
  ### Security
14
14
 
15
+ ## [1.0.2] - 2025-08-18
16
+ - TAG: [v1.0.2][1.0.2t]
17
+ - COVERAGE: 100.00% -- 132/132 lines in 7 files
18
+ - BRANCH COVERAGE: 92.31% -- 24/26 branches in 7 files
19
+ - 100% documented
20
+ ### Added
21
+ - improved CI
22
+ ### Changed
23
+ - upgraded to Galtzo FLOSS Rakefile v1.0.9
24
+ ### Fixed
25
+ - documentation, changelog
26
+ - fix ancient bin/console script
27
+
28
+ ## [1.0.1] - 2025-08-17
29
+ - TAG: [v1.0.1][1.0.1t]
30
+ - COVERAGE: 100.00% -- 132/132 lines in 7 files
31
+ - BRANCH COVERAGE: 92.31% -- 24/26 branches in 7 files
32
+ - 100% documented
33
+ ### Removed
34
+ - refactored to remove dependency on activesupport
35
+
15
36
  ## [1.0.0] - 2025-08-17
16
37
  - TAG: [v1.0.0][1.0.0t]
17
38
  - COVERAGE: 100.00% -- 131/131 lines in 7 files
@@ -20,8 +41,10 @@ and this project adheres to [Semantic Versioning v2](https://semver.org/spec/v2.
20
41
  ### Added
21
42
  - Initial release to rubygems (8 years late!)
22
43
 
23
- ###
24
-
25
- [Unreleased]: https://gitlab.com/galtzo-floss/timecop-rspec/-/compare/v1.0.0...main
26
- [1.0.0]: https://gitlab.com/galtzo-floss/timecop-rspec/-/compare/389ece6fb9bd04013d11edca6fb6830139a84f4c...v1.0.0
44
+ [Unreleased]: https://gitlab.com/galtzo-floss/timecop-rspec/-/compare/v1.0.2...main
45
+ [1.0.2]: https://gitlab.com/galtzo-floss/timecop-rspec/-/compare/v1.0.2...v1.0.2
46
+ [1.0.2t]: https://gitlab.com/galtzo-floss/timecop-rspec/-/tags/v1.0.2
47
+ [1.0.1]: https://gitlab.com/galtzo-floss/timecop-rspec/-/compare/v1.0.0...v1.0.1
48
+ [1.0.1t]: https://gitlab.com/galtzo-floss/timecop-rspec/-/tags/v1.0.1
49
+ [1.0.0]: https://gitlab.com/galtzo-floss/timecop-rspec/-/compare/13c672f32c466824277d04c932e3244deb6451ea...v1.0.0
27
50
  [1.0.0t]: https://gitlab.com/galtzo-floss/timecop-rspec/-/tags/v1.0.0
data/CONTRIBUTING.md CHANGED
@@ -28,9 +28,7 @@ From time to time the Appraisal2 gemfiles in `gemfiles/` will need to be updated
28
28
  They are created and updated with the commands:
29
29
 
30
30
  ```console
31
- BUNDLE_GEMFILE=Appraisal.root.gemfile bundle
32
- BUNDLE_GEMFILE=Appraisal.root.gemfile bundle exec appraisal update
33
- bundle exec rake rubocop_gradual:autocorrect
31
+ bin/rake appraisal:update
34
32
  ```
35
33
 
36
34
  When adding an appraisal to CI check the [runner tool cache][🏃‍♂️runner-tool-cache] to see which runner to use.
data/Gemfile.lock CHANGED
@@ -13,27 +13,14 @@ GIT
13
13
  PATH
14
14
  remote: .
15
15
  specs:
16
- timecop-rspec (1.0.0)
17
- activesupport (>= 4.0)
16
+ timecop-rspec (1.0.2)
17
+ delegate (~> 0.1)
18
18
  rspec (~> 3.0)
19
19
  timecop (>= 0.7, < 1)
20
20
 
21
21
  GEM
22
22
  remote: https://rubygems.org/
23
23
  specs:
24
- activesupport (8.0.2.1)
25
- base64
26
- benchmark (>= 0.3)
27
- bigdecimal
28
- concurrent-ruby (~> 1.0, >= 1.3.1)
29
- connection_pool (>= 2.2.5)
30
- drb
31
- i18n (>= 1.6, < 2)
32
- logger (>= 1.4.2)
33
- minitest (>= 5.1)
34
- securerandom (>= 0.3)
35
- tzinfo (~> 2.0, >= 2.0.5)
36
- uri (>= 0.13.1)
37
24
  ansi (1.5.0)
38
25
  appraisal2 (3.0.0)
39
26
  bundler (>= 1.17.3)
@@ -41,7 +28,6 @@ GEM
41
28
  thor (>= 0.14)
42
29
  ast (2.4.3)
43
30
  backports (3.25.1)
44
- base64 (0.3.0)
45
31
  benchmark (0.4.1)
46
32
  bigdecimal (3.2.2)
47
33
  bundler-audit (0.9.2)
@@ -49,15 +35,14 @@ GEM
49
35
  thor (~> 1.0)
50
36
  coderay (1.1.3)
51
37
  concurrent-ruby (1.3.5)
52
- connection_pool (2.5.3)
53
38
  date (3.4.1)
54
39
  debug (1.11.0)
55
40
  irb (~> 1.10)
56
41
  reline (>= 0.3.8)
42
+ delegate (0.4.0)
57
43
  diff-lcs (1.6.2)
58
44
  diffy (3.4.4)
59
45
  docile (1.4.1)
60
- drb (2.2.3)
61
46
  dry-configurable (1.3.0)
62
47
  dry-core (~> 1.1)
63
48
  zeitwerk (~> 2.6)
@@ -91,8 +76,6 @@ GEM
91
76
  gem_bench (2.0.5)
92
77
  bundler (>= 1.14)
93
78
  version_gem (~> 1.1, >= 1.1.4)
94
- i18n (1.14.7)
95
- concurrent-ruby (~> 1.0)
96
79
  io-console (0.8.1)
97
80
  irb (1.15.2)
98
81
  pp (>= 0.6.0)
@@ -116,7 +99,6 @@ GEM
116
99
  lint_roller (1.1.0)
117
100
  logger (1.7.0)
118
101
  method_source (1.1.0)
119
- minitest (5.25.5)
120
102
  nokogiri (1.18.9-x86_64-linux-gnu)
121
103
  racc (~> 1.4)
122
104
  ostruct (0.6.3)
@@ -221,7 +203,6 @@ GEM
221
203
  rubocop (~> 1.72, >= 1.72.1)
222
204
  rubocop-ast (>= 1.44.0, < 2.0)
223
205
  ruby-progressbar (1.13.0)
224
- securerandom (0.4.1)
225
206
  silent_stream (1.0.11)
226
207
  logger (~> 1.2)
227
208
  version_gem (>= 1.1.8, < 3)
@@ -266,12 +247,9 @@ GEM
266
247
  unicode-display_width (>= 1.1.1, < 4)
267
248
  thor (1.4.0)
268
249
  timecop (0.9.10)
269
- tzinfo (2.0.6)
270
- concurrent-ruby (~> 1.0)
271
250
  unicode-display_width (3.1.5)
272
251
  unicode-emoji (~> 4.0, >= 4.0.4)
273
252
  unicode-emoji (4.0.4)
274
- uri (1.0.3)
275
253
  version_gem (1.1.8)
276
254
  yard (0.9.37)
277
255
  yard-relative_markdown_links (0.5.0)
data/README.md CHANGED
@@ -26,6 +26,12 @@ It has a great API, and I was about to build this exact thing myself, so I am gl
26
26
  I've modernized everything, added more tests and documentation, and released it.
27
27
  Thanks to the long-term stability of both RSpec and Timecop, the original code still works perfectly.
28
28
 
29
+ Improvements over original:
30
+ - The original only supported Ruby 2.2+, but I've backfilled support to 1.9.2 (to align with the max-min version between RSpec & Timecop).
31
+ - Added tests for 100% line coverage.
32
+ - Added documentation for all public methods.
33
+ - removed runtime (and dev) dependency on `activesupport`.
34
+
29
35
  I expect the current release of this gem to be compatible with Ruby 1.9.2+,
30
36
  but it is only tested on CI against Ruby 2.3+,
31
37
  due to the inherent limitations of GitHub Actions.
@@ -142,7 +148,7 @@ NOTE: Be prepared to track down certs for signed gems and add them the same way
142
148
 
143
149
  ## ⚙️ Configuration
144
150
 
145
- #### Regular Time Machine
151
+ ### Regular Time Machine
146
152
 
147
153
  ```ruby
148
154
  # spec_helper.rb or some configuration file loaded by spec_helper.rb
@@ -159,7 +165,7 @@ end
159
165
  The regular time machine will run each example at the time specified by the
160
166
  RSpec metadata, or the global travel time.
161
167
 
162
- #### Sequential Time Machine
168
+ ### Sequential Time Machine
163
169
 
164
170
  ```ruby
165
171
  # spec_helper.rb or some configuration file loaded by spec_helper.rb
@@ -213,7 +219,7 @@ end
213
219
 
214
220
  ## 🔧 Basic Usage
215
221
 
216
- #### Local Time Travel
222
+ ### Local Time Travel
217
223
 
218
224
  Timecop.travel/freeze any RSpec (describe|context|example) with
219
225
  `:travel` or `:freeze` metadata.
@@ -234,7 +240,7 @@ it "some description", :freeze => Time.new(2014, 11, 15) do
234
240
  end
235
241
  ```
236
242
 
237
- #### Global Time Travel
243
+ ### Global Time Travel
238
244
 
239
245
  Using global time travel will Timecop.travel any example that isn't
240
246
  already time traveling. I.e. example level timecop metadata will take
@@ -308,7 +314,8 @@ Made with [contributors-img][🖐contrib-rocks].
308
314
 
309
315
  Also see GitLab Contributors: [https://gitlab.com/galtzo-floss/timecop-rspec/-/graphs/main][🚎contributors-gl]
310
316
 
311
- ## ⭐️ Star History
317
+ <details>
318
+ <summary>⭐️ Star History</summary>
312
319
 
313
320
  <a href="https://star-history.com/#galtzo-floss/timecop-rspec&Date">
314
321
  <picture>
@@ -318,6 +325,8 @@ Also see GitLab Contributors: [https://gitlab.com/galtzo-floss/timecop-rspec/-/g
318
325
  </picture>
319
326
  </a>
320
327
 
328
+ </details>
329
+
321
330
  ## 📌 Versioning
322
331
 
323
332
  This Library adheres to [![Semantic Versioning 2.0.0][📌semver-img]][📌semver].
@@ -381,9 +390,22 @@ P.S. If you need help️ or want to say thanks, 👇 Join the Discord.
381
390
 
382
391
  [![Live Chat on Discord][✉️discord-invite-img]][✉️discord-invite]
383
392
 
393
+ P.P.S. Maintainers have teeth, and need to pay their dentists.
394
+ After getting laid off in an RIF in March, and filled with many dozens of rejections,
395
+ I'm now spending ~80 hours a week building open source tools.
396
+ I'm hoping to be able to pay for my kids' health insurance this month,
397
+ so if you value the work I am doing, please help.
398
+ I need your support. Consider sponsoring me.
399
+
400
+ [![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]
401
+
402
+ Thank you ☺️
403
+
384
404
  [⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611
405
+ [⛳liberapay-bottom-img]: https://img.shields.io/liberapay/goal/pboling.svg?style=for-the-badge&logo=liberapay&color=a51611
385
406
  [⛳liberapay]: https://liberapay.com/pboling/donate
386
407
  [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
408
+ [🖇sponsor-bottom-img]: https://img.shields.io/badge/Sponsor_Me!-pboling-blue?style=for-the-badge&logo=github
387
409
  [🖇sponsor]: https://github.com/sponsors/pboling
388
410
  [🖇polar-img]: https://img.shields.io/badge/polar-donate-a51611.svg
389
411
  [🖇polar]: https://polar.sh/pboling
@@ -395,17 +417,18 @@ P.S. If you need help️ or want to say thanks, 👇 Join the Discord.
395
417
  [🖇buyme-img]: https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20latte&emoji=&slug=pboling&button_colour=FFDD00&font_colour=000000&font_family=Cookie&outline_colour=000000&coffee_colour=ffffff
396
418
  [🖇buyme]: https://www.buymeacoffee.com/pboling
397
419
  [🖇paypal-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=flat&logo=paypal
420
+ [🖇paypal-bottom-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=for-the-badge&logo=paypal&color=0A0A0A
398
421
  [🖇paypal]: https://www.paypal.com/paypalme/peterboling
399
422
  [🖇floss-funding.dev]: https://floss-funding.dev
400
- [🖇floss-funding-gem]: https://github.com/galtzo-floss/timecop-rspec
423
+ [🖇floss-funding-gem]: https://github.com/galtzo-floss/floss_funding
401
424
  [✉️discord-invite]: https://discord.gg/3qme4XHNKN
402
425
  [✉️discord-invite-img]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge
403
426
 
404
427
  [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780
405
428
  [⛳️gem-namespace]: https://github.com/galtzo-floss/timecop-rspec
406
- [⛳️namespace-img]: https://img.shields.io/badge/namespace-FlossFunding-brightgreen.svg?style=flat&logo=ruby&logoColor=white
429
+ [⛳️namespace-img]: https://img.shields.io/badge/namespace-Timecop%3A%3ARspec-3C2D2D.svg?style=square&logo=ruby&logoColor=white
407
430
  [⛳️gem-name]: https://rubygems.org/gems/timecop-rspec
408
- [⛳️name-img]: https://img.shields.io/badge/name-floss__funding-brightgreen.svg?style=flat&logo=rubygems&logoColor=red
431
+ [⛳️name-img]: https://img.shields.io/badge/name-timecop--rspec-3C2D2D.svg?style=square&logo=rubygems&logoColor=red
409
432
  [🚂maint-blog]: http://www.railsbling.com/tags/timecop-rspec
410
433
  [🚂maint-blog-img]: https://img.shields.io/badge/blog-railsbling-0093D0.svg?style=for-the-badge&logo=rubyonrails&logoColor=orange
411
434
  [🚂maint-contact]: http://www.railsbling.com/contact
@@ -460,7 +483,7 @@ P.S. If you need help️ or want to say thanks, 👇 Join the Discord.
460
483
  [🔑qlty-cov]: https://qlty.sh/gh/galtzo-floss/projects/timecop-rspec/metrics/code?sort=coverageRating
461
484
  [🔑qlty-covi]: https://qlty.sh/gh/galtzo-floss/projects/timecop-rspec/coverage.svg
462
485
  [🔑codecov]: https://codecov.io/gh/galtzo-floss/timecop-rspec
463
- [🔑codecovi♻️]: https://codecov.io/gh/galtzo-floss/timecop-rspec/graph/badge.svg?token=hRnUCPqxMu
486
+ [🔑codecovi♻️]: https://codecov.io/gh/galtzo-floss/timecop-rspec/graph/badge.svg?token=6XnuK8rocd
464
487
  [🔑coveralls]: https://coveralls.io/github/galtzo-floss/timecop-rspec?branch=main
465
488
  [🔑coveralls-img]: https://coveralls.io/repos/github/galtzo-floss/timecop-rspec/badge.svg?branch=main
466
489
  [🖐codeQL]: https://github.com/galtzo-floss/timecop-rspec/security/code-scanning
@@ -525,7 +548,7 @@ P.S. If you need help️ or want to say thanks, 👇 Join the Discord.
525
548
  [🤝cb-pulls]: https://codeberg.org/galtzo-floss/timecop-rspec/pulls
526
549
  [🤝cb-donate]: https://donate.codeberg.org/
527
550
  [🤝contributing]: CONTRIBUTING.md
528
- [🔑codecov-g♻️]: https://codecov.io/gh/galtzo-floss/timecop-rspec/graphs/tree.svg?token=hRnUCPqxMu
551
+ [🔑codecov-g♻️]: https://codecov.io/gh/galtzo-floss/timecop-rspec/graphs/tree.svg?token=6XnuK8rocd
529
552
  [🖐contrib-rocks]: https://contrib.rocks
530
553
  [🖐contributors]: https://github.com/galtzo-floss/timecop-rspec/graphs/contributors
531
554
  [🖐contributors-img]: https://contrib.rocks/image?repo=galtzo-floss/timecop-rspec
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Galtzo FLOSS Rakefile v1.0.7 - 2025-08-17
3
+ # Galtzo FLOSS Rakefile v1.0.9 - 2025-08-18
4
4
  #
5
5
  # CHANGELOG
6
6
  # v1.0.0 - initial release w/ support for rspec, minitest, rubocop, reek, yard, and stone_checksums
@@ -11,6 +11,8 @@
11
11
  # v1.0.5 - add support for halting in Rake tasks with binding.b (from debug gem)
12
12
  # v1.0.6 - add RBS files and checksums to YARD-generated docs site
13
13
  # v1.0.7 - works with vanilla ruby, non-gem, bundler-managed, projects
14
+ # v1.0.8 - improved Dir globs, add back and document rbconfig dependency
15
+ # v1.0.9 - add appraisal:update task to update Appraisal gemfiles and autocorrect with RuboCop Gradual
14
16
  #
15
17
  # MIT License (see License.txt)
16
18
  #
@@ -49,7 +51,8 @@
49
51
  DEBUGGING = ENV.fetch("DEBUG", "false").casecmp("true").zero?
50
52
 
51
53
  # External gems
52
- require "bundler/gem_tasks" if !Dir["*.gemspec"].empty?
54
+ require "bundler/gem_tasks" if !Dir[File.join(__dir__, "*.gemspec")].empty?
55
+ require "rbconfig" if !Dir[File.join(__dir__, "benchmarks")].empty? # Used by `rake bench:run`
53
56
  require "debug" if DEBUGGING
54
57
 
55
58
  defaults = []
@@ -218,6 +221,40 @@ rescue LoadError
218
221
  end
219
222
  end
220
223
 
224
+ # Appraisal tasks
225
+ begin
226
+ require "bundler"
227
+ rescue LoadError
228
+ # ok
229
+ end
230
+
231
+ desc "Update Appraisal gemfiles and run RuboCop Gradual autocorrect"
232
+ task "appraisal:update" do
233
+ bundle = Gem.bindir ? File.join(Gem.bindir, "bundle") : "bundle"
234
+
235
+ run_in_unbundled = proc do
236
+ env = {"BUNDLE_GEMFILE" => "Appraisal.root.gemfile"}
237
+
238
+ # 1) BUNDLE_GEMFILE=Appraisal.root.gemfile bundle
239
+ ok = system(env, bundle)
240
+ abort("appraisal:update failed: bundler install under Appraisal.root.gemfile") unless ok
241
+
242
+ # 2) BUNDLE_GEMFILE=Appraisal.root.gemfile bundle exec appraisal update
243
+ ok = system(env, bundle, "exec", "appraisal", "update")
244
+ abort("appraisal:update failed: bundle exec appraisal update") unless ok
245
+
246
+ # 3) bundle exec rake rubocop_gradual:autocorrect
247
+ ok = system(bundle, "exec", "rake", "rubocop_gradual:autocorrect")
248
+ abort("appraisal:update failed: rubocop_gradual:autocorrect") unless ok
249
+ end
250
+
251
+ if defined?(Bundler)
252
+ Bundler.with_unbundled_env(&run_in_unbundled)
253
+ else
254
+ run_in_unbundled.call
255
+ end
256
+ end
257
+
221
258
  ### RELEASE TASKS
222
259
  # Setup stone_checksums
223
260
  begin