radius-spec 0.5.0 → 0.9.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/.github/workflows/ci.yml +28 -0
- data/.github/workflows/reviewdog.yml +21 -0
- data/.rubocop.yml +9 -5
- data/CHANGELOG.md +98 -0
- data/Gemfile +2 -3
- data/README.md +5 -6
- data/benchmarks/call_vs_yield.rb +33 -2
- data/benchmarks/casecmp_vs_downcase.rb +488 -0
- data/benchmarks/cover_vs_include.rb +2 -2
- data/benchmarks/format_string.rb +3 -3
- data/benchmarks/hash_each.rb +305 -0
- data/benchmarks/hash_merge.rb +1 -1
- data/benchmarks/hash_transform.rb +455 -0
- data/benchmarks/style_hash_like_case.rb +285 -0
- data/benchmarks/unfreeze_string.rb +0 -2
- data/bin/ci +1 -1
- data/common_rubocop.yml +166 -45
- data/common_rubocop_rails.yml +47 -20
- data/lib/radius/spec/model_factory.rb +0 -2
- data/lib/radius/spec/rspec.rb +9 -0
- data/lib/radius/spec/vcr.rb +0 -2
- data/lib/radius/spec/version.rb +1 -1
- data/radius-spec.gemspec +8 -7
- metadata +42 -19
- data/.travis.yml +0 -17
- data/bin/ci-code-review +0 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b6b5e94783c4ccbdf8bdf80de184fc19cd52ac9ee9f2a7f92329b261bdb00f59
|
4
|
+
data.tar.gz: e492ea78f99e146011d2279e74fc1a3b1091aac13f311ef81324df43088ce440
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 83005750c2029b0a2765e176a8d819ed7984376c13ac17b881b442d055956ffd28548c32af56bb7298b1cc60d976c0c3cb25d10bbc2aed5bec0f4b16c72e8324
|
7
|
+
data.tar.gz: 95d8183b73cfa36c5f3e01680bf6d2212016e2355d0a14ed95b7d38800b4d2e44ce9d08dbcdd0336bf6beb20731bfb3a834258a13b6ad357443918c4ec505ae8
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# This workflow uses actions that are not certified by GitHub.
|
2
|
+
# They are provided by a third-party and are governed by
|
3
|
+
# separate terms of service, privacy policy, and support
|
4
|
+
# documentation.
|
5
|
+
# This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
|
6
|
+
# For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
|
7
|
+
|
8
|
+
name: Ruby
|
9
|
+
|
10
|
+
on: [push, pull_request]
|
11
|
+
|
12
|
+
jobs:
|
13
|
+
test:
|
14
|
+
|
15
|
+
runs-on: ubuntu-latest
|
16
|
+
strategy:
|
17
|
+
matrix:
|
18
|
+
ruby-version: ['2.5', '2.6', '2.7']
|
19
|
+
|
20
|
+
steps:
|
21
|
+
- uses: actions/checkout@v2
|
22
|
+
- name: Set up Ruby
|
23
|
+
uses: ruby/setup-ruby@v1
|
24
|
+
with:
|
25
|
+
ruby-version: ${{ matrix.ruby-version }}
|
26
|
+
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
27
|
+
- name: Run tests
|
28
|
+
run: ./bin/ci
|
@@ -0,0 +1,21 @@
|
|
1
|
+
name: Review Dog
|
2
|
+
on: [pull_request]
|
3
|
+
jobs:
|
4
|
+
rubocop:
|
5
|
+
name: Rubocop
|
6
|
+
runs-on: ubuntu-latest
|
7
|
+
steps:
|
8
|
+
- name: Check out code
|
9
|
+
uses: actions/checkout@v1
|
10
|
+
- uses: ruby/setup-ruby@v1 # ruby-version pulled .ruby-version file automatically
|
11
|
+
with:
|
12
|
+
ruby-version: '2.7'
|
13
|
+
bundler-cache: true
|
14
|
+
- name: rubocop
|
15
|
+
uses: reviewdog/action-rubocop@v1
|
16
|
+
with:
|
17
|
+
github_token: ${{ secrets.github_token }}
|
18
|
+
reporter: github-pr-review # Default is github-pr-check
|
19
|
+
rubocop_version: gemfile
|
20
|
+
rubocop_extensions: rubocop-rails:gemfile
|
21
|
+
|
data/.rubocop.yml
CHANGED
@@ -3,7 +3,13 @@ inherit_mode:
|
|
3
3
|
- Exclude
|
4
4
|
- IgnoredPatterns
|
5
5
|
|
6
|
-
inherit_from:
|
6
|
+
inherit_from: common_rubocop_rails.yml
|
7
|
+
|
8
|
+
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
9
|
+
# URISchemes: http, https
|
10
|
+
Layout/LineLength:
|
11
|
+
Exclude:
|
12
|
+
- 'radius-spec.gemspec'
|
7
13
|
|
8
14
|
# Configuration parameters: CountComments, ExcludedMethods.
|
9
15
|
Metrics/BlockLength:
|
@@ -11,8 +17,6 @@ Metrics/BlockLength:
|
|
11
17
|
- 'benchmarks/**/*'
|
12
18
|
- 'lib/radius/spec/rspec.rb'
|
13
19
|
|
14
|
-
|
15
|
-
# URISchemes: http, https
|
16
|
-
Metrics/LineLength:
|
20
|
+
Style/Documentation:
|
17
21
|
Exclude:
|
18
|
-
- '
|
22
|
+
- 'benchmarks/**/*'
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,101 @@
|
|
1
|
+
## 0.9.0 (September 30, 2021)
|
2
|
+
|
3
|
+
[Full Changelog](https://github.com/RadiusNetworks/radius-spec/compare/v0.8.0...v0.9.0)
|
4
|
+
|
5
|
+
### Enhancements
|
6
|
+
|
7
|
+
- Upgrade to Rubocop 0.89.x (Aaron Hill, Aaron Kromer, Ben Reynolds, Chris
|
8
|
+
Hoffman, James Nebeker, JC Avena, Sam Kim #27)
|
9
|
+
- Upgrade to Rubocop Rails 2.6.x (Aaron Hill, Aaron Kromer, Ben Reynolds, Chris
|
10
|
+
Hoffman, James Nebeker, JC Avena, Sam Kim #27)
|
11
|
+
- Adjust common Rubocop configuration (Aaron Hill, Aaron Kromer, Ben Reynolds,
|
12
|
+
Chris Hoffman, James Nebeker, JC Avena, Sam Kim #27)
|
13
|
+
- Configure multiple metrics to use the `CountAsOne` option for array, hash
|
14
|
+
and heredocs
|
15
|
+
- Disable `Style/SlicingWithRange` as we do not care about the style
|
16
|
+
- Includes new `shared_example` / `shared_context` inclusion aliases
|
17
|
+
`has_behavior` and `it_has_behavior` for behavior driven development language
|
18
|
+
(Aaron Kromer, Ben Reynolds #28)
|
19
|
+
|
20
|
+
### Bug Fixes
|
21
|
+
|
22
|
+
None
|
23
|
+
|
24
|
+
### Breaking Change
|
25
|
+
|
26
|
+
- Change the default behavior from `:warn` to `:raise` for RSpec expectations
|
27
|
+
behavior `on_potential_false_positives` (Aaron Kromer, Ben Reynolds #28)
|
28
|
+
|
29
|
+
|
30
|
+
## 0.8.0 (August 26, 2021)
|
31
|
+
|
32
|
+
[Full Changelog](https://github.com/RadiusNetworks/radius-spec/compare/v0.7.0...v0.8.0)
|
33
|
+
|
34
|
+
### Enhancements
|
35
|
+
|
36
|
+
- Upgrade to Rubocop 0.82.x (Aaron Hill, Aaron Kromer, Ben Reynolds, Chris
|
37
|
+
Hoffman, James Nebeker, JC Avena #26)
|
38
|
+
- Upgrade to Rubocop Rails 2.5.x (Aaron Hill, Aaron Kromer, Ben Reynolds, Chris
|
39
|
+
Hoffman, James Nebeker, JC Avena #26)
|
40
|
+
- Adjust common Rubocop configuration (Aaron Hill, Aaron Kromer, Ben Reynolds,
|
41
|
+
Chris Hoffman, James Nebeker, JC Avena #26)
|
42
|
+
- Rename metrics/configuration parameters per version upgrade requirements
|
43
|
+
- Use the stricter `always_true` check for `Style/FrozenStringLiteralComment`
|
44
|
+
- Opt-in to new cops/checks behaving per their default settings
|
45
|
+
- Adjust common Rubocop Rails configuration (Aaron Hill, Aaron Kromer, Ben
|
46
|
+
Reynolds, Chris Hoffman, James Nebeker, JC Avena #26)
|
47
|
+
- Disable `Rails/IndexBy` by default
|
48
|
+
- Disable `Rails/IndexWith` by default
|
49
|
+
|
50
|
+
### Bug Fixes
|
51
|
+
|
52
|
+
None
|
53
|
+
|
54
|
+
|
55
|
+
## 0.7.0 (July 23, 2021)
|
56
|
+
|
57
|
+
[Full Changelog](https://github.com/RadiusNetworks/radius-spec/compare/v0.6.0...0.7.0)
|
58
|
+
|
59
|
+
### Enhancements
|
60
|
+
|
61
|
+
- Upgrade to Rubocop 0.73.x (Aaron Hill, Aaron Kromer, Ben Reynolds, Chris
|
62
|
+
Hoffman, James Nebeker #24)
|
63
|
+
- Upgrade to Rubocop Rails 2.2.x (Aaron Hill, Aaron Kromer, Ben Reynolds, Chris
|
64
|
+
Hoffman, James Nebeker #24)
|
65
|
+
- Adjust common Rubocop configuration (Aaron Hill, Aaron Kromer, Ben Reynolds,
|
66
|
+
Chris Hoffman, James Nebeker #24)
|
67
|
+
- Target Ruby 2.7 by default
|
68
|
+
- Enable `Lint/HeredocMethodCallPosition` by default
|
69
|
+
- Use `StandardError` for the suggested parent classes of errors
|
70
|
+
- Bump metric check maximums to provide a little more wiggle room
|
71
|
+
- Disable `Naming/RescuedExceptionsVariableName` by default
|
72
|
+
- Adjust common Rubocop Rails configuration (Aaron Hill, Aaron Kromer, Ben
|
73
|
+
Reynolds, Chris Hoffman, James Nebeker #24)
|
74
|
+
- Disable `Rails/IgnoredSkipActionFilterOption` by default
|
75
|
+
|
76
|
+
### Bug Fixes
|
77
|
+
|
78
|
+
None
|
79
|
+
|
80
|
+
|
81
|
+
## 0.6.0 (August 6, 2020)
|
82
|
+
|
83
|
+
[Full Changelog](https://github.com/RadiusNetworks/radius-spec/compare/v0.5.0...v0.6.0)
|
84
|
+
|
85
|
+
### Enhancements
|
86
|
+
|
87
|
+
- Exclude more bundler binstubs from Rubocop (Aaron Kromer, #18, #20)
|
88
|
+
- Exclude `chdir` and `Capybara.register_driver` configuration blocks from
|
89
|
+
`Metrics/BlockLength` checks (Aaron Kromer, #18)
|
90
|
+
- Exclude gem specs from block and line length metrics (Aaron Kromer, #20)
|
91
|
+
- Standardize on key style of `Layout/AlignHash` (Aaron Kromer, #18)
|
92
|
+
- Upgrade to Rubocop 0.62.x (Aaron Kromer, #21)
|
93
|
+
|
94
|
+
### Bug Fixes
|
95
|
+
|
96
|
+
None
|
97
|
+
|
98
|
+
|
1
99
|
## 0.5.0 (September 26, 2018)
|
2
100
|
|
3
101
|
[Full Changelog](https://github.com/RadiusNetworks/radius-spec/compare/v0.4.0...v0.5.0)
|
data/Gemfile
CHANGED
@@ -8,10 +8,9 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
|
|
8
8
|
gemspec
|
9
9
|
|
10
10
|
group :benchmark, optional: true do
|
11
|
+
gem 'activesupport', require: false
|
11
12
|
gem 'benchmark-ips', require: false
|
12
|
-
|
13
|
-
# strict and it was blocking other gems from installing / updating
|
14
|
-
gem 'kalibera', require: false, git: 'https://github.com/cupakromer/libkalibera.git'
|
13
|
+
gem 'kalibera', require: false
|
15
14
|
end
|
16
15
|
|
17
16
|
group :debug do
|
data/README.md
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
# Common RSpec Setup and Plug-ins
|
2
2
|
|
3
|
-
[](https://travis-ci.org/RadiusNetworks/radius-spec)
|
4
3
|
[](https://codeclimate.com/github/RadiusNetworks/radius-spec/maintainability)
|
5
4
|
[](https://badge.fury.io/rb/radius-spec)
|
6
5
|
|
@@ -123,17 +122,17 @@ inherit_mode:
|
|
123
122
|
|
124
123
|
# Available for projects which cannot include this gem (i.e. Ruby < 2.5)
|
125
124
|
inherit_from:
|
126
|
-
- https://raw.githubusercontent.com/RadiusNetworks/radius-spec/
|
125
|
+
- https://raw.githubusercontent.com/RadiusNetworks/radius-spec/main/common_rubocop.yml
|
127
126
|
# Use the following instead if it is a Rails project
|
128
|
-
- https://raw.githubusercontent.com/RadiusNetworks/radius-spec/
|
127
|
+
- https://raw.githubusercontent.com/RadiusNetworks/radius-spec/main/common_rubocop_rails.yml
|
129
128
|
```
|
130
129
|
|
131
130
|
When using the raw URL you may need to add the following to the project's
|
132
131
|
`.gitignore` file:
|
133
132
|
|
134
133
|
```
|
135
|
-
.rubocop-https---raw-githubusercontent-com-RadiusNetworks-radius-spec-
|
136
|
-
.rubocop-https---raw-githubusercontent-com-RadiusNetworks-radius-spec-
|
134
|
+
.rubocop-https---raw-githubusercontent-com-RadiusNetworks-radius-spec-main-common-rubocop-rails-yml
|
135
|
+
.rubocop-https---raw-githubusercontent-com-RadiusNetworks-radius-spec-main-common-rubocop-yml
|
137
136
|
```
|
138
137
|
|
139
138
|
#### General Inheritance Notes
|
@@ -798,4 +797,4 @@ conduct.
|
|
798
797
|
|
799
798
|
Everyone interacting in the Radius::Spec project’s codebases, issue trackers,
|
800
799
|
chat rooms and mailing lists is expected to follow the [code of
|
801
|
-
conduct](https://github.com/RadiusNetworks/radius-spec/blob/
|
800
|
+
conduct](https://github.com/RadiusNetworks/radius-spec/blob/main/CODE_OF_CONDUCT.md).
|
data/benchmarks/call_vs_yield.rb
CHANGED
@@ -5,7 +5,6 @@ require_relative 'bm_setup'
|
|
5
5
|
|
6
6
|
display_benchmark_header
|
7
7
|
|
8
|
-
# rubocop:disable Performance/RedundantBlockCall
|
9
8
|
def block_call(&block)
|
10
9
|
block.call
|
11
10
|
end
|
@@ -77,7 +76,6 @@ section "Block call vs yield" do |bench|
|
|
77
76
|
end
|
78
77
|
end
|
79
78
|
end
|
80
|
-
# rubocop:enable Performance/RedundantBlockCall
|
81
79
|
|
82
80
|
__END__
|
83
81
|
|
@@ -146,3 +144,36 @@ Comparison:
|
|
146
144
|
block.call: 3557929.5 i/s - 5.12x (± 0.14) slower
|
147
145
|
with 95.0% confidence
|
148
146
|
```
|
147
|
+
|
148
|
+
### Environment
|
149
|
+
|
150
|
+
ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin16]
|
151
|
+
GC Disabled: false
|
152
|
+
|
153
|
+
### Test Cases
|
154
|
+
|
155
|
+
#### Block call vs yield
|
156
|
+
|
157
|
+
```
|
158
|
+
Warming up --------------------------------------
|
159
|
+
block.call 252.830k i/100ms
|
160
|
+
block yield 266.647k i/100ms
|
161
|
+
block arg only 275.856k i/100ms
|
162
|
+
no arg yield 271.677k i/100ms
|
163
|
+
pass through block 251.117k i/100ms
|
164
|
+
Calculating -------------------------------------
|
165
|
+
block.call 11.729M (± 0.9%) i/s - 58.404M in 5.004905s
|
166
|
+
block yield 13.216M (± 0.8%) i/s - 65.862M in 5.007922s
|
167
|
+
block arg only 17.288M (± 0.9%) i/s - 86.067M in 5.009110s
|
168
|
+
no arg yield 16.109M (± 0.9%) i/s - 80.145M in 5.006225s
|
169
|
+
pass through block 10.175M (± 1.0%) i/s - 50.726M in 5.010616s
|
170
|
+
with 95.0% confidence
|
171
|
+
|
172
|
+
Comparison:
|
173
|
+
block arg only: 17287836.2 i/s
|
174
|
+
no arg yield: 16108506.9 i/s - 1.07x (± 0.01) slower
|
175
|
+
block yield: 13215609.2 i/s - 1.31x (± 0.02) slower
|
176
|
+
block.call: 11729199.4 i/s - 1.47x (± 0.02) slower
|
177
|
+
pass through block: 10174648.1 i/s - 1.70x (± 0.02) slower
|
178
|
+
with 95.0% confidence
|
179
|
+
```
|