slayer 0.5.4 → 0.6.1
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 +4 -4
- data/.githooks/pre-push +3 -3
- data/.github/workflows/publish.yml +60 -0
- data/.github/workflows/test.yml +2 -4
- data/.ruby-version +1 -0
- data/.standard.yml +11 -0
- data/Gemfile +1 -1
- data/README.md +15 -2
- data/Rakefile +9 -3
- data/bin/release +39 -0
- data/lib/ext/string_ext.rb +2 -2
- data/lib/slayer/command.rb +14 -18
- data/lib/slayer/compat/compat_040.rb +11 -11
- data/lib/slayer/compat/minitest_compat_040.rb +5 -5
- data/lib/slayer/compat/rspec_compat_040.rb +1 -1
- data/lib/slayer/cops/return_matcher.rb +7 -7
- data/lib/slayer/errors.rb +2 -2
- data/lib/slayer/form.rb +1 -1
- data/lib/slayer/minitest.rb +5 -5
- data/lib/slayer/result.rb +2 -2
- data/lib/slayer/result_matcher.rb +12 -12
- data/lib/slayer/rspec.rb +6 -6
- data/lib/slayer/version.rb +1 -1
- data/lib/slayer.rb +7 -7
- data/slayer.gemspec +28 -24
- metadata +63 -50
- data/.github/workflows/release.yml +0 -27
- data/.rubocop.yml +0 -64
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b6f82c242f8078a15915b6f27c700b7bc009a9d6548f24bf90fd17f7b9c5ab97
|
|
4
|
+
data.tar.gz: d1a7431e64c408467d91952f0370e07fb4e6793087a6a58e6ffa6ce15f72aa05
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 42c3853a16eb179369376edd9c96afd813904e245848511c6dc242da793846c897f90e6cdce5eb5fbbd190017f43001a1bbfccb33f9cfd6040581334056e68d9
|
|
7
|
+
data.tar.gz: 8b3c8268ee16209f7a752374f8048362b6b38f73c3382b2f6a6791ad1aa834deb281f65e4438c6c7c4697807c6b5a8c324f8005f3ce9e5fa5b47e92dc3661bf9
|
data/.githooks/pre-push
CHANGED
|
@@ -17,12 +17,12 @@ if [ $? -ne 0 ]; then
|
|
|
17
17
|
fi
|
|
18
18
|
|
|
19
19
|
echo
|
|
20
|
-
echo "Starting
|
|
21
|
-
bundle exec
|
|
20
|
+
echo "Starting standard"
|
|
21
|
+
bundle exec standardrb
|
|
22
22
|
if [ $? -ne 0 ]; then
|
|
23
23
|
echo ""
|
|
24
24
|
echo ""
|
|
25
|
-
echo "
|
|
25
|
+
echo "Standard failed; push aborted!"
|
|
26
26
|
exit 1
|
|
27
27
|
fi
|
|
28
28
|
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
name: Publish
|
|
2
|
+
run-name: Publish ${{ github.ref_name }}
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
push:
|
|
6
|
+
tags:
|
|
7
|
+
- "v*"
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: write
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
publish:
|
|
14
|
+
name: Release ${{ github.ref_name }}
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
|
|
17
|
+
steps:
|
|
18
|
+
- name: Checkout
|
|
19
|
+
uses: actions/checkout@v6
|
|
20
|
+
|
|
21
|
+
- name: Setup Ruby
|
|
22
|
+
uses: ruby/setup-ruby@v1
|
|
23
|
+
with:
|
|
24
|
+
bundler-cache: true
|
|
25
|
+
|
|
26
|
+
- name: Build gem
|
|
27
|
+
run: bundle exec rake build
|
|
28
|
+
|
|
29
|
+
- name: Configure RubyGems credentials
|
|
30
|
+
run: |
|
|
31
|
+
mkdir -p ~/.gem
|
|
32
|
+
cat > ~/.gem/credentials <<EOF
|
|
33
|
+
---
|
|
34
|
+
:rubygems_api_key: ${{ secrets.RUBYGEMS_AUTH_TOKEN }}
|
|
35
|
+
EOF
|
|
36
|
+
chmod 0600 ~/.gem/credentials
|
|
37
|
+
|
|
38
|
+
- name: Publish gem
|
|
39
|
+
run: gem push pkg/*.gem
|
|
40
|
+
|
|
41
|
+
- name: Create GitHub Release
|
|
42
|
+
env:
|
|
43
|
+
GH_TOKEN: ${{ github.token }}
|
|
44
|
+
run: |
|
|
45
|
+
TAG="${GITHUB_REF_NAME}"
|
|
46
|
+
|
|
47
|
+
if [[ "$TAG" =~ \.(pre|rc|beta)(\.|$) ]]; then
|
|
48
|
+
gh release create \
|
|
49
|
+
"$TAG" \
|
|
50
|
+
pkg/*.gem \
|
|
51
|
+
--title "$TAG" \
|
|
52
|
+
--generate-notes \
|
|
53
|
+
--prerelease
|
|
54
|
+
else
|
|
55
|
+
gh release create \
|
|
56
|
+
"$TAG" \
|
|
57
|
+
pkg/*.gem \
|
|
58
|
+
--title "$TAG" \
|
|
59
|
+
--generate-notes
|
|
60
|
+
fi
|
data/.github/workflows/test.yml
CHANGED
|
@@ -12,7 +12,7 @@ jobs:
|
|
|
12
12
|
|
|
13
13
|
strategy:
|
|
14
14
|
matrix:
|
|
15
|
-
ruby-version: ['
|
|
15
|
+
ruby-version: ['4.0', '3.4', '3.3']
|
|
16
16
|
|
|
17
17
|
steps:
|
|
18
18
|
- uses: actions/checkout@v4
|
|
@@ -22,7 +22,5 @@ jobs:
|
|
|
22
22
|
ruby-version: ${{ matrix.ruby-version }}
|
|
23
23
|
- name: Install dependencies
|
|
24
24
|
run: bundle install
|
|
25
|
-
- name:
|
|
26
|
-
run: rubocop
|
|
27
|
-
- name: Run tests
|
|
25
|
+
- name: Lint and test
|
|
28
26
|
run: bundle exec rake
|
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.4
|
data/.standard.yml
ADDED
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -421,12 +421,25 @@ require 'slayer/compat/rspec_compat_040'
|
|
|
421
421
|
|
|
422
422
|
## Development
|
|
423
423
|
|
|
424
|
-
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake
|
|
424
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `bundle exec rake` to run the tests and lint checks. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
|
425
425
|
|
|
426
|
-
To install this gem onto your local machine, run `bundle exec rake install`.
|
|
426
|
+
To install this gem onto your local machine, run `bundle exec rake install`.
|
|
427
427
|
|
|
428
428
|
To generate documentation run `yard`. To view undocumented files run `yard stats --list-undoc`.
|
|
429
429
|
|
|
430
|
+
### Releasing
|
|
431
|
+
|
|
432
|
+
Create a release from `main`:
|
|
433
|
+
|
|
434
|
+
```sh
|
|
435
|
+
bin/release {major|minor|patch|pre}
|
|
436
|
+
git push --follow-tags
|
|
437
|
+
```
|
|
438
|
+
|
|
439
|
+
The release script validates the repository, bumps the version, creates a git tag.
|
|
440
|
+
|
|
441
|
+
Publishing to RubyGems and creating a GitHub Release are handled automatically by GitHub Actions.
|
|
442
|
+
|
|
430
443
|
### Development w/ Docker
|
|
431
444
|
|
|
432
445
|
$ docker-compose up
|
data/Rakefile
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
require
|
|
2
|
-
require
|
|
1
|
+
require "bundler/gem_tasks"
|
|
2
|
+
require "rspec/core/rake_task"
|
|
3
3
|
|
|
4
4
|
RSpec::Core::RakeTask.new(:spec)
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
begin
|
|
7
|
+
require "standard/rake"
|
|
8
|
+
rescue LoadError
|
|
9
|
+
# Standard not available
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
task default: [:standard, :spec]
|
data/bin/release
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
set -euo pipefail
|
|
4
|
+
|
|
5
|
+
BUMP_TYPE="${1:-}"
|
|
6
|
+
|
|
7
|
+
case "$BUMP_TYPE" in
|
|
8
|
+
major|minor|patch|pre)
|
|
9
|
+
;;
|
|
10
|
+
*)
|
|
11
|
+
echo "Usage: bin/release [major|minor|patch|pre]" >&2
|
|
12
|
+
exit 1
|
|
13
|
+
;;
|
|
14
|
+
esac
|
|
15
|
+
|
|
16
|
+
run() {
|
|
17
|
+
echo "==> $*"
|
|
18
|
+
"$@"
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if [ -n "$(git status --porcelain)" ]; then
|
|
22
|
+
echo "Git working tree is not clean" >&2
|
|
23
|
+
exit 1
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
CURRENT_BRANCH="$(git branch --show-current)"
|
|
27
|
+
|
|
28
|
+
if [ "$CURRENT_BRANCH" != "main" ]; then
|
|
29
|
+
echo "Releases must be cut from main" >&2
|
|
30
|
+
exit 1
|
|
31
|
+
fi
|
|
32
|
+
|
|
33
|
+
run bundle exec bump "$BUMP_TYPE" --tag
|
|
34
|
+
|
|
35
|
+
VERSION="$(bundle exec bump current | awk '{print $NF}')"
|
|
36
|
+
TAG="v${VERSION}"
|
|
37
|
+
|
|
38
|
+
echo
|
|
39
|
+
echo "Released $TAG"
|
data/lib/ext/string_ext.rb
CHANGED
data/lib/slayer/command.rb
CHANGED
|
@@ -2,16 +2,15 @@ module Slayer
|
|
|
2
2
|
class Command
|
|
3
3
|
class << self
|
|
4
4
|
def call(*args, **kwargs, &block)
|
|
5
|
-
instance =
|
|
5
|
+
instance = new
|
|
6
6
|
|
|
7
7
|
res = __get_result(instance, *args, **kwargs, &block)
|
|
8
8
|
handle_match(res, instance, block) if block_given?
|
|
9
9
|
|
|
10
10
|
raise CommandNotImplementedError unless res.is_a? Result
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
res
|
|
13
13
|
end
|
|
14
|
-
ruby2_keywords :call if respond_to?(:ruby2_keywords, true)
|
|
15
14
|
|
|
16
15
|
def ok(value: nil, status: :default, message: nil)
|
|
17
16
|
Result.new(value, status, message)
|
|
@@ -22,17 +21,17 @@ module Slayer
|
|
|
22
21
|
end
|
|
23
22
|
|
|
24
23
|
def err!(value: nil, status: :default, message: nil)
|
|
25
|
-
unless ENV[
|
|
26
|
-
warn
|
|
24
|
+
unless ENV["SUPPRESS_SLAYER_WARNINGS"]
|
|
25
|
+
warn "[DEPRECATION] `err!` is deprecated. Please use `return err` instead."
|
|
27
26
|
end
|
|
28
27
|
raise ResultFailureError, err(value: value, status: status, message: message)
|
|
29
28
|
end
|
|
30
29
|
|
|
31
|
-
def __get_result(instance,
|
|
30
|
+
def __get_result(instance, ...)
|
|
32
31
|
res = nil
|
|
33
32
|
|
|
34
33
|
begin
|
|
35
|
-
res = instance.call(
|
|
34
|
+
res = instance.call(...)
|
|
36
35
|
rescue ResultFailureError => e
|
|
37
36
|
res = e.result
|
|
38
37
|
end
|
|
@@ -49,7 +48,7 @@ module Slayer
|
|
|
49
48
|
|
|
50
49
|
# raise error if not all defaults were handled
|
|
51
50
|
unless matcher.handled_defaults?
|
|
52
|
-
raise(ResultNotHandledError,
|
|
51
|
+
raise(ResultNotHandledError, "The pass or fail condition of a result was not handled")
|
|
53
52
|
end
|
|
54
53
|
|
|
55
54
|
begin
|
|
@@ -60,20 +59,17 @@ module Slayer
|
|
|
60
59
|
end
|
|
61
60
|
end
|
|
62
61
|
|
|
63
|
-
def ok(
|
|
64
|
-
self.class.ok(
|
|
62
|
+
def ok(...)
|
|
63
|
+
self.class.ok(...)
|
|
65
64
|
end
|
|
66
|
-
ruby2_keywords :ok if respond_to?(:ruby2_keywords, true)
|
|
67
65
|
|
|
68
|
-
def err(
|
|
69
|
-
self.class.err(
|
|
66
|
+
def err(...)
|
|
67
|
+
self.class.err(...)
|
|
70
68
|
end
|
|
71
|
-
ruby2_keywords :err if respond_to?(:ruby2_keywords, true)
|
|
72
69
|
|
|
73
|
-
def err!(
|
|
74
|
-
self.class.err!(
|
|
70
|
+
def err!(...)
|
|
71
|
+
self.class.err!(...)
|
|
75
72
|
end
|
|
76
|
-
ruby2_keywords :err! if respond_to?(:ruby2_keywords, true)
|
|
77
73
|
|
|
78
74
|
def try!(value: nil, status: nil, message: nil)
|
|
79
75
|
r = yield
|
|
@@ -84,7 +80,7 @@ module Slayer
|
|
|
84
80
|
end
|
|
85
81
|
|
|
86
82
|
def call
|
|
87
|
-
raise NotImplementedError,
|
|
83
|
+
raise NotImplementedError, "Commands must define method `#call`."
|
|
88
84
|
end
|
|
89
85
|
end
|
|
90
86
|
end
|
|
@@ -4,48 +4,48 @@ module Slayer
|
|
|
4
4
|
class Command
|
|
5
5
|
class << self
|
|
6
6
|
def pass(value: nil, status: :default, message: nil)
|
|
7
|
-
warn
|
|
7
|
+
warn "[DEPRECATION] `pass` is deprecated. Please use `ok` instead." unless ENV["SUPPRESS_SLAYER_WARNINGS"]
|
|
8
8
|
ok(value: value, status: status, message: message)
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
def flunk(value: nil, status: :default, message: nil)
|
|
12
|
-
warn
|
|
12
|
+
warn "[DEPRECATION] `flunk` is deprecated. Please use `err` instead." unless ENV["SUPPRESS_SLAYER_WARNINGS"]
|
|
13
13
|
err(value: value, status: status, message: message)
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def flunk!(value: nil, status: :default, message: nil)
|
|
17
|
-
unless ENV[
|
|
18
|
-
warn
|
|
17
|
+
unless ENV["SUPPRESS_SLAYER_WARNINGS"]
|
|
18
|
+
warn "[DEPRECATION] `flunk!` is deprecated. Please use `return err` instead."
|
|
19
19
|
end
|
|
20
20
|
err!(value: value, status: status, message: message)
|
|
21
21
|
end
|
|
22
22
|
end
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
alias_method :pass, :ok
|
|
25
|
+
alias_method :flunk, :err
|
|
26
|
+
alias_method :flunk!, :err!
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
class Result
|
|
30
30
|
def success?
|
|
31
|
-
warn
|
|
31
|
+
warn "[DEPRECATION] `success?` is deprecated. Please use `ok?` instead." unless ENV["SUPPRESS_SLAYER_WARNINGS"]
|
|
32
32
|
ok?
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
def failure?
|
|
36
|
-
warn
|
|
36
|
+
warn "[DEPRECATION] `failure?` is deprecated. Please use `err?` instead." unless ENV["SUPPRESS_SLAYER_WARNINGS"]
|
|
37
37
|
err?
|
|
38
38
|
end
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
class ResultMatcher
|
|
42
42
|
def pass(...)
|
|
43
|
-
warn
|
|
43
|
+
warn "[DEPRECATION] `pass` is deprecated. Please use `ok` instead." unless ENV["SUPPRESS_SLAYER_WARNINGS"]
|
|
44
44
|
ok(...)
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
def fail(...)
|
|
48
|
-
warn
|
|
48
|
+
warn "[DEPRECATION] `fail` is deprecated. Please use `err` instead." unless ENV["SUPPRESS_SLAYER_WARNINGS"]
|
|
49
49
|
err(...)
|
|
50
50
|
end
|
|
51
51
|
end
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# :nocov:
|
|
2
2
|
|
|
3
|
-
require
|
|
3
|
+
require "minitest/assertions"
|
|
4
4
|
|
|
5
5
|
module Minitest::Assertions
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
alias_method :assert_success, :assert_ok
|
|
7
|
+
alias_method :refute_failed, :assert_ok
|
|
8
|
+
alias_method :assert_failed, :refute_ok
|
|
9
|
+
alias_method :refute_success, :refute_ok
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
# :nocov:
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
require
|
|
1
|
+
require "rubocop"
|
|
2
2
|
|
|
3
3
|
module Slayer
|
|
4
4
|
class CommandReturn < RuboCop::Cop::Base
|
|
5
|
-
def_node_search :explicit_returns,
|
|
6
|
-
def_node_matcher :slayer_command?,
|
|
7
|
-
def_node_matcher :is_call_to_pass?,
|
|
8
|
-
def_node_matcher :is_call_to_flunk?,
|
|
5
|
+
def_node_search :explicit_returns, "return"
|
|
6
|
+
def_node_matcher :slayer_command?, "(class (const (const nil :Slayer) :Command) _)"
|
|
7
|
+
def_node_matcher :is_call_to_pass?, "(send nil :pass ?)"
|
|
8
|
+
def_node_matcher :is_call_to_flunk?, "(send nil :flunk! ?)"
|
|
9
9
|
|
|
10
10
|
def on_def(node)
|
|
11
11
|
return unless node.method?(:call)
|
|
@@ -27,7 +27,7 @@ module Slayer
|
|
|
27
27
|
# Continue traversing `node` until you get to the last expression.
|
|
28
28
|
# If that expression is a call to `.can_see?`, then add an offense.
|
|
29
29
|
def implicit_returns(_node)
|
|
30
|
-
raise
|
|
30
|
+
raise "Not Implemented Yet"
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
def in_slayer_command?(node)
|
|
@@ -39,7 +39,7 @@ module Slayer
|
|
|
39
39
|
return if is_call_to_flunk? node
|
|
40
40
|
|
|
41
41
|
add_offense(return_node || node,
|
|
42
|
-
|
|
42
|
+
message: "call in Slayer::Command must return the result of `pass` or call `flunk!`")
|
|
43
43
|
end
|
|
44
44
|
end
|
|
45
45
|
end
|
data/lib/slayer/errors.rb
CHANGED
|
@@ -10,8 +10,8 @@ module Slayer
|
|
|
10
10
|
|
|
11
11
|
class CommandNotImplementedError < StandardError
|
|
12
12
|
def initialize(message = nil)
|
|
13
|
-
message ||=
|
|
14
|
-
super
|
|
13
|
+
message ||= "Command implementation must return a <Slayer::Result> object"
|
|
14
|
+
super
|
|
15
15
|
end
|
|
16
16
|
end
|
|
17
17
|
|
data/lib/slayer/form.rb
CHANGED
data/lib/slayer/minitest.rb
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# :nocov:
|
|
2
|
-
require
|
|
2
|
+
require "minitest/assertions"
|
|
3
3
|
# rubocop:disable Metrics/MethodLength
|
|
4
4
|
module Minitest::Assertions
|
|
5
5
|
def assert_ok(result, status: nil, message: nil, value: nil)
|
|
6
|
-
assert result.ok?,
|
|
6
|
+
assert result.ok?, "Expected command to succeed."
|
|
7
7
|
|
|
8
8
|
unless status.nil?
|
|
9
9
|
assert_equal(
|
|
@@ -29,10 +29,10 @@ module Minitest::Assertions
|
|
|
29
29
|
)
|
|
30
30
|
end
|
|
31
31
|
end
|
|
32
|
-
|
|
32
|
+
alias_method :refute_err, :assert_ok
|
|
33
33
|
|
|
34
34
|
def refute_ok(result, status: nil, message: nil, value: nil)
|
|
35
|
-
refute result.ok?,
|
|
35
|
+
refute result.ok?, "Expected command to fail."
|
|
36
36
|
|
|
37
37
|
unless status.nil?
|
|
38
38
|
refute_equal(
|
|
@@ -58,7 +58,7 @@ module Minitest::Assertions
|
|
|
58
58
|
)
|
|
59
59
|
end
|
|
60
60
|
end
|
|
61
|
-
|
|
61
|
+
alias_method :assert_err, :refute_ok
|
|
62
62
|
end
|
|
63
63
|
# rubocop:enable Style/Documentation
|
|
64
64
|
# rubocop:enable Metrics/MethodLength
|
data/lib/slayer/result.rb
CHANGED
|
@@ -110,11 +110,11 @@ module Slayer
|
|
|
110
110
|
|
|
111
111
|
# These are set to false if they are never set. If they are set to `nil` that
|
|
112
112
|
# means the block intentionally passed `nil` as the block to be executed.
|
|
113
|
-
@matching_block
|
|
114
|
-
@matching_all
|
|
115
|
-
@default_block
|
|
116
|
-
@default_all
|
|
117
|
-
@ensure_block
|
|
113
|
+
@matching_block = false
|
|
114
|
+
@matching_all = false
|
|
115
|
+
@default_block = false
|
|
116
|
+
@default_all = false
|
|
117
|
+
@ensure_block = false
|
|
118
118
|
end
|
|
119
119
|
|
|
120
120
|
# Provide a block that should be invoked if the {Result} is a success.
|
|
@@ -129,11 +129,11 @@ module Slayer
|
|
|
129
129
|
statuses << :default if statuses.empty?
|
|
130
130
|
@handled_default_ok ||= statuses.include?(:default)
|
|
131
131
|
|
|
132
|
-
block_is_match
|
|
132
|
+
block_is_match = @result.ok? && statuses.include?(@status)
|
|
133
133
|
block_is_default = @result.ok? && statuses.include?(:default)
|
|
134
134
|
|
|
135
135
|
@matching_block = block if block_is_match
|
|
136
|
-
@default_block
|
|
136
|
+
@default_block = block if block_is_default
|
|
137
137
|
end
|
|
138
138
|
|
|
139
139
|
# Provide a block that should be invoked if the {Result} is a failure.
|
|
@@ -148,11 +148,11 @@ module Slayer
|
|
|
148
148
|
statuses << :default if statuses.empty?
|
|
149
149
|
@handled_default_err ||= statuses.include?(:default)
|
|
150
150
|
|
|
151
|
-
block_is_match
|
|
151
|
+
block_is_match = @result.err? && statuses.include?(@status)
|
|
152
152
|
block_is_default = @result.err? && statuses.include?(:default)
|
|
153
153
|
|
|
154
154
|
@matching_block = block if block_is_match
|
|
155
|
-
@default_block
|
|
155
|
+
@default_block = block if block_is_default
|
|
156
156
|
end
|
|
157
157
|
|
|
158
158
|
# Provide a block that should be invoked for any {Result}. This has a lower precedence that
|
|
@@ -169,11 +169,11 @@ module Slayer
|
|
|
169
169
|
@handled_default_ok ||= statuses.include?(:default)
|
|
170
170
|
@handled_default_err ||= statuses.include?(:default)
|
|
171
171
|
|
|
172
|
-
block_is_match
|
|
172
|
+
block_is_match = statuses.include?(@status)
|
|
173
173
|
block_is_default = statuses.include?(:default)
|
|
174
174
|
|
|
175
175
|
@matching_all = block if block_is_match
|
|
176
|
-
@default_all
|
|
176
|
+
@default_all = block if block_is_default
|
|
177
177
|
end
|
|
178
178
|
|
|
179
179
|
# Provide a block that should be always be invoked after other blocks have executed. This block
|
|
@@ -186,7 +186,7 @@ module Slayer
|
|
|
186
186
|
#
|
|
187
187
|
# @api private
|
|
188
188
|
def handled_defaults?
|
|
189
|
-
|
|
189
|
+
@handled_default_ok && @handled_default_err
|
|
190
190
|
end
|
|
191
191
|
|
|
192
192
|
# Executes the provided block that best matched the {Result}. If no block matched
|
data/lib/slayer/rspec.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
require
|
|
2
|
-
require
|
|
1
|
+
require "rspec/mocks"
|
|
2
|
+
require "rspec/expectations"
|
|
3
3
|
|
|
4
4
|
# rubocop:disable Metrics/BlockLength
|
|
5
5
|
RSpec::Matchers.define :be_ok_result do
|
|
@@ -31,7 +31,7 @@ RSpec::Matchers.define :be_ok_result do
|
|
|
31
31
|
|
|
32
32
|
# :nocov:
|
|
33
33
|
failure_message do |result|
|
|
34
|
-
return
|
|
34
|
+
return "expected command to succeed" if @status.nil? && @value.nil? && @message.nil?
|
|
35
35
|
return "expected command to succeed with status: :#{@status}, but got: :#{result.status}" unless @status.nil?
|
|
36
36
|
return "expected command to succeed with value: #{@value}, but got: #{result.value}" unless @value.nil?
|
|
37
37
|
return "expected command to succeed with message: #{@message}, but got: :#{result.message}" unless @message.nil?
|
|
@@ -42,7 +42,7 @@ RSpec::Matchers.define :be_ok_result do
|
|
|
42
42
|
return "expected command not to have value: #{@value}" if !@value.nil? && result.value == @value
|
|
43
43
|
return "expected command not to have status :#{@status}" if !@status.nil? && result.status == @status
|
|
44
44
|
|
|
45
|
-
return
|
|
45
|
+
return "expected command to fail"
|
|
46
46
|
end
|
|
47
47
|
# :nocov:
|
|
48
48
|
end
|
|
@@ -76,7 +76,7 @@ RSpec::Matchers.define :be_err_result do
|
|
|
76
76
|
|
|
77
77
|
# :nocov:
|
|
78
78
|
failure_message do |result|
|
|
79
|
-
return
|
|
79
|
+
return "expected command to fail" if @status.nil? && @value.nil? && @message.nil?
|
|
80
80
|
return "expected command to fail with status: :#{@status}, but got: :#{result.status}" unless @status.nil?
|
|
81
81
|
return "expected command to fail with value: #{@value}, but got: #{result.value}" unless @value.nil?
|
|
82
82
|
return "expected command to fail with message: #{@message}, but got: :#{result.message}" unless @message.nil?
|
|
@@ -87,7 +87,7 @@ RSpec::Matchers.define :be_err_result do
|
|
|
87
87
|
return "expected command to have value: #{@value}" if !@value.nil? && result.value == @value
|
|
88
88
|
return "expected command to have status :#{@status}" if !@status.nil? && result.status == @status
|
|
89
89
|
|
|
90
|
-
return
|
|
90
|
+
return "expected command to succeed"
|
|
91
91
|
end
|
|
92
92
|
# :nocov:
|
|
93
93
|
end
|
data/lib/slayer/version.rb
CHANGED
data/lib/slayer.rb
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
require
|
|
1
|
+
require "ext/string_ext" unless defined?(Rails)
|
|
2
2
|
|
|
3
|
-
require
|
|
4
|
-
require
|
|
5
|
-
require
|
|
6
|
-
require
|
|
7
|
-
require
|
|
8
|
-
require
|
|
3
|
+
require "slayer/version"
|
|
4
|
+
require "slayer/errors"
|
|
5
|
+
require "slayer/result"
|
|
6
|
+
require "slayer/result_matcher"
|
|
7
|
+
require "slayer/command"
|
|
8
|
+
require "slayer/form"
|
data/slayer.gemspec
CHANGED
|
@@ -1,32 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
|
1
|
+
lib = File.expand_path("lib", __dir__)
|
|
3
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
-
require
|
|
3
|
+
require "slayer/version"
|
|
5
4
|
|
|
6
5
|
Gem::Specification.new do |spec|
|
|
7
|
-
spec.name
|
|
8
|
-
spec.version
|
|
9
|
-
spec.authors
|
|
10
|
-
spec.email
|
|
6
|
+
spec.name = "slayer"
|
|
7
|
+
spec.version = Slayer::VERSION
|
|
8
|
+
spec.authors = ["Wyatt Kirby", "Noah Callaway"]
|
|
9
|
+
spec.email = ["wyatt@apsis.io", "noah@apsis.io"]
|
|
10
|
+
|
|
11
|
+
spec.summary = "A killer service layer"
|
|
12
|
+
spec.homepage = "http://www.apsis.io"
|
|
13
|
+
spec.license = "MIT"
|
|
14
|
+
|
|
15
|
+
spec.required_ruby_version = ">= 3.3.0"
|
|
11
16
|
|
|
12
|
-
spec.
|
|
13
|
-
spec.
|
|
14
|
-
spec.
|
|
17
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
18
|
+
spec.bindir = "exe"
|
|
19
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
20
|
+
spec.require_paths = ["lib"]
|
|
15
21
|
|
|
16
|
-
spec.
|
|
17
|
-
spec.
|
|
18
|
-
spec.
|
|
19
|
-
spec.require_paths = ['lib']
|
|
22
|
+
spec.add_dependency "bigdecimal"
|
|
23
|
+
spec.add_dependency "ostruct"
|
|
24
|
+
spec.add_dependency "virtus", "~> 2.0"
|
|
20
25
|
|
|
21
|
-
spec.
|
|
26
|
+
spec.add_development_dependency "bump"
|
|
27
|
+
spec.add_development_dependency "bundler", ">= 2.2.0"
|
|
28
|
+
spec.add_development_dependency "debug"
|
|
29
|
+
spec.add_development_dependency "minitest"
|
|
30
|
+
spec.add_development_dependency "rake", "~> 13.3"
|
|
31
|
+
spec.add_development_dependency "rspec", "~> 3.13"
|
|
32
|
+
spec.add_development_dependency "simplecov"
|
|
33
|
+
spec.add_development_dependency "standard"
|
|
22
34
|
|
|
23
|
-
spec.
|
|
24
|
-
spec.add_development_dependency 'byebug', '~> 9.0'
|
|
25
|
-
spec.add_development_dependency 'minitest', '~> 5.0'
|
|
26
|
-
spec.add_development_dependency 'minitest-reporters', '~> 1.1'
|
|
27
|
-
spec.add_development_dependency 'rspec', '~> 3.12'
|
|
28
|
-
spec.add_development_dependency 'rake', '~> 13.0'
|
|
29
|
-
spec.add_development_dependency 'rubocop', '= 1.38.0'
|
|
30
|
-
spec.add_development_dependency 'simplecov'
|
|
31
|
-
spec.add_development_dependency 'yard', '~> 0.9'
|
|
35
|
+
spec.metadata["rubygems_mfa_required"] = "true"
|
|
32
36
|
end
|
metadata
CHANGED
|
@@ -1,38 +1,51 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: slayer
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.6.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Wyatt Kirby
|
|
8
8
|
- Noah Callaway
|
|
9
|
-
autorequire:
|
|
10
9
|
bindir: exe
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date:
|
|
11
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
|
15
|
-
name:
|
|
14
|
+
name: bigdecimal
|
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
|
17
16
|
requirements:
|
|
18
|
-
- - "
|
|
17
|
+
- - ">="
|
|
19
18
|
- !ruby/object:Gem::Version
|
|
20
|
-
version: '
|
|
19
|
+
version: '0'
|
|
21
20
|
type: :runtime
|
|
22
21
|
prerelease: false
|
|
23
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
24
23
|
requirements:
|
|
25
|
-
- - "
|
|
24
|
+
- - ">="
|
|
26
25
|
- !ruby/object:Gem::Version
|
|
27
|
-
version: '
|
|
26
|
+
version: '0'
|
|
28
27
|
- !ruby/object:Gem::Dependency
|
|
29
|
-
name:
|
|
28
|
+
name: ostruct
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ">="
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ">="
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '0'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: virtus
|
|
30
43
|
requirement: !ruby/object:Gem::Requirement
|
|
31
44
|
requirements:
|
|
32
45
|
- - "~>"
|
|
33
46
|
- !ruby/object:Gem::Version
|
|
34
47
|
version: '2.0'
|
|
35
|
-
type: :
|
|
48
|
+
type: :runtime
|
|
36
49
|
prerelease: false
|
|
37
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
38
51
|
requirements:
|
|
@@ -40,89 +53,89 @@ dependencies:
|
|
|
40
53
|
- !ruby/object:Gem::Version
|
|
41
54
|
version: '2.0'
|
|
42
55
|
- !ruby/object:Gem::Dependency
|
|
43
|
-
name:
|
|
56
|
+
name: bump
|
|
44
57
|
requirement: !ruby/object:Gem::Requirement
|
|
45
58
|
requirements:
|
|
46
|
-
- - "
|
|
59
|
+
- - ">="
|
|
47
60
|
- !ruby/object:Gem::Version
|
|
48
|
-
version: '
|
|
61
|
+
version: '0'
|
|
49
62
|
type: :development
|
|
50
63
|
prerelease: false
|
|
51
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
52
65
|
requirements:
|
|
53
|
-
- - "
|
|
66
|
+
- - ">="
|
|
54
67
|
- !ruby/object:Gem::Version
|
|
55
|
-
version: '
|
|
68
|
+
version: '0'
|
|
56
69
|
- !ruby/object:Gem::Dependency
|
|
57
|
-
name:
|
|
70
|
+
name: bundler
|
|
58
71
|
requirement: !ruby/object:Gem::Requirement
|
|
59
72
|
requirements:
|
|
60
|
-
- - "
|
|
73
|
+
- - ">="
|
|
61
74
|
- !ruby/object:Gem::Version
|
|
62
|
-
version:
|
|
75
|
+
version: 2.2.0
|
|
63
76
|
type: :development
|
|
64
77
|
prerelease: false
|
|
65
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
66
79
|
requirements:
|
|
67
|
-
- - "
|
|
80
|
+
- - ">="
|
|
68
81
|
- !ruby/object:Gem::Version
|
|
69
|
-
version:
|
|
82
|
+
version: 2.2.0
|
|
70
83
|
- !ruby/object:Gem::Dependency
|
|
71
|
-
name:
|
|
84
|
+
name: debug
|
|
72
85
|
requirement: !ruby/object:Gem::Requirement
|
|
73
86
|
requirements:
|
|
74
|
-
- - "
|
|
87
|
+
- - ">="
|
|
75
88
|
- !ruby/object:Gem::Version
|
|
76
|
-
version: '
|
|
89
|
+
version: '0'
|
|
77
90
|
type: :development
|
|
78
91
|
prerelease: false
|
|
79
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
80
93
|
requirements:
|
|
81
|
-
- - "
|
|
94
|
+
- - ">="
|
|
82
95
|
- !ruby/object:Gem::Version
|
|
83
|
-
version: '
|
|
96
|
+
version: '0'
|
|
84
97
|
- !ruby/object:Gem::Dependency
|
|
85
|
-
name:
|
|
98
|
+
name: minitest
|
|
86
99
|
requirement: !ruby/object:Gem::Requirement
|
|
87
100
|
requirements:
|
|
88
|
-
- - "
|
|
101
|
+
- - ">="
|
|
89
102
|
- !ruby/object:Gem::Version
|
|
90
|
-
version: '
|
|
103
|
+
version: '0'
|
|
91
104
|
type: :development
|
|
92
105
|
prerelease: false
|
|
93
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
94
107
|
requirements:
|
|
95
|
-
- - "
|
|
108
|
+
- - ">="
|
|
96
109
|
- !ruby/object:Gem::Version
|
|
97
|
-
version: '
|
|
110
|
+
version: '0'
|
|
98
111
|
- !ruby/object:Gem::Dependency
|
|
99
112
|
name: rake
|
|
100
113
|
requirement: !ruby/object:Gem::Requirement
|
|
101
114
|
requirements:
|
|
102
115
|
- - "~>"
|
|
103
116
|
- !ruby/object:Gem::Version
|
|
104
|
-
version: '13.
|
|
117
|
+
version: '13.3'
|
|
105
118
|
type: :development
|
|
106
119
|
prerelease: false
|
|
107
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
108
121
|
requirements:
|
|
109
122
|
- - "~>"
|
|
110
123
|
- !ruby/object:Gem::Version
|
|
111
|
-
version: '13.
|
|
124
|
+
version: '13.3'
|
|
112
125
|
- !ruby/object:Gem::Dependency
|
|
113
|
-
name:
|
|
126
|
+
name: rspec
|
|
114
127
|
requirement: !ruby/object:Gem::Requirement
|
|
115
128
|
requirements:
|
|
116
|
-
- -
|
|
129
|
+
- - "~>"
|
|
117
130
|
- !ruby/object:Gem::Version
|
|
118
|
-
version:
|
|
131
|
+
version: '3.13'
|
|
119
132
|
type: :development
|
|
120
133
|
prerelease: false
|
|
121
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
122
135
|
requirements:
|
|
123
|
-
- -
|
|
136
|
+
- - "~>"
|
|
124
137
|
- !ruby/object:Gem::Version
|
|
125
|
-
version:
|
|
138
|
+
version: '3.13'
|
|
126
139
|
- !ruby/object:Gem::Dependency
|
|
127
140
|
name: simplecov
|
|
128
141
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -138,20 +151,19 @@ dependencies:
|
|
|
138
151
|
- !ruby/object:Gem::Version
|
|
139
152
|
version: '0'
|
|
140
153
|
- !ruby/object:Gem::Dependency
|
|
141
|
-
name:
|
|
154
|
+
name: standard
|
|
142
155
|
requirement: !ruby/object:Gem::Requirement
|
|
143
156
|
requirements:
|
|
144
|
-
- - "
|
|
157
|
+
- - ">="
|
|
145
158
|
- !ruby/object:Gem::Version
|
|
146
|
-
version: '0
|
|
159
|
+
version: '0'
|
|
147
160
|
type: :development
|
|
148
161
|
prerelease: false
|
|
149
162
|
version_requirements: !ruby/object:Gem::Requirement
|
|
150
163
|
requirements:
|
|
151
|
-
- - "
|
|
164
|
+
- - ">="
|
|
152
165
|
- !ruby/object:Gem::Version
|
|
153
|
-
version: '0
|
|
154
|
-
description:
|
|
166
|
+
version: '0'
|
|
155
167
|
email:
|
|
156
168
|
- wyatt@apsis.io
|
|
157
169
|
- noah@apsis.io
|
|
@@ -160,11 +172,12 @@ extensions: []
|
|
|
160
172
|
extra_rdoc_files: []
|
|
161
173
|
files:
|
|
162
174
|
- ".githooks/pre-push"
|
|
163
|
-
- ".github/workflows/
|
|
175
|
+
- ".github/workflows/publish.yml"
|
|
164
176
|
- ".github/workflows/test.yml"
|
|
165
177
|
- ".gitignore"
|
|
166
178
|
- ".rspec"
|
|
167
|
-
- ".
|
|
179
|
+
- ".ruby-version"
|
|
180
|
+
- ".standard.yml"
|
|
168
181
|
- Dockerfile
|
|
169
182
|
- Gemfile
|
|
170
183
|
- LICENSE.txt
|
|
@@ -173,6 +186,7 @@ files:
|
|
|
173
186
|
- bin/console
|
|
174
187
|
- bin/helpers/docker
|
|
175
188
|
- bin/install-githooks
|
|
189
|
+
- bin/release
|
|
176
190
|
- bin/rubo_fix
|
|
177
191
|
- bin/run_tests
|
|
178
192
|
- bin/setup
|
|
@@ -198,8 +212,8 @@ files:
|
|
|
198
212
|
homepage: http://www.apsis.io
|
|
199
213
|
licenses:
|
|
200
214
|
- MIT
|
|
201
|
-
metadata:
|
|
202
|
-
|
|
215
|
+
metadata:
|
|
216
|
+
rubygems_mfa_required: 'true'
|
|
203
217
|
rdoc_options: []
|
|
204
218
|
require_paths:
|
|
205
219
|
- lib
|
|
@@ -207,15 +221,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
207
221
|
requirements:
|
|
208
222
|
- - ">="
|
|
209
223
|
- !ruby/object:Gem::Version
|
|
210
|
-
version:
|
|
224
|
+
version: 3.3.0
|
|
211
225
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
212
226
|
requirements:
|
|
213
227
|
- - ">="
|
|
214
228
|
- !ruby/object:Gem::Version
|
|
215
229
|
version: '0'
|
|
216
230
|
requirements: []
|
|
217
|
-
rubygems_version: 3.
|
|
218
|
-
signing_key:
|
|
231
|
+
rubygems_version: 3.6.9
|
|
219
232
|
specification_version: 4
|
|
220
233
|
summary: A killer service layer
|
|
221
234
|
test_files: []
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# .github/workflows/release.yml
|
|
2
|
-
|
|
3
|
-
name: Release
|
|
4
|
-
|
|
5
|
-
on:
|
|
6
|
-
workflow_dispatch:
|
|
7
|
-
|
|
8
|
-
jobs:
|
|
9
|
-
release:
|
|
10
|
-
runs-on: ubuntu-latest
|
|
11
|
-
steps:
|
|
12
|
-
- uses: actions/checkout@v4
|
|
13
|
-
- uses: ruby/setup-ruby@v1
|
|
14
|
-
with:
|
|
15
|
-
ruby-version: 3.2
|
|
16
|
-
- run: bundle install
|
|
17
|
-
- name: publish gem
|
|
18
|
-
run: |
|
|
19
|
-
mkdir -p $HOME/.gem
|
|
20
|
-
touch $HOME/.gem/credentials
|
|
21
|
-
chmod 0600 $HOME/.gem/credentials
|
|
22
|
-
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
|
23
|
-
gem build *.gemspec
|
|
24
|
-
gem push *.gem
|
|
25
|
-
env:
|
|
26
|
-
GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
|
|
27
|
-
|
data/.rubocop.yml
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
AllCops:
|
|
2
|
-
NewCops: enable
|
|
3
|
-
SuggestExtensions: false
|
|
4
|
-
TargetRubyVersion: 3.1
|
|
5
|
-
Include:
|
|
6
|
-
- 'lib/**/*.rb'
|
|
7
|
-
- 'test/**/*.rb'
|
|
8
|
-
- 'spec/**/*.rb'
|
|
9
|
-
- '**/Gemfile'
|
|
10
|
-
- '**/Rakefile'
|
|
11
|
-
Exclude:
|
|
12
|
-
- 'bin/**/*'
|
|
13
|
-
- 'test/fixtures/**/*.rb'
|
|
14
|
-
|
|
15
|
-
Style/HashSyntax:
|
|
16
|
-
EnforcedShorthandSyntax: never
|
|
17
|
-
|
|
18
|
-
Style/Documentation:
|
|
19
|
-
Enabled: false
|
|
20
|
-
|
|
21
|
-
Naming/BlockForwarding:
|
|
22
|
-
Enabled: false
|
|
23
|
-
|
|
24
|
-
Style/RedundantSelf:
|
|
25
|
-
Enabled: false
|
|
26
|
-
|
|
27
|
-
Style/RedundantReturn:
|
|
28
|
-
Enabled: false
|
|
29
|
-
|
|
30
|
-
Style/GuardClause:
|
|
31
|
-
Enabled: false
|
|
32
|
-
|
|
33
|
-
Style/ClassAndModuleChildren:
|
|
34
|
-
Enabled: false
|
|
35
|
-
|
|
36
|
-
Layout/EmptyLinesAroundClassBody:
|
|
37
|
-
Enabled: false
|
|
38
|
-
|
|
39
|
-
Style/FrozenStringLiteralComment:
|
|
40
|
-
Enabled: false
|
|
41
|
-
|
|
42
|
-
Layout/CommentIndentation:
|
|
43
|
-
Enabled: false
|
|
44
|
-
|
|
45
|
-
Layout/LineLength:
|
|
46
|
-
Max: 120
|
|
47
|
-
|
|
48
|
-
Metrics/ClassLength:
|
|
49
|
-
Max: 120
|
|
50
|
-
|
|
51
|
-
Layout/EmptyLineBetweenDefs:
|
|
52
|
-
AllowAdjacentOneLineDefs: true
|
|
53
|
-
|
|
54
|
-
Naming/MethodParameterName:
|
|
55
|
-
AllowedNames:
|
|
56
|
-
- _
|
|
57
|
-
|
|
58
|
-
Style/ClassVars:
|
|
59
|
-
Exclude:
|
|
60
|
-
- 'lib/slayer/service.rb'
|
|
61
|
-
|
|
62
|
-
Style/MutableConstant:
|
|
63
|
-
Exclude:
|
|
64
|
-
- 'lib/slayer/version.rb'
|