radius-spec 0.5.0 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
[![Build Status](https://travis-ci.org/RadiusNetworks/radius-spec.svg?branch=master)](https://travis-ci.org/RadiusNetworks/radius-spec)
|
4
3
|
[![Maintainability](https://api.codeclimate.com/v1/badges/701295df43d53e25eafe/maintainability)](https://codeclimate.com/github/RadiusNetworks/radius-spec/maintainability)
|
5
4
|
[![Gem Version](https://badge.fury.io/rb/radius-spec.svg)](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
|
+
```
|