bashcov 3.2.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +6 -3
- data/.simplecov +5 -5
- data/CHANGELOG.md +39 -1
- data/Gemfile.nix.lock +83 -61
- data/Guardfile +1 -1
- data/README.md +2 -4
- data/Rakefile +3 -3
- data/TESTING.md +1 -2
- data/bin/bashcov +1 -1
- data/flake.nix +2 -2
- data/gemset.nix +168 -94
- data/lib/bashcov/detective.rb +1 -1
- data/lib/bashcov/lexer.rb +17 -12
- data/lib/bashcov/runner.rb +1 -1
- data/lib/bashcov/version.rb +1 -1
- data/lib/bashcov/xtrace.rb +2 -2
- data/lib/bashcov.rb +5 -3
- data/screenshot.png +0 -0
- metadata +48 -6
- data/test.sh +0 -10
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bf955fd7135b192e4da886b5f8348f73422e06fd658bfdf11935533f3522f197
|
|
4
|
+
data.tar.gz: d63c79fce3a315693f96a32a6a4fe7a40c94ea32c3bfd7a0019c9a94cb67c145
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b7e891c4b1b9d272c0c11f44bb008deda2aff88f33bf5d0c9068d5f4a396f7efaa1bd915610b498126d07bef2e9512b2a4efd88dd76cef19d58b9d89d796b51b
|
|
7
|
+
data.tar.gz: 7a26df75b930a634741ef9f9e6a1d23c80be4a05dd1164623c7f1b907f3ae76450ed3694fe2d64201e59171fdde8638af9db726853849fc644acf8309bc583e0
|
data/.rubocop.yml
CHANGED
|
@@ -3,7 +3,7 @@ plugins:
|
|
|
3
3
|
- rubocop-rspec
|
|
4
4
|
|
|
5
5
|
AllCops:
|
|
6
|
-
TargetRubyVersion: 3.
|
|
6
|
+
TargetRubyVersion: 3.2
|
|
7
7
|
NewCops: enable
|
|
8
8
|
# Ignore files ignored by Git. Improved version of the template shown here:
|
|
9
9
|
# https://docs.rubocop.org/rubocop/configuration.html#pre-processing
|
|
@@ -68,8 +68,11 @@ Style/StringLiterals:
|
|
|
68
68
|
Style/SpecialGlobalVars:
|
|
69
69
|
Enabled: false
|
|
70
70
|
|
|
71
|
+
Style/TrailingCommaInArguments:
|
|
72
|
+
EnforcedStyleForMultiline: consistent_comma
|
|
73
|
+
|
|
71
74
|
Style/TrailingCommaInArrayLiteral:
|
|
72
|
-
EnforcedStyleForMultiline:
|
|
75
|
+
EnforcedStyleForMultiline: consistent_comma
|
|
73
76
|
|
|
74
77
|
Style/TrailingCommaInHashLiteral:
|
|
75
|
-
EnforcedStyleForMultiline:
|
|
78
|
+
EnforcedStyleForMultiline: consistent_comma
|
data/.simplecov
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
SimpleCov.
|
|
3
|
+
SimpleCov.configure do
|
|
4
4
|
minimum_coverage 95
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
skip "/features/"
|
|
6
|
+
skip "/spec/"
|
|
7
|
+
skip "/tmp/"
|
|
8
|
+
skip "/.git/"
|
|
9
9
|
end
|
data/CHANGELOG.md
CHANGED
|
@@ -1,7 +1,45 @@
|
|
|
1
|
-
## Unreleased ([changes](https://github.com/infertux/bashcov/compare/
|
|
1
|
+
## Unreleased ([changes](https://github.com/infertux/bashcov/compare/v4.0.0...master))
|
|
2
2
|
|
|
3
3
|
* TBD
|
|
4
4
|
|
|
5
|
+
## v4.0.0, 2026-08-25 ([changes](https://github.com/infertux/bashcov/compare/v3.3.0...v4.0.0))
|
|
6
|
+
|
|
7
|
+
* [BUGFIX] Fix build for Nix
|
|
8
|
+
* [MISC] Update Nix lockfile
|
|
9
|
+
* [MISC] Ignore .ruby-version file
|
|
10
|
+
* [FEATURE] Update coverage result to match SimpleCov new API
|
|
11
|
+
* [BUGFIX] Fix build for Bash 4.4
|
|
12
|
+
* [BUGFIX] Run Cucumber examples in random order
|
|
13
|
+
* [MISC] Test against all Ruby versions
|
|
14
|
+
* [MISC] Add screenshot to README
|
|
15
|
+
* [MISC] Run Cucumber against Bash 5.3
|
|
16
|
+
* [BUGFIX] Fix call to `find` command with zsh safeguard
|
|
17
|
+
* [BUGFIX] Fix deprecation warnings
|
|
18
|
+
* [MISC] Upgrade Ruby image for GitLab CI
|
|
19
|
+
* [FEATURE] - Upgrade simplecov dependency
|
|
20
|
+
* [BUGFIX] Fix support for Bash 5.3
|
|
21
|
+
* [MISC] Enforce consistent commas with Rubocop
|
|
22
|
+
* [BUGFIX] Make sure StringScanner is always loaded
|
|
23
|
+
* [BUGFIX] Use reliable Bash mirror
|
|
24
|
+
* [BUGFIX] Fix GitHub Action
|
|
25
|
+
* [BUGFIX] Fix Rubocop violation
|
|
26
|
+
* [BUGFIX] Fix deprecation warning for actions/checkout
|
|
27
|
+
|
|
28
|
+
## v3.3.0, 2026-02-18 ([changes](https://github.com/infertux/bashcov/compare/v3.2.0...v3.3.0))
|
|
29
|
+
|
|
30
|
+
* [MISC] Add workflow to build Gem
|
|
31
|
+
* [BUGFIX] Fix heredoc with space not reported as covered (fixes #102)
|
|
32
|
+
* [BUGFIX] Do not write to stdout in specs
|
|
33
|
+
* [MISC] Update dependencies for Nix
|
|
34
|
+
* [BUXFIX] Add missing test dependencies for Ruby 4.0
|
|
35
|
+
* [MISC] Bump minimal Ruby version to 3.2
|
|
36
|
+
* [MISC] Test with Debian 12
|
|
37
|
+
* [MISC] Test against all Bash versions
|
|
38
|
+
* [MISC] Run GitHub CI monthly
|
|
39
|
+
* [BUGFIX] Fix Rubocop violations
|
|
40
|
+
* [FEATURE] Support multiline subshells
|
|
41
|
+
* [FEATURE] Support function names containing the at sign
|
|
42
|
+
|
|
5
43
|
## v3.2.0, 2025-07-28 ([changes](https://github.com/infertux/bashcov/compare/v3.1.3...v3.2.0))
|
|
6
44
|
|
|
7
45
|
* [BUGFIX] Support function names containing dots (#97)
|
data/Gemfile.nix.lock
CHANGED
|
@@ -1,118 +1,137 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
bashcov (
|
|
5
|
-
simplecov (~>
|
|
4
|
+
bashcov (4.0.0)
|
|
5
|
+
simplecov (~> 1.1)
|
|
6
6
|
|
|
7
7
|
GEM
|
|
8
8
|
remote: https://rubygems.org/
|
|
9
9
|
specs:
|
|
10
|
-
aruba (2.
|
|
11
|
-
bundler (>= 1.17
|
|
10
|
+
aruba (2.4.1)
|
|
11
|
+
bundler (>= 1.17)
|
|
12
12
|
contracts (>= 0.16.0, < 0.18.0)
|
|
13
|
-
cucumber (>= 8.0, <
|
|
14
|
-
|
|
13
|
+
cucumber (>= 8.0, < 12.0)
|
|
14
|
+
irb (~> 1.16)
|
|
15
|
+
rspec-expectations (>= 3.4, < 5.0)
|
|
15
16
|
thor (~> 1.0)
|
|
16
17
|
ast (2.4.3)
|
|
17
18
|
base64 (0.3.0)
|
|
18
|
-
|
|
19
|
+
benchmark (0.5.0)
|
|
20
|
+
bigdecimal (4.1.2)
|
|
19
21
|
builder (3.3.0)
|
|
20
|
-
bundler-audit (0.9.
|
|
21
|
-
bundler (>= 1.2.0
|
|
22
|
+
bundler-audit (0.9.3)
|
|
23
|
+
bundler (>= 1.2.0)
|
|
22
24
|
thor (~> 1.0)
|
|
23
|
-
contracts (0.17.
|
|
24
|
-
cucumber (
|
|
25
|
+
contracts (0.17.3)
|
|
26
|
+
cucumber (11.1.1)
|
|
25
27
|
base64 (~> 0.2)
|
|
26
28
|
builder (~> 3.2)
|
|
27
|
-
cucumber-ci-environment (> 9, <
|
|
28
|
-
cucumber-core (
|
|
29
|
-
cucumber-cucumber-expressions (> 17, <
|
|
30
|
-
cucumber-html-formatter (>
|
|
29
|
+
cucumber-ci-environment (> 9, < 12)
|
|
30
|
+
cucumber-core (>= 16.2.0, < 17)
|
|
31
|
+
cucumber-cucumber-expressions (> 17, < 20)
|
|
32
|
+
cucumber-html-formatter (> 21, < 24)
|
|
31
33
|
diff-lcs (~> 1.5)
|
|
32
34
|
logger (~> 1.6)
|
|
33
35
|
mini_mime (~> 1.1)
|
|
34
36
|
multi_test (~> 1.1)
|
|
35
|
-
sys-uname (~> 1.
|
|
36
|
-
cucumber-ci-environment (
|
|
37
|
-
cucumber-core (
|
|
38
|
-
cucumber-gherkin (>
|
|
39
|
-
cucumber-messages (>
|
|
40
|
-
cucumber-tag-expressions (>
|
|
41
|
-
cucumber-cucumber-expressions (
|
|
37
|
+
sys-uname (~> 1.5)
|
|
38
|
+
cucumber-ci-environment (11.0.0)
|
|
39
|
+
cucumber-core (16.2.0)
|
|
40
|
+
cucumber-gherkin (> 36, < 40)
|
|
41
|
+
cucumber-messages (> 31, < 33)
|
|
42
|
+
cucumber-tag-expressions (> 6, < 9)
|
|
43
|
+
cucumber-cucumber-expressions (19.0.1)
|
|
42
44
|
bigdecimal
|
|
43
|
-
cucumber-gherkin (
|
|
44
|
-
cucumber-messages (
|
|
45
|
-
cucumber-html-formatter (
|
|
46
|
-
cucumber-messages (>
|
|
47
|
-
cucumber-messages (
|
|
48
|
-
cucumber-tag-expressions (
|
|
45
|
+
cucumber-gherkin (39.1.0)
|
|
46
|
+
cucumber-messages (>= 31, < 33)
|
|
47
|
+
cucumber-html-formatter (23.1.0)
|
|
48
|
+
cucumber-messages (> 23, < 33)
|
|
49
|
+
cucumber-messages (32.3.1)
|
|
50
|
+
cucumber-tag-expressions (8.1.0)
|
|
49
51
|
diff-lcs (1.6.2)
|
|
50
|
-
|
|
52
|
+
erb (6.0.7)
|
|
51
53
|
ffi (1.16.3)
|
|
52
|
-
|
|
53
|
-
|
|
54
|
+
io-console (0.9.2)
|
|
55
|
+
irb (1.18.0)
|
|
56
|
+
pp (>= 0.6.0)
|
|
57
|
+
prism (>= 1.3.0)
|
|
58
|
+
rdoc (>= 4.0.0)
|
|
59
|
+
reline (>= 0.4.2)
|
|
60
|
+
json (2.21.2)
|
|
61
|
+
language_server-protocol (3.17.0.6)
|
|
54
62
|
lint_roller (1.1.0)
|
|
55
63
|
logger (1.7.0)
|
|
64
|
+
memoist3 (1.0.0)
|
|
56
65
|
mini_mime (1.1.5)
|
|
57
66
|
multi_test (1.1.0)
|
|
58
|
-
parallel (1.
|
|
59
|
-
parser (3.3.
|
|
67
|
+
parallel (2.1.0)
|
|
68
|
+
parser (3.3.12.0)
|
|
60
69
|
ast (~> 2.4.1)
|
|
61
70
|
racc
|
|
62
|
-
|
|
71
|
+
pp (0.6.4)
|
|
72
|
+
prettyprint
|
|
73
|
+
prettyprint (0.2.0)
|
|
74
|
+
prism (1.9.0)
|
|
63
75
|
racc (1.8.1)
|
|
64
76
|
rainbow (3.1.1)
|
|
65
|
-
rake (13.
|
|
66
|
-
|
|
67
|
-
|
|
77
|
+
rake (13.4.2)
|
|
78
|
+
rbs (4.2.0)
|
|
79
|
+
logger
|
|
80
|
+
prism (>= 1.6.0)
|
|
81
|
+
tsort
|
|
82
|
+
rdoc (8.0.0)
|
|
83
|
+
erb
|
|
84
|
+
prism (>= 1.6.0)
|
|
85
|
+
rbs (>= 4.0.0)
|
|
86
|
+
tsort
|
|
87
|
+
regexp_parser (2.12.0)
|
|
88
|
+
reline (0.7.0)
|
|
89
|
+
io-console (~> 0.5)
|
|
90
|
+
rspec (3.13.2)
|
|
68
91
|
rspec-core (~> 3.13.0)
|
|
69
92
|
rspec-expectations (~> 3.13.0)
|
|
70
93
|
rspec-mocks (~> 3.13.0)
|
|
71
|
-
rspec-core (3.13.
|
|
94
|
+
rspec-core (3.13.6)
|
|
72
95
|
rspec-support (~> 3.13.0)
|
|
73
96
|
rspec-expectations (3.13.5)
|
|
74
97
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
75
98
|
rspec-support (~> 3.13.0)
|
|
76
|
-
rspec-mocks (3.13.
|
|
99
|
+
rspec-mocks (3.13.8)
|
|
77
100
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
78
101
|
rspec-support (~> 3.13.0)
|
|
79
|
-
rspec-support (3.13.
|
|
80
|
-
rubocop (1.
|
|
81
|
-
json (
|
|
102
|
+
rspec-support (3.13.7)
|
|
103
|
+
rubocop (1.90.0)
|
|
104
|
+
json (>= 2.3)
|
|
82
105
|
language_server-protocol (~> 3.17.0.2)
|
|
83
106
|
lint_roller (~> 1.1.0)
|
|
84
|
-
parallel (
|
|
107
|
+
parallel (>= 1.10)
|
|
85
108
|
parser (>= 3.3.0.2)
|
|
86
109
|
rainbow (>= 2.2.2, < 4.0)
|
|
87
110
|
regexp_parser (>= 2.9.3, < 3.0)
|
|
88
|
-
rubocop-ast (>= 1.
|
|
111
|
+
rubocop-ast (>= 1.49.0, < 2.0)
|
|
89
112
|
ruby-progressbar (~> 1.7)
|
|
90
|
-
tsort (>= 0.2.0)
|
|
91
113
|
unicode-display_width (>= 2.4.0, < 4.0)
|
|
92
|
-
rubocop-ast (1.
|
|
114
|
+
rubocop-ast (1.50.0)
|
|
93
115
|
parser (>= 3.3.7.2)
|
|
94
|
-
prism (~> 1.
|
|
116
|
+
prism (~> 1.7)
|
|
95
117
|
rubocop-rake (0.7.1)
|
|
96
118
|
lint_roller (~> 1.1)
|
|
97
119
|
rubocop (>= 1.72.1)
|
|
98
|
-
rubocop-rspec (3.
|
|
120
|
+
rubocop-rspec (3.10.2)
|
|
99
121
|
lint_roller (~> 1.1)
|
|
100
|
-
|
|
122
|
+
regexp_parser (>= 2.0)
|
|
123
|
+
rubocop (~> 1.86, >= 1.86.2)
|
|
101
124
|
ruby-progressbar (1.13.0)
|
|
102
|
-
simplecov (
|
|
103
|
-
|
|
104
|
-
simplecov-html (~> 0.11)
|
|
105
|
-
simplecov_json_formatter (~> 0.1)
|
|
106
|
-
simplecov-html (0.13.2)
|
|
107
|
-
simplecov_json_formatter (0.1.4)
|
|
108
|
-
sys-uname (1.3.1)
|
|
125
|
+
simplecov (1.1.1)
|
|
126
|
+
sys-uname (1.5.1)
|
|
109
127
|
ffi (~> 1.1)
|
|
110
|
-
|
|
128
|
+
memoist3 (~> 1.0.0)
|
|
129
|
+
thor (1.5.0)
|
|
111
130
|
tsort (0.2.0)
|
|
112
|
-
unicode-display_width (3.
|
|
113
|
-
unicode-emoji (~> 4.
|
|
114
|
-
unicode-emoji (4.0
|
|
115
|
-
yard (0.9.
|
|
131
|
+
unicode-display_width (3.2.0)
|
|
132
|
+
unicode-emoji (~> 4.1)
|
|
133
|
+
unicode-emoji (4.2.0)
|
|
134
|
+
yard (0.9.45)
|
|
116
135
|
|
|
117
136
|
PLATFORMS
|
|
118
137
|
aarch64-linux-gnu
|
|
@@ -130,10 +149,13 @@ PLATFORMS
|
|
|
130
149
|
DEPENDENCIES
|
|
131
150
|
aruba
|
|
132
151
|
bashcov!
|
|
152
|
+
benchmark
|
|
133
153
|
bundler-audit
|
|
134
154
|
cucumber
|
|
135
155
|
ffi (~> 1.16.0)
|
|
156
|
+
irb
|
|
136
157
|
rake
|
|
158
|
+
rdoc
|
|
137
159
|
rspec
|
|
138
160
|
rubocop
|
|
139
161
|
rubocop-rake
|
data/Guardfile
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# More info at https://github.com/guard/guard#readme
|
|
4
4
|
|
|
5
|
-
guard "rspec"
|
|
5
|
+
guard "rspec" do
|
|
6
6
|
watch(%r{^spec/.+_spec\.rb$})
|
|
7
7
|
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
|
8
8
|
watch(%r{^lib/(.+)/(.+)\.rb$}) { |m| "spec/#{m[1]}/#{m[2]}_spec.rb" }
|
data/README.md
CHANGED
|
@@ -21,10 +21,6 @@ so your report includes coverage across your test suites and thereby gives you a
|
|
|
21
21
|
It uses the [SimpleCov](https://github.com/colszowka/simplecov) coverage library to generate HTML reports.
|
|
22
22
|
SimpleCov gets installed automatically when you install Bashcov.
|
|
23
23
|
|
|
24
|
-
Here are example coverages generated by Bashcov:
|
|
25
|
-
[test app demo](https://infertux.github.io/bashcov/test_app/ "Coverage for the bundled test application") &
|
|
26
|
-
[RVM demo](https://infertux.github.io/bashcov/rvm/ "Coverage for RVM").
|
|
27
|
-
|
|
28
24
|
## Installation
|
|
29
25
|
|
|
30
26
|
`gem install bashcov`
|
|
@@ -46,6 +42,8 @@ For more information, including other installation methods, see [`INSTALL.md`](.
|
|
|
46
42
|
|
|
47
43
|
It will create a directory named `./coverage/`, you may open `./coverage/index.html` to browse the coverage report.
|
|
48
44
|
|
|
45
|
+

|
|
46
|
+
|
|
49
47
|
### SimpleCov integration
|
|
50
48
|
|
|
51
49
|
You can leverage the underlying library [SimpleCov](https://github.com/colszowka/simplecov)
|
data/Rakefile
CHANGED
|
@@ -7,15 +7,15 @@ Bundler::Audit::Task.new
|
|
|
7
7
|
|
|
8
8
|
require "cucumber/rake/task"
|
|
9
9
|
Cucumber::Rake::Task.new do |t|
|
|
10
|
-
t.cucumber_opts = %w[--publish-quiet]
|
|
10
|
+
t.cucumber_opts = %w[--publish-quiet --backtrace --verbose --order=random]
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
require "rspec/core/rake_task"
|
|
14
|
-
RSpec::Core::RakeTask.new(:
|
|
14
|
+
RSpec::Core::RakeTask.new(:rspec) do |t|
|
|
15
15
|
t.ruby_opts = "-w"
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
require "rubocop/rake_task"
|
|
19
19
|
RuboCop::RakeTask.new
|
|
20
20
|
|
|
21
|
-
task default: %i[bundle:audit cucumber
|
|
21
|
+
task default: %i[bundle:audit cucumber rspec rubocop]
|
data/TESTING.md
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
`bundle exec rake` will run a quick test suite with the current Bash and Ruby version.
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
You'll need [Docker](https://www.docker.com/) and [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner) installed on your machine.
|
|
3
|
+
The full test suite runs on [GitHub](https://github.com/infertux/bashcov/actions).
|
data/bin/bashcov
CHANGED
|
@@ -22,7 +22,7 @@ SimpleCov.command_name Bashcov.command_name
|
|
|
22
22
|
SimpleCov.root Bashcov.root_directory
|
|
23
23
|
|
|
24
24
|
result = SimpleCov::Result.new(coverage)
|
|
25
|
-
if SimpleCov.
|
|
25
|
+
if SimpleCov.merging
|
|
26
26
|
SimpleCov::ResultMerger.store_result(result)
|
|
27
27
|
result = SimpleCov::ResultMerger.merged_result
|
|
28
28
|
end
|
data/flake.nix
CHANGED
|
@@ -172,7 +172,7 @@
|
|
|
172
172
|
propagatedBuildInputs = [gems'];
|
|
173
173
|
|
|
174
174
|
checkPhase = ''
|
|
175
|
-
${config.packages.gems.wrappedRuby}/bin/rake cucumber
|
|
175
|
+
${config.packages.gems.wrappedRuby}/bin/rake cucumber rspec
|
|
176
176
|
'';
|
|
177
177
|
|
|
178
178
|
# Replace shebangs like "#!/usr/bin/env bash" with Nix store
|
|
@@ -206,7 +206,7 @@
|
|
|
206
206
|
pname = "bashcov";
|
|
207
207
|
gemdir = self;
|
|
208
208
|
lockfile = ./Gemfile.nix.lock;
|
|
209
|
-
version = "
|
|
209
|
+
version = "4.0.0";
|
|
210
210
|
postBuild = ''
|
|
211
211
|
for gem in $out/${ruby.gemPath}/bundler/gems/*; do
|
|
212
212
|
ln -sfrT "$gem" $out/${ruby.gemPath}/gems/"''${gem##*/}"
|
data/gemset.nix
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
aruba = {
|
|
3
|
-
dependencies = ["contracts" "cucumber" "rspec-expectations" "thor"];
|
|
3
|
+
dependencies = ["contracts" "cucumber" "irb" "rspec-expectations" "thor"];
|
|
4
4
|
groups = ["development"];
|
|
5
5
|
platforms = [];
|
|
6
6
|
source = {
|
|
7
7
|
remotes = ["https://rubygems.org"];
|
|
8
|
-
sha256 = "
|
|
8
|
+
sha256 = "03dg1hg58733rv2jl220pckal3vqqiqkjmfgnd9wknbb2d4ik0n6";
|
|
9
9
|
type = "gem";
|
|
10
10
|
};
|
|
11
|
-
version = "2.
|
|
11
|
+
version = "2.4.1";
|
|
12
12
|
};
|
|
13
13
|
ast = {
|
|
14
14
|
groups = ["default" "development"];
|
|
@@ -38,17 +38,27 @@
|
|
|
38
38
|
path = ./.;
|
|
39
39
|
type = "path";
|
|
40
40
|
};
|
|
41
|
-
version = "
|
|
41
|
+
version = "4.0.0";
|
|
42
|
+
};
|
|
43
|
+
benchmark = {
|
|
44
|
+
groups = ["development"];
|
|
45
|
+
platforms = [];
|
|
46
|
+
source = {
|
|
47
|
+
remotes = ["https://rubygems.org"];
|
|
48
|
+
sha256 = "0v1337j39w1z7x9zs4q7ag0nfv4vs4xlsjx2la0wpv8s6hig2pa6";
|
|
49
|
+
type = "gem";
|
|
50
|
+
};
|
|
51
|
+
version = "0.5.0";
|
|
42
52
|
};
|
|
43
53
|
bigdecimal = {
|
|
44
54
|
groups = ["default" "development"];
|
|
45
55
|
platforms = [];
|
|
46
56
|
source = {
|
|
47
57
|
remotes = ["https://rubygems.org"];
|
|
48
|
-
sha256 = "
|
|
58
|
+
sha256 = "1g9zi8c4i7g8zz0c3hxrw6mblrjvgn7akys60clb9si7c1k1gljk";
|
|
49
59
|
type = "gem";
|
|
50
60
|
};
|
|
51
|
-
version = "
|
|
61
|
+
version = "4.1.2";
|
|
52
62
|
};
|
|
53
63
|
builder = {
|
|
54
64
|
groups = ["default" "development"];
|
|
@@ -66,20 +76,20 @@
|
|
|
66
76
|
platforms = [];
|
|
67
77
|
source = {
|
|
68
78
|
remotes = ["https://rubygems.org"];
|
|
69
|
-
sha256 = "
|
|
79
|
+
sha256 = "1sdlr4rj7x5nbrl8zkd3dqdg4fc50bnpx37rl0l0szg4f5n7dj41";
|
|
70
80
|
type = "gem";
|
|
71
81
|
};
|
|
72
|
-
version = "0.9.
|
|
82
|
+
version = "0.9.3";
|
|
73
83
|
};
|
|
74
84
|
contracts = {
|
|
75
85
|
groups = ["default" "development"];
|
|
76
86
|
platforms = [];
|
|
77
87
|
source = {
|
|
78
88
|
remotes = ["https://rubygems.org"];
|
|
79
|
-
sha256 = "
|
|
89
|
+
sha256 = "1mqlhfsf53r5r5assnwzqq1ajbhwxcxniddpxjdhjiza2dj64bp7";
|
|
80
90
|
type = "gem";
|
|
81
91
|
};
|
|
82
|
-
version = "0.17.
|
|
92
|
+
version = "0.17.3";
|
|
83
93
|
};
|
|
84
94
|
cucumber = {
|
|
85
95
|
dependencies = ["base64" "builder" "cucumber-ci-environment" "cucumber-core" "cucumber-cucumber-expressions" "cucumber-html-formatter" "diff-lcs" "logger" "mini_mime" "multi_test" "sys-uname"];
|
|
@@ -87,20 +97,20 @@
|
|
|
87
97
|
platforms = [];
|
|
88
98
|
source = {
|
|
89
99
|
remotes = ["https://rubygems.org"];
|
|
90
|
-
sha256 = "
|
|
100
|
+
sha256 = "1i2favw0kk9pdikcwpqz0pl1p95g44r0rd8kiiwsyl2bl7s49pfy";
|
|
91
101
|
type = "gem";
|
|
92
102
|
};
|
|
93
|
-
version = "
|
|
103
|
+
version = "11.1.1";
|
|
94
104
|
};
|
|
95
105
|
cucumber-ci-environment = {
|
|
96
106
|
groups = ["default" "development"];
|
|
97
107
|
platforms = [];
|
|
98
108
|
source = {
|
|
99
109
|
remotes = ["https://rubygems.org"];
|
|
100
|
-
sha256 = "
|
|
110
|
+
sha256 = "1qnif57qqcvaz361jkbg43pnzn80jac0ys7gklymn08b3ng9mxqd";
|
|
101
111
|
type = "gem";
|
|
102
112
|
};
|
|
103
|
-
version = "
|
|
113
|
+
version = "11.0.0";
|
|
104
114
|
};
|
|
105
115
|
cucumber-core = {
|
|
106
116
|
dependencies = ["cucumber-gherkin" "cucumber-messages" "cucumber-tag-expressions"];
|
|
@@ -108,10 +118,10 @@
|
|
|
108
118
|
platforms = [];
|
|
109
119
|
source = {
|
|
110
120
|
remotes = ["https://rubygems.org"];
|
|
111
|
-
sha256 = "
|
|
121
|
+
sha256 = "02wprwvf2f3ffzvbrzv8clxvm11p6s7gcjd3wpwfwbzlbjlmhasr";
|
|
112
122
|
type = "gem";
|
|
113
123
|
};
|
|
114
|
-
version = "
|
|
124
|
+
version = "16.2.0";
|
|
115
125
|
};
|
|
116
126
|
cucumber-cucumber-expressions = {
|
|
117
127
|
dependencies = ["bigdecimal"];
|
|
@@ -119,10 +129,10 @@
|
|
|
119
129
|
platforms = [];
|
|
120
130
|
source = {
|
|
121
131
|
remotes = ["https://rubygems.org"];
|
|
122
|
-
sha256 = "
|
|
132
|
+
sha256 = "133cwgclgrphlws6l23sssgmjj41ckhldbwpny7q238r8n8c13k4";
|
|
123
133
|
type = "gem";
|
|
124
134
|
};
|
|
125
|
-
version = "
|
|
135
|
+
version = "19.0.1";
|
|
126
136
|
};
|
|
127
137
|
cucumber-gherkin = {
|
|
128
138
|
dependencies = ["cucumber-messages"];
|
|
@@ -130,10 +140,10 @@
|
|
|
130
140
|
platforms = [];
|
|
131
141
|
source = {
|
|
132
142
|
remotes = ["https://rubygems.org"];
|
|
133
|
-
sha256 = "
|
|
143
|
+
sha256 = "1vbrnf0j3pq162ccrm349mgm4x90lz0k69h11bc671axjl62mldf";
|
|
134
144
|
type = "gem";
|
|
135
145
|
};
|
|
136
|
-
version = "
|
|
146
|
+
version = "39.1.0";
|
|
137
147
|
};
|
|
138
148
|
cucumber-html-formatter = {
|
|
139
149
|
dependencies = ["cucumber-messages"];
|
|
@@ -141,30 +151,30 @@
|
|
|
141
151
|
platforms = [];
|
|
142
152
|
source = {
|
|
143
153
|
remotes = ["https://rubygems.org"];
|
|
144
|
-
sha256 = "
|
|
154
|
+
sha256 = "1pwcvpfawpkdqw9fgdvk8i8n2k6glmmbdbh4jr5kjxn8jakv92bp";
|
|
145
155
|
type = "gem";
|
|
146
156
|
};
|
|
147
|
-
version = "
|
|
157
|
+
version = "23.1.0";
|
|
148
158
|
};
|
|
149
159
|
cucumber-messages = {
|
|
150
160
|
groups = ["default" "development"];
|
|
151
161
|
platforms = [];
|
|
152
162
|
source = {
|
|
153
163
|
remotes = ["https://rubygems.org"];
|
|
154
|
-
sha256 = "
|
|
164
|
+
sha256 = "073phbyiblkp8sh4r2ss8gxa48gjlsj94nq00rnbkbzp3i68xj6x";
|
|
155
165
|
type = "gem";
|
|
156
166
|
};
|
|
157
|
-
version = "
|
|
167
|
+
version = "32.3.1";
|
|
158
168
|
};
|
|
159
169
|
cucumber-tag-expressions = {
|
|
160
170
|
groups = ["default" "development"];
|
|
161
171
|
platforms = [];
|
|
162
172
|
source = {
|
|
163
173
|
remotes = ["https://rubygems.org"];
|
|
164
|
-
sha256 = "
|
|
174
|
+
sha256 = "089fynlhyzcjng7x8ffda1gafdi1yfv2k4y9m7r5p3jgcnvc9n4v";
|
|
165
175
|
type = "gem";
|
|
166
176
|
};
|
|
167
|
-
version = "
|
|
177
|
+
version = "8.1.0";
|
|
168
178
|
};
|
|
169
179
|
diff-lcs = {
|
|
170
180
|
groups = ["default" "development"];
|
|
@@ -176,15 +186,15 @@
|
|
|
176
186
|
};
|
|
177
187
|
version = "1.6.2";
|
|
178
188
|
};
|
|
179
|
-
|
|
180
|
-
groups = ["default"];
|
|
189
|
+
erb = {
|
|
190
|
+
groups = ["default" "development"];
|
|
181
191
|
platforms = [];
|
|
182
192
|
source = {
|
|
183
193
|
remotes = ["https://rubygems.org"];
|
|
184
|
-
sha256 = "
|
|
194
|
+
sha256 = "14pfj6zn0p1hxj6s6s0r7d424wap8zl9zxf89nj79y8fbg16vjn5";
|
|
185
195
|
type = "gem";
|
|
186
196
|
};
|
|
187
|
-
version = "
|
|
197
|
+
version = "6.0.7";
|
|
188
198
|
};
|
|
189
199
|
ffi = {
|
|
190
200
|
groups = ["development"];
|
|
@@ -196,25 +206,46 @@
|
|
|
196
206
|
};
|
|
197
207
|
version = "1.16.3";
|
|
198
208
|
};
|
|
209
|
+
io-console = {
|
|
210
|
+
groups = ["default" "development"];
|
|
211
|
+
platforms = [];
|
|
212
|
+
source = {
|
|
213
|
+
remotes = ["https://rubygems.org"];
|
|
214
|
+
sha256 = "026v93kja19bfslnwi9xfq2dj4r89kkwdprim4whjg6h3n4lz9zg";
|
|
215
|
+
type = "gem";
|
|
216
|
+
};
|
|
217
|
+
version = "0.9.2";
|
|
218
|
+
};
|
|
219
|
+
irb = {
|
|
220
|
+
dependencies = ["pp" "prism" "rdoc" "reline"];
|
|
221
|
+
groups = ["development"];
|
|
222
|
+
platforms = [];
|
|
223
|
+
source = {
|
|
224
|
+
remotes = ["https://rubygems.org"];
|
|
225
|
+
sha256 = "1qs8a9vprg7s8krgq4s0pygr91hclqqyz98ik15p0m1sf2h5956y";
|
|
226
|
+
type = "gem";
|
|
227
|
+
};
|
|
228
|
+
version = "1.18.0";
|
|
229
|
+
};
|
|
199
230
|
json = {
|
|
200
231
|
groups = ["default" "development"];
|
|
201
232
|
platforms = [];
|
|
202
233
|
source = {
|
|
203
234
|
remotes = ["https://rubygems.org"];
|
|
204
|
-
sha256 = "
|
|
235
|
+
sha256 = "0shwgjqbj856mb6m9kgkpy08nhym2gdvc2yaprlimfmky9y3n78z";
|
|
205
236
|
type = "gem";
|
|
206
237
|
};
|
|
207
|
-
version = "2.
|
|
238
|
+
version = "2.21.2";
|
|
208
239
|
};
|
|
209
240
|
language_server-protocol = {
|
|
210
241
|
groups = ["default" "development"];
|
|
211
242
|
platforms = [];
|
|
212
243
|
source = {
|
|
213
244
|
remotes = ["https://rubygems.org"];
|
|
214
|
-
sha256 = "
|
|
245
|
+
sha256 = "1w5p8c2145lmqzr25bxh4ikzjm6k8y1k5lriqqdpw9pq730w1wjy";
|
|
215
246
|
type = "gem";
|
|
216
247
|
};
|
|
217
|
-
version = "3.17.0.
|
|
248
|
+
version = "3.17.0.6";
|
|
218
249
|
};
|
|
219
250
|
lint_roller = {
|
|
220
251
|
groups = ["default" "development"];
|
|
@@ -236,6 +267,16 @@
|
|
|
236
267
|
};
|
|
237
268
|
version = "1.7.0";
|
|
238
269
|
};
|
|
270
|
+
memoist3 = {
|
|
271
|
+
groups = ["default" "development"];
|
|
272
|
+
platforms = [];
|
|
273
|
+
source = {
|
|
274
|
+
remotes = ["https://rubygems.org"];
|
|
275
|
+
sha256 = "0vyma0mpjibqigzl6j9lij7zh3kvqlyi88qc0mia6l7i5i044vk8";
|
|
276
|
+
type = "gem";
|
|
277
|
+
};
|
|
278
|
+
version = "1.0.0";
|
|
279
|
+
};
|
|
239
280
|
mini_mime = {
|
|
240
281
|
groups = ["default" "development"];
|
|
241
282
|
platforms = [];
|
|
@@ -261,10 +302,10 @@
|
|
|
261
302
|
platforms = [];
|
|
262
303
|
source = {
|
|
263
304
|
remotes = ["https://rubygems.org"];
|
|
264
|
-
sha256 = "
|
|
305
|
+
sha256 = "0mlkn1vhh9lr7vljibpgspwsswk7mzm8nw6bbr616c9fbj35hlmk";
|
|
265
306
|
type = "gem";
|
|
266
307
|
};
|
|
267
|
-
version = "1.
|
|
308
|
+
version = "2.1.0";
|
|
268
309
|
};
|
|
269
310
|
parser = {
|
|
270
311
|
dependencies = ["ast" "racc"];
|
|
@@ -272,20 +313,41 @@
|
|
|
272
313
|
platforms = [];
|
|
273
314
|
source = {
|
|
274
315
|
remotes = ["https://rubygems.org"];
|
|
275
|
-
sha256 = "
|
|
316
|
+
sha256 = "0a4q5h2hcihk79dbr20scgkm56l79qp7fsvfvkxlv8nmapvxg9i1";
|
|
276
317
|
type = "gem";
|
|
277
318
|
};
|
|
278
|
-
version = "3.3.
|
|
319
|
+
version = "3.3.12.0";
|
|
320
|
+
};
|
|
321
|
+
pp = {
|
|
322
|
+
dependencies = ["prettyprint"];
|
|
323
|
+
groups = ["default" "development"];
|
|
324
|
+
platforms = [];
|
|
325
|
+
source = {
|
|
326
|
+
remotes = ["https://rubygems.org"];
|
|
327
|
+
sha256 = "0w5mha75hs8gdj75g8vl0sxpyp8rzvwq8a4jcmi4ah8cf370zjyz";
|
|
328
|
+
type = "gem";
|
|
329
|
+
};
|
|
330
|
+
version = "0.6.4";
|
|
331
|
+
};
|
|
332
|
+
prettyprint = {
|
|
333
|
+
groups = ["default" "development"];
|
|
334
|
+
platforms = [];
|
|
335
|
+
source = {
|
|
336
|
+
remotes = ["https://rubygems.org"];
|
|
337
|
+
sha256 = "14zicq3plqi217w6xahv7b8f7aj5kpxv1j1w98344ix9h5ay3j9b";
|
|
338
|
+
type = "gem";
|
|
339
|
+
};
|
|
340
|
+
version = "0.2.0";
|
|
279
341
|
};
|
|
280
342
|
prism = {
|
|
281
343
|
groups = ["default" "development"];
|
|
282
344
|
platforms = [];
|
|
283
345
|
source = {
|
|
284
346
|
remotes = ["https://rubygems.org"];
|
|
285
|
-
sha256 = "
|
|
347
|
+
sha256 = "11ggfikcs1lv17nhmhqyyp6z8nq5pkfcj6a904047hljkxm0qlvv";
|
|
286
348
|
type = "gem";
|
|
287
349
|
};
|
|
288
|
-
version = "1.
|
|
350
|
+
version = "1.9.0";
|
|
289
351
|
};
|
|
290
352
|
racc = {
|
|
291
353
|
groups = ["default" "development"];
|
|
@@ -312,20 +374,53 @@
|
|
|
312
374
|
platforms = [];
|
|
313
375
|
source = {
|
|
314
376
|
remotes = ["https://rubygems.org"];
|
|
315
|
-
sha256 = "
|
|
377
|
+
sha256 = "009p524zl0p0kfa65nii8wdmaigkmawv9pbvlcffky7islmmp0nb";
|
|
378
|
+
type = "gem";
|
|
379
|
+
};
|
|
380
|
+
version = "13.4.2";
|
|
381
|
+
};
|
|
382
|
+
rbs = {
|
|
383
|
+
dependencies = ["logger" "prism" "tsort"];
|
|
384
|
+
groups = ["default" "development"];
|
|
385
|
+
platforms = [];
|
|
386
|
+
source = {
|
|
387
|
+
remotes = ["https://rubygems.org"];
|
|
388
|
+
sha256 = "0x067q8cdam4kv5dc09iq2nzca8qm2kdl0dr22gc0ny0vj3bixsi";
|
|
389
|
+
type = "gem";
|
|
390
|
+
};
|
|
391
|
+
version = "4.2.0";
|
|
392
|
+
};
|
|
393
|
+
rdoc = {
|
|
394
|
+
dependencies = ["erb" "prism" "rbs" "tsort"];
|
|
395
|
+
groups = ["development"];
|
|
396
|
+
platforms = [];
|
|
397
|
+
source = {
|
|
398
|
+
remotes = ["https://rubygems.org"];
|
|
399
|
+
sha256 = "0sf4909q2mr9z0rpygv94z12b0yamg07gz8cba2mi5k3m448rgq3";
|
|
316
400
|
type = "gem";
|
|
317
401
|
};
|
|
318
|
-
version = "
|
|
402
|
+
version = "8.0.0";
|
|
319
403
|
};
|
|
320
404
|
regexp_parser = {
|
|
321
405
|
groups = ["default" "development"];
|
|
322
406
|
platforms = [];
|
|
323
407
|
source = {
|
|
324
408
|
remotes = ["https://rubygems.org"];
|
|
325
|
-
sha256 = "
|
|
409
|
+
sha256 = "1fwfw26a32rps78920nn29shqg2zmqv72i89j1fap41isshida9m";
|
|
326
410
|
type = "gem";
|
|
327
411
|
};
|
|
328
|
-
version = "2.
|
|
412
|
+
version = "2.12.0";
|
|
413
|
+
};
|
|
414
|
+
reline = {
|
|
415
|
+
dependencies = ["io-console"];
|
|
416
|
+
groups = ["default" "development"];
|
|
417
|
+
platforms = [];
|
|
418
|
+
source = {
|
|
419
|
+
remotes = ["https://rubygems.org"];
|
|
420
|
+
sha256 = "0gaq2lc463ap1srz7y5kh2p4dxazs7vjrpiby58d9yfvan72s0av";
|
|
421
|
+
type = "gem";
|
|
422
|
+
};
|
|
423
|
+
version = "0.7.0";
|
|
329
424
|
};
|
|
330
425
|
rspec = {
|
|
331
426
|
dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
|
|
@@ -333,10 +428,10 @@
|
|
|
333
428
|
platforms = [];
|
|
334
429
|
source = {
|
|
335
430
|
remotes = ["https://rubygems.org"];
|
|
336
|
-
sha256 = "
|
|
431
|
+
sha256 = "11q5hagj6vr694innqj4r45jrm8qcwvkxjnphqgyd66piah88qi0";
|
|
337
432
|
type = "gem";
|
|
338
433
|
};
|
|
339
|
-
version = "3.13.
|
|
434
|
+
version = "3.13.2";
|
|
340
435
|
};
|
|
341
436
|
rspec-core = {
|
|
342
437
|
dependencies = ["rspec-support"];
|
|
@@ -344,10 +439,10 @@
|
|
|
344
439
|
platforms = [];
|
|
345
440
|
source = {
|
|
346
441
|
remotes = ["https://rubygems.org"];
|
|
347
|
-
sha256 = "
|
|
442
|
+
sha256 = "0bcbh9yv6cs6pv299zs4bvalr8yxa51kcdd1pjl60yv625j3r0m8";
|
|
348
443
|
type = "gem";
|
|
349
444
|
};
|
|
350
|
-
version = "3.13.
|
|
445
|
+
version = "3.13.6";
|
|
351
446
|
};
|
|
352
447
|
rspec-expectations = {
|
|
353
448
|
dependencies = ["diff-lcs" "rspec-support"];
|
|
@@ -366,31 +461,31 @@
|
|
|
366
461
|
platforms = [];
|
|
367
462
|
source = {
|
|
368
463
|
remotes = ["https://rubygems.org"];
|
|
369
|
-
sha256 = "
|
|
464
|
+
sha256 = "0iqxmw0knjiz5nf6pgr8ihs6cjzh89f0ppj3fqiz8cvms79x6sh8";
|
|
370
465
|
type = "gem";
|
|
371
466
|
};
|
|
372
|
-
version = "3.13.
|
|
467
|
+
version = "3.13.8";
|
|
373
468
|
};
|
|
374
469
|
rspec-support = {
|
|
375
470
|
groups = ["default" "development"];
|
|
376
471
|
platforms = [];
|
|
377
472
|
source = {
|
|
378
473
|
remotes = ["https://rubygems.org"];
|
|
379
|
-
sha256 = "
|
|
474
|
+
sha256 = "0z64h5rznm2zv21vjdjshz4v0h7bxvg02yc6g7yzxakj11byah06";
|
|
380
475
|
type = "gem";
|
|
381
476
|
};
|
|
382
|
-
version = "3.13.
|
|
477
|
+
version = "3.13.7";
|
|
383
478
|
};
|
|
384
479
|
rubocop = {
|
|
385
|
-
dependencies = ["json" "language_server-protocol" "lint_roller" "parallel" "parser" "rainbow" "regexp_parser" "rubocop-ast" "ruby-progressbar" "
|
|
480
|
+
dependencies = ["json" "language_server-protocol" "lint_roller" "parallel" "parser" "rainbow" "regexp_parser" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
|
|
386
481
|
groups = ["development"];
|
|
387
482
|
platforms = [];
|
|
388
483
|
source = {
|
|
389
484
|
remotes = ["https://rubygems.org"];
|
|
390
|
-
sha256 = "
|
|
485
|
+
sha256 = "0hl2pxa6nydnh3jmgrjkdgmsj19r5yblgialym74w5f5nmjw1d4y";
|
|
391
486
|
type = "gem";
|
|
392
487
|
};
|
|
393
|
-
version = "1.
|
|
488
|
+
version = "1.90.0";
|
|
394
489
|
};
|
|
395
490
|
rubocop-ast = {
|
|
396
491
|
dependencies = ["parser" "prism"];
|
|
@@ -398,10 +493,10 @@
|
|
|
398
493
|
platforms = [];
|
|
399
494
|
source = {
|
|
400
495
|
remotes = ["https://rubygems.org"];
|
|
401
|
-
sha256 = "
|
|
496
|
+
sha256 = "1nw84xk6vc2ls8sxqvyhxs2agh4l0jrws85d4bi3x0501lq8ijmr";
|
|
402
497
|
type = "gem";
|
|
403
498
|
};
|
|
404
|
-
version = "1.
|
|
499
|
+
version = "1.50.0";
|
|
405
500
|
};
|
|
406
501
|
rubocop-rake = {
|
|
407
502
|
dependencies = ["lint_roller" "rubocop"];
|
|
@@ -415,15 +510,15 @@
|
|
|
415
510
|
version = "0.7.1";
|
|
416
511
|
};
|
|
417
512
|
rubocop-rspec = {
|
|
418
|
-
dependencies = ["lint_roller" "rubocop"];
|
|
513
|
+
dependencies = ["lint_roller" "regexp_parser" "rubocop"];
|
|
419
514
|
groups = ["development"];
|
|
420
515
|
platforms = [];
|
|
421
516
|
source = {
|
|
422
517
|
remotes = ["https://rubygems.org"];
|
|
423
|
-
sha256 = "
|
|
518
|
+
sha256 = "1qk5bx4vg7n17i9475h6dqkhay9m3s6vanq9y35hxl9cb762wghb";
|
|
424
519
|
type = "gem";
|
|
425
520
|
};
|
|
426
|
-
version = "3.
|
|
521
|
+
version = "3.10.2";
|
|
427
522
|
};
|
|
428
523
|
ruby-progressbar = {
|
|
429
524
|
groups = ["default" "development"];
|
|
@@ -436,56 +531,35 @@
|
|
|
436
531
|
version = "1.13.0";
|
|
437
532
|
};
|
|
438
533
|
simplecov = {
|
|
439
|
-
dependencies = ["docile" "simplecov-html" "simplecov_json_formatter"];
|
|
440
534
|
groups = ["default"];
|
|
441
535
|
platforms = [];
|
|
442
536
|
source = {
|
|
443
537
|
remotes = ["https://rubygems.org"];
|
|
444
|
-
sha256 = "
|
|
538
|
+
sha256 = "0y0ya82s3zi2wmkadnmb3l9r13mbsvd1g63n9mlp8bhb7zqmx0i5";
|
|
445
539
|
type = "gem";
|
|
446
540
|
};
|
|
447
|
-
version = "
|
|
448
|
-
};
|
|
449
|
-
simplecov-html = {
|
|
450
|
-
groups = ["default"];
|
|
451
|
-
platforms = [];
|
|
452
|
-
source = {
|
|
453
|
-
remotes = ["https://rubygems.org"];
|
|
454
|
-
sha256 = "0ikjfwydgs08nm3xzc4cn4b6z6rmcrj2imp84xcnimy2wxa8w2xx";
|
|
455
|
-
type = "gem";
|
|
456
|
-
};
|
|
457
|
-
version = "0.13.2";
|
|
458
|
-
};
|
|
459
|
-
simplecov_json_formatter = {
|
|
460
|
-
groups = ["default"];
|
|
461
|
-
platforms = [];
|
|
462
|
-
source = {
|
|
463
|
-
remotes = ["https://rubygems.org"];
|
|
464
|
-
sha256 = "0a5l0733hj7sk51j81ykfmlk2vd5vaijlq9d5fn165yyx3xii52j";
|
|
465
|
-
type = "gem";
|
|
466
|
-
};
|
|
467
|
-
version = "0.1.4";
|
|
541
|
+
version = "1.1.1";
|
|
468
542
|
};
|
|
469
543
|
sys-uname = {
|
|
470
|
-
dependencies = ["ffi"];
|
|
544
|
+
dependencies = ["ffi" "memoist3"];
|
|
471
545
|
groups = ["default" "development"];
|
|
472
546
|
platforms = [];
|
|
473
547
|
source = {
|
|
474
548
|
remotes = ["https://rubygems.org"];
|
|
475
|
-
sha256 = "
|
|
549
|
+
sha256 = "0yvd71lzd2k46940k9l3l3yyjyxc4j1w6nmyrcjkqfdhj5j7wkbq";
|
|
476
550
|
type = "gem";
|
|
477
551
|
};
|
|
478
|
-
version = "1.
|
|
552
|
+
version = "1.5.1";
|
|
479
553
|
};
|
|
480
554
|
thor = {
|
|
481
555
|
groups = ["default" "development"];
|
|
482
556
|
platforms = [];
|
|
483
557
|
source = {
|
|
484
558
|
remotes = ["https://rubygems.org"];
|
|
485
|
-
sha256 = "
|
|
559
|
+
sha256 = "0wsy88vg2mazl039392hqrcwvs5nb9kq8jhhrrclir2px1gybag3";
|
|
486
560
|
type = "gem";
|
|
487
561
|
};
|
|
488
|
-
version = "1.
|
|
562
|
+
version = "1.5.0";
|
|
489
563
|
};
|
|
490
564
|
tsort = {
|
|
491
565
|
groups = ["default" "development"];
|
|
@@ -503,29 +577,29 @@
|
|
|
503
577
|
platforms = [];
|
|
504
578
|
source = {
|
|
505
579
|
remotes = ["https://rubygems.org"];
|
|
506
|
-
sha256 = "
|
|
580
|
+
sha256 = "0hiwhnqpq271xqari6mg996fgjps42sffm9cpk6ljn8sd2srdp8c";
|
|
507
581
|
type = "gem";
|
|
508
582
|
};
|
|
509
|
-
version = "3.
|
|
583
|
+
version = "3.2.0";
|
|
510
584
|
};
|
|
511
585
|
unicode-emoji = {
|
|
512
586
|
groups = ["default" "development"];
|
|
513
587
|
platforms = [];
|
|
514
588
|
source = {
|
|
515
589
|
remotes = ["https://rubygems.org"];
|
|
516
|
-
sha256 = "
|
|
590
|
+
sha256 = "03zqn207zypycbz5m9mn7ym763wgpk7hcqbkpx02wrbm1wank7ji";
|
|
517
591
|
type = "gem";
|
|
518
592
|
};
|
|
519
|
-
version = "4.0
|
|
593
|
+
version = "4.2.0";
|
|
520
594
|
};
|
|
521
595
|
yard = {
|
|
522
596
|
groups = ["development"];
|
|
523
597
|
platforms = [];
|
|
524
598
|
source = {
|
|
525
599
|
remotes = ["https://rubygems.org"];
|
|
526
|
-
sha256 = "
|
|
600
|
+
sha256 = "0lfwngmsz3xq9k9la9890cqpm4vk3rda4171yzms7f3w7x4i3qjj";
|
|
527
601
|
type = "gem";
|
|
528
602
|
};
|
|
529
|
-
version = "0.9.
|
|
603
|
+
version = "0.9.45";
|
|
530
604
|
};
|
|
531
605
|
}
|
data/lib/bashcov/detective.rb
CHANGED
data/lib/bashcov/lexer.rb
CHANGED
|
@@ -13,7 +13,7 @@ module Bashcov
|
|
|
13
13
|
IGNORE_END_WITH = %w[(].freeze
|
|
14
14
|
|
|
15
15
|
# Lines containing only one of these keywords are irrelevant for coverage
|
|
16
|
-
IGNORE_IS = %w[esac if then else elif fi while do done { } ;;].freeze
|
|
16
|
+
IGNORE_IS = %w[esac if then else elif fi while do done { } ;; ( )].freeze
|
|
17
17
|
|
|
18
18
|
# @param [String] filename File to analyze
|
|
19
19
|
# @param [Hash] coverage Coverage with executed lines marked
|
|
@@ -35,34 +35,36 @@ module Bashcov
|
|
|
35
35
|
mark_multiline(
|
|
36
36
|
lines, lineno,
|
|
37
37
|
/\A[^\n]*\b=\([^()]*\)/,
|
|
38
|
-
forward: false
|
|
38
|
+
forward: false,
|
|
39
39
|
)
|
|
40
40
|
|
|
41
41
|
# heredoc
|
|
42
42
|
mark_multiline(
|
|
43
43
|
lines, lineno,
|
|
44
|
-
/\A[^\n]
|
|
44
|
+
/\A[^\n]+<<-?\s*'?(\w+)'?.*$.*\1/m,
|
|
45
45
|
)
|
|
46
46
|
|
|
47
47
|
# multiline string concatenated with backslashes
|
|
48
48
|
mark_multiline(
|
|
49
49
|
lines, lineno,
|
|
50
|
-
/\A[^\n]+\\$(\s*['"][^'"]*['"]\s*\\$){1,}\s*['"][^'"]*['"]\s
|
|
50
|
+
/\A[^\n]+\\$(\s*['"][^'"]*['"]\s*\\$){1,}\s*['"][^'"]*['"]\s*$/,
|
|
51
51
|
)
|
|
52
52
|
|
|
53
53
|
# simple line continuations with backslashes
|
|
54
54
|
mark_multiline(
|
|
55
55
|
lines, lineno,
|
|
56
|
-
/\A([^\n&|;]*[^\\&|;](\\\\)*\\\n)+[^\n&|;]*[^\n\\&|;](\\\\)
|
|
56
|
+
/\A([^\n&|;]*[^\\&|;](\\\\)*\\\n)+[^\n&|;]*[^\n\\&|;](\\\\)*$/,
|
|
57
57
|
)
|
|
58
58
|
|
|
59
59
|
# multiline string concatenated with newlines
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
60
|
+
[false, true].each do |direction|
|
|
61
|
+
%w[' "].each do |char|
|
|
62
|
+
mark_multiline(
|
|
63
|
+
lines, lineno,
|
|
64
|
+
/\A[^\n]+[\s=]+#{char}[^#{char}]*#{char}/m,
|
|
65
|
+
forward: direction,
|
|
66
|
+
)
|
|
67
|
+
end
|
|
66
68
|
end
|
|
67
69
|
|
|
68
70
|
mark_line(line, lineno)
|
|
@@ -72,6 +74,9 @@ module Bashcov
|
|
|
72
74
|
private
|
|
73
75
|
|
|
74
76
|
def mark_multiline(lines, lineno, regexp, forward: true)
|
|
77
|
+
# skip if we are already inside marked multiline string
|
|
78
|
+
return unless @coverage[lineno + 1].nil?
|
|
79
|
+
|
|
75
80
|
seek_forward = lines[lineno..].join
|
|
76
81
|
return unless (multiline_match = seek_forward.match(regexp))
|
|
77
82
|
|
|
@@ -104,7 +109,7 @@ module Bashcov
|
|
|
104
109
|
line.start_with?(*IGNORE_START_WITH) ||
|
|
105
110
|
line.end_with?(*IGNORE_END_WITH)
|
|
106
111
|
|
|
107
|
-
return false if line =~ /\A[a-zA-Z_][a-zA-Z0-9_
|
|
112
|
+
return false if line =~ /\A[a-zA-Z_@][a-zA-Z0-9_@\-:.]*\(\)/ # function declared without the `function` keyword
|
|
108
113
|
return false if line =~ /\A[^)]+\)\Z/ # case statement selector, e.g. `--help)`
|
|
109
114
|
|
|
110
115
|
true
|
data/lib/bashcov/runner.rb
CHANGED
data/lib/bashcov/version.rb
CHANGED
data/lib/bashcov/xtrace.rb
CHANGED
|
@@ -85,7 +85,7 @@ module Bashcov
|
|
|
85
85
|
|
|
86
86
|
field_count = FIELDS.length
|
|
87
87
|
fields = @field_stream.each(
|
|
88
|
-
self.class.delimiter, field_count, PS4_START_REGEXP
|
|
88
|
+
self.class.delimiter, field_count, PS4_START_REGEXP,
|
|
89
89
|
)
|
|
90
90
|
|
|
91
91
|
# +take(field_count)+ would be more natural here, but doesn't seem to
|
|
@@ -124,7 +124,7 @@ module Bashcov
|
|
|
124
124
|
return
|
|
125
125
|
else
|
|
126
126
|
raise XtraceError.new(
|
|
127
|
-
"expected integer for LINENO, got #{lineno.inspect}", @files
|
|
127
|
+
"expected integer for LINENO, got #{lineno.inspect}", @files,
|
|
128
128
|
)
|
|
129
129
|
end
|
|
130
130
|
|
data/lib/bashcov.rb
CHANGED
|
@@ -10,7 +10,7 @@ require "bashcov/version"
|
|
|
10
10
|
module Bashcov
|
|
11
11
|
# A +Struct+ to store Bashcov configuration
|
|
12
12
|
Options = Struct.new(
|
|
13
|
-
*%i[skip_uncovered mute bash_path root_directory command command_name]
|
|
13
|
+
*%i[skip_uncovered mute bash_path root_directory command command_name],
|
|
14
14
|
)
|
|
15
15
|
|
|
16
16
|
class << self
|
|
@@ -72,7 +72,9 @@ module Bashcov
|
|
|
72
72
|
# this is used early for the `BASH_VERSION` definition, so first use will likely error
|
|
73
73
|
begin
|
|
74
74
|
return @options.bash_path if @options.bash_path
|
|
75
|
-
rescue NoMethodError
|
|
75
|
+
rescue NoMethodError
|
|
76
|
+
nil
|
|
77
|
+
end
|
|
76
78
|
|
|
77
79
|
# support the same `BASHCOV_BASH_PATH` environment variable used in the spec tests
|
|
78
80
|
return ENV.fetch("BASHCOV_BASH_PATH", nil) unless ENV.fetch("BASHCOV_BASH_PATH", "").empty?
|
|
@@ -100,7 +102,7 @@ module Bashcov
|
|
|
100
102
|
# Define option accessors
|
|
101
103
|
Options.new.members.each do |option|
|
|
102
104
|
[option, "#{option}="].each do |method|
|
|
103
|
-
next if
|
|
105
|
+
next if method_defined?(method, false)
|
|
104
106
|
|
|
105
107
|
define_method method do |*args|
|
|
106
108
|
options.public_send(*[method, *args])
|
data/screenshot.png
ADDED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bashcov
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 4.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Cédric Félizard
|
|
@@ -15,14 +15,14 @@ dependencies:
|
|
|
15
15
|
requirements:
|
|
16
16
|
- - "~>"
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: '
|
|
18
|
+
version: '1.1'
|
|
19
19
|
type: :runtime
|
|
20
20
|
prerelease: false
|
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
22
|
requirements:
|
|
23
23
|
- - "~>"
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: '
|
|
25
|
+
version: '1.1'
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
27
|
name: aruba
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -37,6 +37,20 @@ dependencies:
|
|
|
37
37
|
- - ">="
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
39
|
version: '0'
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: benchmark
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - ">="
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '0'
|
|
47
|
+
type: :development
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - ">="
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '0'
|
|
40
54
|
- !ruby/object:Gem::Dependency
|
|
41
55
|
name: bundler-audit
|
|
42
56
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -79,6 +93,20 @@ dependencies:
|
|
|
79
93
|
- - "~>"
|
|
80
94
|
- !ruby/object:Gem::Version
|
|
81
95
|
version: 1.16.0
|
|
96
|
+
- !ruby/object:Gem::Dependency
|
|
97
|
+
name: irb
|
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
|
99
|
+
requirements:
|
|
100
|
+
- - ">="
|
|
101
|
+
- !ruby/object:Gem::Version
|
|
102
|
+
version: '0'
|
|
103
|
+
type: :development
|
|
104
|
+
prerelease: false
|
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
106
|
+
requirements:
|
|
107
|
+
- - ">="
|
|
108
|
+
- !ruby/object:Gem::Version
|
|
109
|
+
version: '0'
|
|
82
110
|
- !ruby/object:Gem::Dependency
|
|
83
111
|
name: rake
|
|
84
112
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -93,6 +121,20 @@ dependencies:
|
|
|
93
121
|
- - ">="
|
|
94
122
|
- !ruby/object:Gem::Version
|
|
95
123
|
version: '0'
|
|
124
|
+
- !ruby/object:Gem::Dependency
|
|
125
|
+
name: rdoc
|
|
126
|
+
requirement: !ruby/object:Gem::Requirement
|
|
127
|
+
requirements:
|
|
128
|
+
- - ">="
|
|
129
|
+
- !ruby/object:Gem::Version
|
|
130
|
+
version: '0'
|
|
131
|
+
type: :development
|
|
132
|
+
prerelease: false
|
|
133
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
134
|
+
requirements:
|
|
135
|
+
- - ">="
|
|
136
|
+
- !ruby/object:Gem::Version
|
|
137
|
+
version: '0'
|
|
96
138
|
- !ruby/object:Gem::Dependency
|
|
97
139
|
name: rspec
|
|
98
140
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -202,8 +244,8 @@ files:
|
|
|
202
244
|
- lib/bashcov/runner.rb
|
|
203
245
|
- lib/bashcov/version.rb
|
|
204
246
|
- lib/bashcov/xtrace.rb
|
|
247
|
+
- screenshot.png
|
|
205
248
|
- shell.nix
|
|
206
|
-
- test.sh
|
|
207
249
|
homepage: https://github.com/infertux/bashcov
|
|
208
250
|
licenses:
|
|
209
251
|
- MIT
|
|
@@ -219,14 +261,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
219
261
|
requirements:
|
|
220
262
|
- - ">="
|
|
221
263
|
- !ruby/object:Gem::Version
|
|
222
|
-
version: 3.
|
|
264
|
+
version: 3.2.0
|
|
223
265
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
224
266
|
requirements:
|
|
225
267
|
- - ">="
|
|
226
268
|
- !ruby/object:Gem::Version
|
|
227
269
|
version: '0'
|
|
228
270
|
requirements: []
|
|
229
|
-
rubygems_version:
|
|
271
|
+
rubygems_version: 4.0.10
|
|
230
272
|
specification_version: 4
|
|
231
273
|
summary: Code coverage tool for Bash
|
|
232
274
|
test_files: []
|