Skip to content

Commit 05168ff

Browse files
committed
Modernize gem.
1 parent ba5f25b commit 05168ff

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+173
-184
lines changed

.github/workflows/rubocop.yaml

+4-16
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Test External
1+
name: RuboCop
22

33
on: [push, pull_request]
44

@@ -9,26 +9,14 @@ env:
99
CONSOLE_OUTPUT: XTerm
1010

1111
jobs:
12-
test:
13-
name: ${{matrix.ruby}} on ${{matrix.os}}
14-
runs-on: ${{matrix.os}}-latest
15-
16-
strategy:
17-
matrix:
18-
os:
19-
- ubuntu
20-
- macos
21-
22-
ruby:
23-
- "3.1"
24-
- "3.2"
25-
- "3.3"
12+
check:
13+
runs-on: ubuntu-latest
2614

2715
steps:
2816
- uses: actions/checkout@v4
2917
- uses: ruby/setup-ruby@v1
3018
with:
31-
ruby-version: ${{matrix.ruby}}
19+
ruby-version: ruby
3220
bundler-cache: true
3321

3422
- name: Run RuboCop

.github/workflows/test-coverage.yaml

+5-3
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,11 @@ jobs:
3333
- name: Run tests
3434
timeout-minutes: 5
3535
run: bundle exec bake test
36-
37-
- uses: actions/upload-artifact@v3
36+
37+
- uses: actions/upload-artifact@v4
3838
with:
39+
include-hidden-files: true
40+
if-no-files-found: error
3941
name: coverage-${{matrix.os}}-${{matrix.ruby}}
4042
path: .covered.db
4143

@@ -50,7 +52,7 @@ jobs:
5052
ruby-version: "3.3"
5153
bundler-cache: true
5254

53-
- uses: actions/download-artifact@v3
55+
- uses: actions/download-artifact@v4
5456

5557
- name: Validate coverage
5658
timeout-minutes: 5

.rubocop.yml

+7
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ Layout/IndentationConsistency:
1616
Enabled: true
1717
EnforcedStyle: normal
1818

19+
Layout/BlockAlignment:
20+
Enabled: true
21+
1922
Layout/EndAlignment:
2023
Enabled: true
2124
EnforcedStyleAlignWith: start_of_line
@@ -44,3 +47,7 @@ Layout/EmptyLinesAroundModuleBody:
4447

4548
Style/FrozenStringLiteralComment:
4649
Enabled: true
50+
51+
Style/StringLiterals:
52+
Enabled: true
53+
EnforcedStyle: double_quotes

bake.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# frozen_string_literal: true
22

33
# Released under the MIT License.
4-
# Copyright, 2020-2024, by Samuel Williams.
4+
# Copyright, 2024, by Samuel Williams.
55

66
# Update the project documentation with the new version number.
77
#

bin/sus

+2-10
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
#!/usr/bin/env ruby
22
# frozen_string_literal: true
33

4-
# require 'stackprof'
5-
# StackProf.start(mode: :wall, interval: 10)
6-
7-
require_relative '../lib/sus/config'
4+
require_relative "../lib/sus/config"
85
config = Sus::Config.load
96

10-
require_relative '../lib/sus'
7+
require_relative "../lib/sus"
118
registry = config.registry
129

1310
if config.verbose?
@@ -24,11 +21,6 @@ config.before_tests(assertions)
2421
registry.call(assertions)
2522
config.after_tests(assertions)
2623

27-
# StackProf.stop
28-
# StackProf.results('sus.stackprof')
29-
#
30-
# $ stackprof sus.stackprof --text --limit 10
31-
3224
unless assertions.passed?
3325
exit(1)
3426
end

bin/sus-host

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
#!/usr/bin/env ruby
22
# frozen_string_literal: true
33

4-
require 'json'
4+
require "json"
55

6-
require_relative '../lib/sus/config'
6+
require_relative "../lib/sus/config"
77
config = Sus::Config.load
88

9-
require_relative '../lib/sus'
9+
require_relative "../lib/sus"
1010

1111
verbose = false
1212
guard = Thread::Mutex.new
1313

14-
require 'etc'
14+
require "etc"
1515
count = Etc.nprocessors
1616

1717
$stdout.sync = true
1818

19-
require_relative '../lib/sus/output/structured'
19+
require_relative "../lib/sus/output/structured"
2020

2121
input = $stdin.dup
2222
$stdin.reopen(File::NULL)
@@ -36,7 +36,7 @@ end
3636
while line = input.gets
3737
message = JSON.parse(line)
3838

39-
if tests = message['run']
39+
if tests = message["run"]
4040
jobs = Thread::Queue.new
4141
results = Thread::Queue.new
4242

bin/sus-parallel

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
#!/usr/bin/env ruby
22
# frozen_string_literal: true
33

4-
require_relative '../lib/sus/config'
4+
require_relative "../lib/sus/config"
55
config = Sus::Config.load
66

77
Result = Struct.new(:job, :assertions)
88

9-
require_relative '../lib/sus'
10-
require_relative '../lib/sus/output'
9+
require_relative "../lib/sus"
10+
require_relative "../lib/sus/output"
1111
jobs = Thread::Queue.new
1212
results = Thread::Queue.new
1313
guard = Thread::Mutex.new
1414
progress = Sus::Output::Progress.new(config.output)
1515

16-
require 'etc'
16+
require "etc"
1717
count = Etc.nprocessors
1818

1919
loader = Thread.new do

bin/sus-tree

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
#!/usr/bin/env ruby
22
# frozen_string_literal: true
33

4-
require 'json'
4+
require "json"
55

6-
require_relative '../lib/sus/config'
6+
require_relative "../lib/sus/config"
77
config = Sus::Config.load
88

9-
require_relative '../lib/sus'
9+
require_relative "../lib/sus"
1010

1111
verbose = false
1212
registry = config.registry

config/sus.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# frozen_string_literal: true
22

33
# Released under the MIT License.
4-
# Copyright, 2022, by Samuel Williams.
4+
# Copyright, 2022-2024, by Samuel Williams.
55

6-
require 'covered/sus'
6+
require "covered/sus"
77
include Covered::Sus

fixtures/fixtures.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# frozen_string_literal: true
22

33
# Released under the MIT License.
4-
# Copyright, 2023, by Samuel Williams.
4+
# Copyright, 2023-2024, by Samuel Williams.
55

66
module Fixtures
77
def fixtures_path(*path)
8-
File.expand_path(File.join(__dir__, 'fixtures', *path))
8+
File.expand_path(File.join(__dir__, "fixtures", *path))
99
end
1010
end

lib/sus.rb

+16-16
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
# frozen_string_literal: true
22

33
# Released under the MIT License.
4-
# Copyright, 2021-2023, by Samuel Williams.
4+
# Copyright, 2021-2024, by Samuel Williams.
55

6-
require_relative 'sus/version'
7-
require_relative 'sus/config'
8-
require_relative 'sus/registry'
9-
require_relative 'sus/assertions'
10-
require_relative 'sus/tree'
6+
require_relative "sus/version"
7+
require_relative "sus/config"
8+
require_relative "sus/registry"
9+
require_relative "sus/assertions"
10+
require_relative "sus/tree"
1111

12-
require_relative 'sus/expect'
13-
require_relative 'sus/be'
14-
require_relative 'sus/be_truthy'
15-
require_relative 'sus/be_within'
12+
require_relative "sus/expect"
13+
require_relative "sus/be"
14+
require_relative "sus/be_truthy"
15+
require_relative "sus/be_within"
1616

17-
require_relative 'sus/mock'
18-
require_relative 'sus/receive'
17+
require_relative "sus/mock"
18+
require_relative "sus/receive"
1919

20-
require_relative 'sus/raise_exception'
21-
require_relative 'sus/have_duration'
22-
require_relative 'sus/have'
20+
require_relative "sus/raise_exception"
21+
require_relative "sus/have_duration"
22+
require_relative "sus/have"
2323

24-
require_relative 'sus/filter'
24+
require_relative "sus/filter"

lib/sus/assertions.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
# Released under the MIT License.
44
# Copyright, 2021-2024, by Samuel Williams.
55

6-
require_relative 'output'
7-
require_relative 'clock'
6+
require_relative "output"
7+
require_relative "clock"
88

9-
require_relative 'output/backtrace'
9+
require_relative "output/backtrace"
1010

1111
module Sus
1212
class Assertions

lib/sus/base.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# frozen_string_literal: true
22

33
# Released under the MIT License.
4-
# Copyright, 2021-2023, by Samuel Williams.
4+
# Copyright, 2021-2024, by Samuel Williams.
55

6-
require_relative 'context'
6+
require_relative "context"
77

88
module Sus
99
# The base test case class. We need to be careful about what local state is stored.

lib/sus/config.rb

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# frozen_string_literal: true
22

33
# Released under the MIT License.
4-
# Copyright, 2022-2023, by Samuel Williams.
4+
# Copyright, 2022-2024, by Samuel Williams.
55

6-
require_relative 'clock'
7-
require_relative 'registry'
6+
require_relative "clock"
7+
require_relative "registry"
88

99
module Sus
1010
class Config
@@ -28,7 +28,7 @@ def self.load(root: Dir.pwd, arguments: ARGV)
2828
end
2929

3030
options = {
31-
verbose: !!arguments.delete('--verbose')
31+
verbose: !!arguments.delete("--verbose")
3232
}
3333

3434
return derived.new(root, arguments, **options)
@@ -53,8 +53,8 @@ def add_load_path(path)
5353
end
5454

5555
def add_default_load_paths
56-
add_load_path('lib')
57-
add_load_path('fixtures')
56+
add_load_path("lib")
57+
add_load_path("fixtures")
5858
end
5959

6060
attr :root

lib/sus/context.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
# Released under the MIT License.
44
# Copyright, 2021-2024, by Samuel Williams.
55

6-
require_relative 'assertions'
7-
require_relative 'identity'
6+
require_relative "assertions"
7+
require_relative "identity"
88

99
module Sus
1010
module Context

lib/sus/describe.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# frozen_string_literal: true
22

33
# Released under the MIT License.
4-
# Copyright, 2021-2023, by Samuel Williams.
4+
# Copyright, 2021-2024, by Samuel Williams.
55

6-
require_relative 'context'
6+
require_relative "context"
77

88
module Sus
99
module Describe

lib/sus/file.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# frozen_string_literal: true
22

33
# Released under the MIT License.
4-
# Copyright, 2021-2023, by Samuel Williams.
4+
# Copyright, 2021-2024, by Samuel Williams.
55
# Copyright, 2022, by Brad Schrag.
66

7-
require_relative 'context'
7+
require_relative "context"
88

99
# This has to be done at the top level. It allows us to define constants within the given class while still retaining top-level constant resolution.
1010
Sus::TOPLEVEL_CLASS_EVAL = ->(__klass__, __path__){__klass__.class_eval(::File.read(__path__), __path__)}

lib/sus/filter.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# frozen_string_literal: true
22

33
# Released under the MIT License.
4-
# Copyright, 2021-2023, by Samuel Williams.
4+
# Copyright, 2021-2024, by Samuel Williams.
55

66
module Sus
77
# Provides a way to filter the registry according to the suffix on loaded paths.
@@ -48,7 +48,7 @@ def initialize(registry = Registry.new)
4848
end
4949

5050
def load(target)
51-
path, filter = target.split(':', 2)
51+
path, filter = target.split(":", 2)
5252

5353
@registry.load(path)
5454

lib/sus/have.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
# Released under the MIT License.
44
# Copyright, 2022-2024, by Samuel Williams.
55

6-
require_relative 'have/all'
7-
require_relative 'have/any'
6+
require_relative "have/all"
7+
require_relative "have/any"
88

99
module Sus
1010
module Have

lib/sus/identity.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# frozen_string_literal: true
22

33
# Released under the MIT License.
4-
# Copyright, 2021-2023, by Samuel Williams.
4+
# Copyright, 2021-2024, by Samuel Williams.
55

66
module Sus
77
class Identity
@@ -82,7 +82,7 @@ def key
8282
# For a specific leaf node, the last part is not unique, i.e. it must be identified explicitly.
8383
append_unique_key(key, @unique == true ? false : @unique)
8484

85-
@key = key.join(':')
85+
@key = key.join(":")
8686
end
8787

8888
return @key

0 commit comments

Comments
 (0)