radius-spec 0.9.0 → 0.12.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/dependabot.yml +10 -0
- data/.rubocop.yml +2 -2
- data/CHANGELOG.md +99 -0
- data/Gemfile +1 -1
- data/README.md +4 -4
- data/benchmarks/bm_setup.rb +1 -1
- data/benchmarks/format_string.rb +3 -3
- data/benchmarks/hash_transform.rb +4 -4
- data/bin/bundle +114 -0
- data/common_rubocop.yml +115 -12
- data/common_rubocop_rails.yml +61 -6
- data/lib/radius/spec/model_factory.rb +8 -1
- data/lib/radius/spec/rspec.rb +5 -0
- data/lib/radius/spec/vcr.rb +10 -7
- data/lib/radius/spec/version.rb +1 -1
- data/radius-spec.gemspec +3 -2
- metadata +28 -13
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 74f0fd0a301ab4e74f86ed4aa183e94c3cbd5c6c795ea67cf24ac76ec2390a76
|
|
4
|
+
data.tar.gz: 43c5ba09b93ff99efb70b05e653dce5e7a7663bcfb567df964a20ee010eca7e9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 62e586e2fdb6396509465475db8d78af5c0e04ae66e8f07a86a740c2537d403490bc55eae9326d4cf4412668b9fd7fc3d82362798fbe0a2f02b5113fc57f62f4
|
|
7
|
+
data.tar.gz: 5194070d9b33c0771224abcfb58f7e63a4869680df3bef1e606fb04d6720a8ed44f5cbba8c5d7aad973e8ebb3b5815486c6e6b62ac3b8cceac83d140d3a73b51
|
data/.rubocop.yml
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
inherit_mode:
|
|
2
2
|
merge:
|
|
3
3
|
- Exclude
|
|
4
|
-
-
|
|
4
|
+
- AllowedPatterns
|
|
5
5
|
|
|
6
6
|
inherit_from: common_rubocop_rails.yml
|
|
7
7
|
|
|
8
|
-
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives,
|
|
8
|
+
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
|
|
9
9
|
# URISchemes: http, https
|
|
10
10
|
Layout/LineLength:
|
|
11
11
|
Exclude:
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,102 @@
|
|
|
1
|
+
## Development
|
|
2
|
+
|
|
3
|
+
[Full Changelog](https://github.com/RadiusNetworks/radius-spec/compare/v0.9.0...main)
|
|
4
|
+
|
|
5
|
+
### Enhancements
|
|
6
|
+
|
|
7
|
+
- TODO
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
- TODO
|
|
12
|
+
|
|
13
|
+
## 0.12.0 (August 3, 2022)
|
|
14
|
+
|
|
15
|
+
[Full Changelog](https://github.com/RadiusNetworks/radius-spec/compare/v0.12.0...0.12.0)
|
|
16
|
+
|
|
17
|
+
### Enhancements
|
|
18
|
+
|
|
19
|
+
- Added Dependabot
|
|
20
|
+
- Upgraded VCR to 6.0
|
|
21
|
+
- Upgrade Rubocop Rails to 2.16
|
|
22
|
+
- Upgrade Rubocop to 1.33
|
|
23
|
+
|
|
24
|
+
### Bug Fixes
|
|
25
|
+
|
|
26
|
+
None
|
|
27
|
+
## 0.11.0 (January 21, 2022)
|
|
28
|
+
|
|
29
|
+
[Full Changelog](https://github.com/RadiusNetworks/radius-spec/compare/v0.10.0...0.11.0)
|
|
30
|
+
|
|
31
|
+
### Enhancements
|
|
32
|
+
|
|
33
|
+
- Adjust common Rubocop configuration (Aaron Hill, Aaron Kromer, Ben Reynolds, James Nebeker, JC Avena, Sam Kim)
|
|
34
|
+
- Enable `Lint/NoReturnInBeginEndBlocks` by default
|
|
35
|
+
- Set `AllowHttpProtocol: false` for `Bundler/InsecureProtocolSource` cop
|
|
36
|
+
- Set `AllowNil: false` for `Lint/SuppressedException` cop
|
|
37
|
+
- Enable `Naming/BlockForwarding` cop for future Ruby 3.1 usage
|
|
38
|
+
- Disallow Ruby 3 `Style/NumberedParameters`
|
|
39
|
+
- Enable `Style/StringChars` by default
|
|
40
|
+
- Set `AllowMethodsWithArguments: true` for `Style/SymbolProc` cop
|
|
41
|
+
- Disallow combined `&&` and `||` in single `unless` clauses
|
|
42
|
+
- Enable `Naming/InclusiveLanguage` by default
|
|
43
|
+
- Adjust common Rubocop-Rails configuration (Alex Stone, James Nebeker, Aaron Kromer, Ben Reynolds, Sam Kim)
|
|
44
|
+
- Enable `Rails/EnvironmentVariableAccess` (`AllowReads` to `true`)
|
|
45
|
+
- Changed `Rails/FindBy`:`IgnoreWhereFirst` to `false`
|
|
46
|
+
- Enable `Rails/ReversibleMigrationMethodDefinition`
|
|
47
|
+
- Upgrade to Rubocop Rails 2.12.x (Alex Stone, James Nebeker, Aaron Kromer, Ben Reynolds, Sam Kim)
|
|
48
|
+
- Upgrade to Rubocop Rails 2.13.x (Alex Stone, James Nebeker, Aaron Kromer, Ben Reynolds, Sam Kim)
|
|
49
|
+
- Upgrade to Rubocop 1.25.x (Alex Stone, James Nebeker, Aaron Kromer, Ben Reynolds, Sam Kim, JC Avena, Eric Ouellette, Aaron Hill)
|
|
50
|
+
- Include model factory helpers in helper specs by default (Alex Stone, James Nebeker, Aaron Kromer, Ben Reynolds, JC Avena, Eric Ouellette)
|
|
51
|
+
|
|
52
|
+
### Bug Fixes
|
|
53
|
+
|
|
54
|
+
None
|
|
55
|
+
|
|
56
|
+
## 0.10.0 (October 18, 2021)
|
|
57
|
+
|
|
58
|
+
[Full Changelog](https://github.com/RadiusNetworks/radius-spec/compare/v0.9.0...v0.10.0)
|
|
59
|
+
|
|
60
|
+
### Enhancements
|
|
61
|
+
|
|
62
|
+
- Upgrade to Rubocop Rails 2.8.x (Aaron Hill, Aaron Kromer, Ben Reynolds, James Nebeker, JC Avena, Sam Kim, Alex
|
|
63
|
+
Stone #30, #32)
|
|
64
|
+
- Adjust common Rubocop Rails configuration (Aaron Hill, Aaron Kromer, Ben Reynolds, James Nebeker, JC Avena,
|
|
65
|
+
Sam Kim, Alex Stone #30, #32)
|
|
66
|
+
- Enable `Rails/AttributeDefaultBlockValue` by default
|
|
67
|
+
- Enable `Rails/ArelStar` by default
|
|
68
|
+
- Enable `Rails/DefaultScope` by default
|
|
69
|
+
- Enable `Rails/FindById` by default
|
|
70
|
+
- Enable `Rails/PluckId` by default
|
|
71
|
+
- Enable `Rails/WhereEquals` by default
|
|
72
|
+
- Use the more aggressive `aggressive` check for `Rails/PluckInWhere`
|
|
73
|
+
- Use the more aggressive `aggressive` check for `Rails/ShortI18n`
|
|
74
|
+
- Switch to new `AllowedMethods` attribute name for `Rails/SkipsModelValidations`
|
|
75
|
+
- Disable `Rails/SquishedSQLHeredocs` by default
|
|
76
|
+
- Adjust common Rubocop configuration (Aaron Hill, Aaron Kromer, JC Avena, Sam
|
|
77
|
+
Kim #32, #34)
|
|
78
|
+
- Enable `Style/ClassMethodsDefinitions` by default
|
|
79
|
+
- Enable `Style/CombinableLoops` by default
|
|
80
|
+
- Enable `Style/KeywordParametersOrder` by default
|
|
81
|
+
- Enable `Style/RedundantSelfAssignment` by default
|
|
82
|
+
- Enable `Style/SoleNestedConditional` by default
|
|
83
|
+
- Enable `Lint/DuplicateRequire` by default
|
|
84
|
+
- Enable `Lint/EmptyFile` by default
|
|
85
|
+
- Enable `Lint/TrailingCommaInAttributeDeclaration` by default
|
|
86
|
+
- Enable `Lint/UselessMethodDefinition` by default
|
|
87
|
+
- Exclude the following testing methods from `Metrics/BlockLength`
|
|
88
|
+
- 'describe'
|
|
89
|
+
- 'shared_context'
|
|
90
|
+
- 'shared_examples'
|
|
91
|
+
- 'RSpec.describe'
|
|
92
|
+
- 'RSpec.shared_context'
|
|
93
|
+
- 'RSpec.shared_examples'
|
|
94
|
+
|
|
95
|
+
### Bug Fixes
|
|
96
|
+
|
|
97
|
+
None
|
|
98
|
+
|
|
99
|
+
|
|
1
100
|
## 0.9.0 (September 30, 2021)
|
|
2
101
|
|
|
3
102
|
[Full Changelog](https://github.com/RadiusNetworks/radius-spec/compare/v0.8.0...v0.9.0)
|
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -94,7 +94,7 @@ end
|
|
|
94
94
|
Projects can inherit from the [base Rubocop config](.rubocop.yml). This can be
|
|
95
95
|
accomplished by using either the remote raw URL or dependency gem formats. With
|
|
96
96
|
either method we also strongly suggest setting the `inherit_mode` to `merge`
|
|
97
|
-
for both `Exclude` and `
|
|
97
|
+
for both `Exclude` and `AllowedPatterns`. This way you can append additional
|
|
98
98
|
exceptions without overwriting the defaults.
|
|
99
99
|
|
|
100
100
|
#### Inherit from Gem (Recommended Method)
|
|
@@ -103,7 +103,7 @@ exceptions without overwriting the defaults.
|
|
|
103
103
|
inherit_mode:
|
|
104
104
|
merge:
|
|
105
105
|
- Exclude
|
|
106
|
-
-
|
|
106
|
+
- AllowedPatterns
|
|
107
107
|
|
|
108
108
|
inherit_gem:
|
|
109
109
|
radius-spec:
|
|
@@ -118,7 +118,7 @@ inherit_gem:
|
|
|
118
118
|
inherit_mode:
|
|
119
119
|
merge:
|
|
120
120
|
- Exclude
|
|
121
|
-
-
|
|
121
|
+
- AllowedPatterns
|
|
122
122
|
|
|
123
123
|
# Available for projects which cannot include this gem (i.e. Ruby < 2.5)
|
|
124
124
|
inherit_from:
|
|
@@ -154,7 +154,7 @@ inherit_from: .rubocop_todo.yml
|
|
|
154
154
|
inherit_mode:
|
|
155
155
|
merge:
|
|
156
156
|
- Exclude
|
|
157
|
-
-
|
|
157
|
+
- AllowedPatterns
|
|
158
158
|
|
|
159
159
|
Style/For:
|
|
160
160
|
inherit_mode:
|
data/benchmarks/bm_setup.rb
CHANGED
data/benchmarks/format_string.rb
CHANGED
|
@@ -15,15 +15,15 @@ MULTI_TOKEN_HASH = {
|
|
|
15
15
|
# rubocop:disable Style/FormatString
|
|
16
16
|
section "Format String" do |bench|
|
|
17
17
|
bench.report("String#%") do
|
|
18
|
-
'%10s' % 'hoge'
|
|
18
|
+
'%10s' % 'hoge'
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
bench.report("format") do
|
|
22
|
-
format '%10s', 'hoge'
|
|
22
|
+
format '%10s', 'hoge'
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
bench.report("sprintf") do
|
|
26
|
-
sprintf '%10s', 'hoge'
|
|
26
|
+
sprintf '%10s', 'hoge'
|
|
27
27
|
end
|
|
28
28
|
end
|
|
29
29
|
# rubocop:enable Style/FormatString
|
|
@@ -13,12 +13,12 @@ end
|
|
|
13
13
|
|
|
14
14
|
# Bad per Rubocop
|
|
15
15
|
def hash_transform_key_hash_collect(hash)
|
|
16
|
-
Hash[hash.collect { |k, v| [k + 100, v] }]
|
|
16
|
+
Hash[hash.collect { |k, v| [k + 100, v] }] # rubocop:disable Style/HashConversion
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
# Bad per Rubocop
|
|
20
20
|
def hash_transform_key_map_to_h(hash)
|
|
21
|
-
hash.map { |k, v| [k + 100, v] }.to_h
|
|
21
|
+
hash.map { |k, v| [k + 100, v] }.to_h # rubocop:disable Style/MapToHash
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
# Bad per Rubocop
|
|
@@ -73,12 +73,12 @@ end
|
|
|
73
73
|
|
|
74
74
|
# Bad per Rubocop
|
|
75
75
|
def hash_transform_value_hash_collect(hash)
|
|
76
|
-
Hash[hash.collect { |k, v| [k, v + 100] }]
|
|
76
|
+
Hash[hash.collect { |k, v| [k, v + 100] }] # rubocop:disable Style/HashConversion
|
|
77
77
|
end
|
|
78
78
|
|
|
79
79
|
# Bad per Rubocop
|
|
80
80
|
def hash_transform_value_map_to_h(hash)
|
|
81
|
-
hash.map { |k, v| [k, v + 100] }.to_h
|
|
81
|
+
hash.map { |k, v| [k, v + 100] }.to_h # rubocop:disable Style/MapToHash
|
|
82
82
|
end
|
|
83
83
|
|
|
84
84
|
# Bad per Rubocop
|
data/bin/bundle
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
#
|
|
5
|
+
# This file was generated by Bundler.
|
|
6
|
+
#
|
|
7
|
+
# The application 'bundle' is installed as part of a gem, and
|
|
8
|
+
# this file is here to facilitate running it.
|
|
9
|
+
#
|
|
10
|
+
|
|
11
|
+
require "rubygems"
|
|
12
|
+
|
|
13
|
+
m = Module.new do
|
|
14
|
+
module_function
|
|
15
|
+
|
|
16
|
+
def invoked_as_script?
|
|
17
|
+
File.expand_path($0) == File.expand_path(__FILE__)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def env_var_version
|
|
21
|
+
ENV["BUNDLER_VERSION"]
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def cli_arg_version
|
|
25
|
+
return unless invoked_as_script? # don't want to hijack other binstubs
|
|
26
|
+
return unless "update".start_with?(ARGV.first || " ") # must be running `bundle update`
|
|
27
|
+
bundler_version = nil
|
|
28
|
+
update_index = nil
|
|
29
|
+
ARGV.each_with_index do |a, i|
|
|
30
|
+
if update_index && update_index.succ == i && a =~ Gem::Version::ANCHORED_VERSION_PATTERN
|
|
31
|
+
bundler_version = a
|
|
32
|
+
end
|
|
33
|
+
next unless a =~ /\A--bundler(?:[= ](#{Gem::Version::VERSION_PATTERN}))?\z/
|
|
34
|
+
bundler_version = $1
|
|
35
|
+
update_index = i
|
|
36
|
+
end
|
|
37
|
+
bundler_version
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def gemfile
|
|
41
|
+
gemfile = ENV["BUNDLE_GEMFILE"]
|
|
42
|
+
return gemfile if gemfile && !gemfile.empty?
|
|
43
|
+
|
|
44
|
+
File.expand_path("../../Gemfile", __FILE__)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def lockfile
|
|
48
|
+
lockfile =
|
|
49
|
+
case File.basename(gemfile)
|
|
50
|
+
when "gems.rb" then gemfile.sub(/\.rb$/, gemfile)
|
|
51
|
+
else "#{gemfile}.lock"
|
|
52
|
+
end
|
|
53
|
+
File.expand_path(lockfile)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def lockfile_version
|
|
57
|
+
return unless File.file?(lockfile)
|
|
58
|
+
lockfile_contents = File.read(lockfile)
|
|
59
|
+
return unless lockfile_contents =~ /\n\nBUNDLED WITH\n\s{2,}(#{Gem::Version::VERSION_PATTERN})\n/
|
|
60
|
+
Regexp.last_match(1)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def bundler_version
|
|
64
|
+
@bundler_version ||=
|
|
65
|
+
env_var_version || cli_arg_version ||
|
|
66
|
+
lockfile_version
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def bundler_requirement
|
|
70
|
+
return "#{Gem::Requirement.default}.a" unless bundler_version
|
|
71
|
+
|
|
72
|
+
bundler_gem_version = Gem::Version.new(bundler_version)
|
|
73
|
+
|
|
74
|
+
requirement = bundler_gem_version.approximate_recommendation
|
|
75
|
+
|
|
76
|
+
return requirement unless Gem::Version.new(Gem::VERSION) < Gem::Version.new("2.7.0")
|
|
77
|
+
|
|
78
|
+
requirement += ".a" if bundler_gem_version.prerelease?
|
|
79
|
+
|
|
80
|
+
requirement
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def load_bundler!
|
|
84
|
+
ENV["BUNDLE_GEMFILE"] ||= gemfile
|
|
85
|
+
|
|
86
|
+
activate_bundler
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def activate_bundler
|
|
90
|
+
gem_error = activation_error_handling do
|
|
91
|
+
gem "bundler", bundler_requirement
|
|
92
|
+
end
|
|
93
|
+
return if gem_error.nil?
|
|
94
|
+
require_error = activation_error_handling do
|
|
95
|
+
require "bundler/version"
|
|
96
|
+
end
|
|
97
|
+
return if require_error.nil? && Gem::Requirement.new(bundler_requirement).satisfied_by?(Gem::Version.new(Bundler::VERSION))
|
|
98
|
+
warn "Activating bundler (#{bundler_requirement}) failed:\n#{gem_error.message}\n\nTo install the version of bundler this project requires, run `gem install bundler -v '#{bundler_requirement}'`"
|
|
99
|
+
exit 42
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def activation_error_handling
|
|
103
|
+
yield
|
|
104
|
+
nil
|
|
105
|
+
rescue StandardError, LoadError => e
|
|
106
|
+
e
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
m.load_bundler!
|
|
111
|
+
|
|
112
|
+
if m.invoked_as_script?
|
|
113
|
+
load Gem.bin_path("bundler", "bundle")
|
|
114
|
+
end
|
data/common_rubocop.yml
CHANGED
|
@@ -4,7 +4,7 @@ AllCops:
|
|
|
4
4
|
# version by version without having to worry about adding an entry for each
|
|
5
5
|
# new "enabled by default" check. If we want to jump multiple versions and
|
|
6
6
|
# wish to be notified of all the enw check, then we'll need to change
|
|
7
|
-
# `NewCops` to `pending
|
|
7
|
+
# `NewCops` to `pending`.
|
|
8
8
|
NewCops: enable
|
|
9
9
|
Exclude:
|
|
10
10
|
# Exclude generated binstubs
|
|
@@ -24,6 +24,11 @@ AllCops:
|
|
|
24
24
|
# Exclude vendored content
|
|
25
25
|
- 'vendor/**/*'
|
|
26
26
|
|
|
27
|
+
# We would like to disallow http for bundler sources and enforce https
|
|
28
|
+
# as it is more secure.
|
|
29
|
+
Bundler/InsecureProtocolSource:
|
|
30
|
+
AllowHttpProtocol: false
|
|
31
|
+
|
|
27
32
|
# We prefer outdented access modifiers as we feel they provide demarcation of
|
|
28
33
|
# the class similar to `rescue` and `ensure` in a method.
|
|
29
34
|
#
|
|
@@ -36,6 +41,18 @@ Layout/AccessModifierIndentation:
|
|
|
36
41
|
similar to `rescue` and `ensure` in a method.
|
|
37
42
|
EnforcedStyle: outdent
|
|
38
43
|
|
|
44
|
+
# This cop checks whether the end keyword of begin is aligned properly.
|
|
45
|
+
#
|
|
46
|
+
# Two modes are supported through the EnforcedStyleAlignWith configuration parameter. If it’s set to
|
|
47
|
+
# begin, the end shall be aligned with the begin keyword. We chose this to be consistent with our if
|
|
48
|
+
# statement styles, if you want the end to be aligned with the start of the line just put the begin
|
|
49
|
+
# on the next line.
|
|
50
|
+
#
|
|
51
|
+
# Configuration parameters: EnforcedStyleAlignWith
|
|
52
|
+
# SupportedStyles: start_of_line, begin
|
|
53
|
+
Layout/BeginEndAlignment:
|
|
54
|
+
EnforcedStyleAlignWith: begin
|
|
55
|
+
|
|
39
56
|
# Rubocop 0.60.0 changed how it handled value alignments in this cop. This
|
|
40
57
|
# breaks our preference for wanting keys to be aligned, but allowing values to
|
|
41
58
|
# either use the `key` or `table` style:
|
|
@@ -113,11 +130,11 @@ Layout/FirstArgumentIndentation:
|
|
|
113
130
|
# this for a node pattern matcher in the future.
|
|
114
131
|
#
|
|
115
132
|
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes,
|
|
116
|
-
# IgnoreCopDirectives,
|
|
133
|
+
# IgnoreCopDirectives, AllowedPatterns.
|
|
117
134
|
# URISchemes: http, https
|
|
118
135
|
Layout/LineLength:
|
|
119
136
|
IgnoreCopDirectives: true
|
|
120
|
-
|
|
137
|
+
AllowedPatterns:
|
|
121
138
|
# Leading comments
|
|
122
139
|
- '\A\s*#'
|
|
123
140
|
# Attempt at trailing comments
|
|
@@ -155,6 +172,18 @@ Layout/MultilineOperationIndentation:
|
|
|
155
172
|
# }.to change {
|
|
156
173
|
# object.state
|
|
157
174
|
# }
|
|
175
|
+
#
|
|
176
|
+
# WARNING TO FUTURE READERS (future being after 2021-12-10):
|
|
177
|
+
# We tried to allowlist certain methods using the IgnoredMethods option (introduced 1.13.0),
|
|
178
|
+
# and Rubocop successfully ignored `change` and `not_change` constructions, but it flag false
|
|
179
|
+
# positives against code like
|
|
180
|
+
#
|
|
181
|
+
# expect { something }
|
|
182
|
+
# .to enqueue_job(SomeJobClass)
|
|
183
|
+
# .with { custom expectations about the enqueued payload }
|
|
184
|
+
#
|
|
185
|
+
# no matter what combination of `enqueue_job` and `with` we tried to add to the IgnoredMethods
|
|
186
|
+
# array. We suspect the AST matching is somewhat half-baked.
|
|
158
187
|
Lint/AmbiguousBlockAssociation:
|
|
159
188
|
Exclude:
|
|
160
189
|
- 'spec/**/*_spec.rb'
|
|
@@ -184,6 +213,10 @@ Lint/HeredocMethodCallPosition:
|
|
|
184
213
|
Lint/InheritException:
|
|
185
214
|
EnforcedStyle: standard_error
|
|
186
215
|
|
|
216
|
+
# Make developers explain themselves in a comment if they want their rescue block to do nothing.
|
|
217
|
+
Lint/SuppressedException:
|
|
218
|
+
AllowNil: false
|
|
219
|
+
|
|
187
220
|
# Often with benchmarking we don't explicitly "use" a variable or return value.
|
|
188
221
|
# We simply need to perform the operation which generates said value for the
|
|
189
222
|
# benchmark.
|
|
@@ -194,16 +227,11 @@ Lint/Void:
|
|
|
194
227
|
- 'benchmarks/**/*'
|
|
195
228
|
|
|
196
229
|
Metrics/AbcSize:
|
|
197
|
-
|
|
198
|
-
# following `CountRepeatedAttributes` option. We often find the
|
|
199
|
-
# multi-references to the same object to be necessary for reability and that
|
|
200
|
-
# for our team it does not increase complexity.
|
|
201
|
-
#
|
|
202
|
-
# CountRepeatedAttributes: false
|
|
230
|
+
CountRepeatedAttributes: false
|
|
203
231
|
Max: 17
|
|
204
232
|
|
|
205
|
-
# Configuration parameters: CountComments,
|
|
206
|
-
#
|
|
233
|
+
# Configuration parameters: CountComments, IgnoredMethods, Max.
|
|
234
|
+
# IgnoredMethods: refine
|
|
207
235
|
Metrics/BlockLength:
|
|
208
236
|
CountAsOne:
|
|
209
237
|
- 'array'
|
|
@@ -215,11 +243,17 @@ Metrics/BlockLength:
|
|
|
215
243
|
- 'spec/spec_helper.rb'
|
|
216
244
|
- 'spec/**/*_spec.rb'
|
|
217
245
|
- 'spec/support/model_factories.rb'
|
|
218
|
-
|
|
246
|
+
IgnoredMethods:
|
|
219
247
|
- 'chdir'
|
|
248
|
+
- 'describe'
|
|
220
249
|
- 'refine'
|
|
250
|
+
- 'shared_context'
|
|
251
|
+
- 'shared_examples'
|
|
221
252
|
- 'Capybara.register_driver'
|
|
222
253
|
- 'RSpec.configure'
|
|
254
|
+
- 'RSpec.describe'
|
|
255
|
+
- 'RSpec.shared_context'
|
|
256
|
+
- 'RSpec.shared_examples'
|
|
223
257
|
- 'VCR.configure'
|
|
224
258
|
|
|
225
259
|
# We want length related code metrics to count Hashs, Arrays, and
|
|
@@ -250,6 +284,21 @@ Metrics/MethodLength:
|
|
|
250
284
|
Naming/BinaryOperatorParameterName:
|
|
251
285
|
Enabled: false
|
|
252
286
|
|
|
287
|
+
# We don't need this configured just yet, because we dont have any applications on
|
|
288
|
+
# Ruby 3.1, but pre-emptively, we want to configure this to prefer the explicit style.
|
|
289
|
+
#
|
|
290
|
+
# bad
|
|
291
|
+
# def foo(&)
|
|
292
|
+
# bar(&)
|
|
293
|
+
# end
|
|
294
|
+
|
|
295
|
+
# good
|
|
296
|
+
# def foo(&block)
|
|
297
|
+
# bar(&block)
|
|
298
|
+
# end
|
|
299
|
+
Naming/BlockForwarding:
|
|
300
|
+
EnforcedStyle: explicit
|
|
301
|
+
|
|
253
302
|
# Configuration parameters: ExpectMatchingDefinition, Regex, IgnoreExecutableScripts, AllowedAcronyms.
|
|
254
303
|
# AllowedAcronyms: CLI, DSL, ACL, API, ASCII, CPU, CSS, DNS, EOF, GUID, HTML, HTTP, HTTPS, ID, IP, JSON, LHS, QPS, RAM, RHS, RPC, SLA, SMTP, SQL, SSH, TCP, TLS, TTL, UDP, UI, UID, UUID, URI, URL, UTF8, VM, XML, XMPP, XSRF, XSS
|
|
255
304
|
Naming/FileName:
|
|
@@ -339,6 +388,9 @@ Style/AndOr:
|
|
|
339
388
|
# These days most people have editors which support unicode and other
|
|
340
389
|
# non-ASCII characters.
|
|
341
390
|
#
|
|
391
|
+
# In version 1.21.0, this is disabled by default. We've chosen to leave
|
|
392
|
+
# it in the config, in case it changes in future versions.
|
|
393
|
+
#
|
|
342
394
|
# Configuration parameters: AllowedChars.
|
|
343
395
|
Style/AsciiComments:
|
|
344
396
|
Enabled: false
|
|
@@ -395,6 +447,15 @@ Style/BlockDelimiters:
|
|
|
395
447
|
- proc
|
|
396
448
|
- it
|
|
397
449
|
|
|
450
|
+
# As a team we prefer the more explicit `def self.method_name` style. We find
|
|
451
|
+
# the explicitness easier to read and grep for on the CLI.
|
|
452
|
+
#
|
|
453
|
+
# Configuration parameters: EnforcedStyle.
|
|
454
|
+
# SupportedStyles: def_self, self_class
|
|
455
|
+
Style/ClassMethodsDefinitions:
|
|
456
|
+
Enabled: true
|
|
457
|
+
EnforcedStyle: def_self
|
|
458
|
+
|
|
398
459
|
# Prefer `Time` over `DateTime`.
|
|
399
460
|
#
|
|
400
461
|
# While these are not necessarily interchangeable we prefer `Time`. According
|
|
@@ -476,6 +537,11 @@ Style/EmptyMethod:
|
|
|
476
537
|
Style/FrozenStringLiteralComment:
|
|
477
538
|
EnforcedStyle: always_true
|
|
478
539
|
|
|
540
|
+
# If we're using consecutive conditionals we probably know what we're doing. The good thing is this
|
|
541
|
+
# cop will still flag consecutive conditionals that are identical.
|
|
542
|
+
Style/GuardClause:
|
|
543
|
+
AllowConsecutiveConditionals: true
|
|
544
|
+
|
|
479
545
|
# Prefer symbol keys using the 1.9 hash syntax. However, when keys are mixed
|
|
480
546
|
# use a consistent mapping style; which generally means using hash rockets:
|
|
481
547
|
#
|
|
@@ -496,6 +562,7 @@ Style/HashSyntax:
|
|
|
496
562
|
Prefer symbol keys using the 1.9 hash syntax. However, when keys are mixed
|
|
497
563
|
use a consistent mapping style; which generally means using hash rockets.
|
|
498
564
|
EnforcedStyle: ruby19_no_mixed_keys
|
|
565
|
+
EnforcedShorthandSyntax: either
|
|
499
566
|
|
|
500
567
|
# As part of our semantic style we generally use the literal `-> { }` format to
|
|
501
568
|
# indicate this is a function with a return value we care about. As this cop
|
|
@@ -526,6 +593,11 @@ Style/MethodCalledOnDoEndBlock:
|
|
|
526
593
|
Style/MultilineBlockChain:
|
|
527
594
|
Enabled: false
|
|
528
595
|
|
|
596
|
+
# Disallowing numbered parameter usage because we dont prefer this style.
|
|
597
|
+
# We would rather name the paramaters to clearly communicate intent.
|
|
598
|
+
Style/NumberedParameters:
|
|
599
|
+
EnforcedStyle: disallow
|
|
600
|
+
|
|
529
601
|
# Context for this cop is too dependent.
|
|
530
602
|
#
|
|
531
603
|
# Often using the numeric comparison is faster. Also, depending on the context
|
|
@@ -542,6 +614,12 @@ Style/MultilineBlockChain:
|
|
|
542
614
|
Style/NumericPredicate:
|
|
543
615
|
Enabled: false
|
|
544
616
|
|
|
617
|
+
# As a general rule, we want to be explicit here instead of requiring readers
|
|
618
|
+
# of our code to know what the default arguments to methods like `#join` and
|
|
619
|
+
# and `#split` so we disable this cop here.
|
|
620
|
+
Style/RedundantArgument:
|
|
621
|
+
Enabled: false
|
|
622
|
+
|
|
545
623
|
# In Ruby every method returns a value. Implicitly this is the value of the
|
|
546
624
|
# last line of the method. This means using `return` is often redundant.
|
|
547
625
|
# However, there isn't anything inherently wrong about doing so. In fact, in
|
|
@@ -654,6 +732,15 @@ Style/RescueStandardError:
|
|
|
654
732
|
Style/SlicingWithRange:
|
|
655
733
|
Enabled: false
|
|
656
734
|
|
|
735
|
+
# We want to turn this cop on so that rubocop can yell at us instead of Aaron
|
|
736
|
+
# yelling at us.
|
|
737
|
+
Style/StaticClass:
|
|
738
|
+
Enabled: true
|
|
739
|
+
|
|
740
|
+
# Enable Style/StringChars
|
|
741
|
+
Style/StringChars:
|
|
742
|
+
Enabled: true
|
|
743
|
+
|
|
657
744
|
# We generally prefer double quotes but many generators use single quotes. We
|
|
658
745
|
# don't view the performance difference to be all that much so we don't care
|
|
659
746
|
# if the style is mixed or double quotes are used for static strings.
|
|
@@ -684,6 +771,13 @@ Style/StringLiteralsInInterpolation:
|
|
|
684
771
|
Style/SymbolArray:
|
|
685
772
|
MinSize: 3
|
|
686
773
|
|
|
774
|
+
# Allow either
|
|
775
|
+
# something.do_something(foo, &:bar)
|
|
776
|
+
# or
|
|
777
|
+
# something.do_something(foo) { |s| s.bar }
|
|
778
|
+
Style/SymbolProc:
|
|
779
|
+
AllowMethodsWithArguments: true
|
|
780
|
+
|
|
687
781
|
# When ternaries become complex they can be difficult to read due to increased
|
|
688
782
|
# cognitive load parsing the expression. Cognitive load can increase further
|
|
689
783
|
# when assignment is involved.
|
|
@@ -746,6 +840,11 @@ Style/TrailingCommaInHashLiteral:
|
|
|
746
840
|
simplifies adding, removing, and re-arranging the elements.
|
|
747
841
|
EnforcedStyleForMultiline: consistent_comma
|
|
748
842
|
|
|
843
|
+
# Don't combine && & || inside the same `unless` guard clause.
|
|
844
|
+
Style/UnlessLogicalOperators:
|
|
845
|
+
Enabled: true
|
|
846
|
+
EnforcedStyle: forbid_mixed_logical_operators
|
|
847
|
+
|
|
749
848
|
# We don't feel too strongly about percent vs bracket array style. We tend to
|
|
750
849
|
# use the percent style, which also happens to be Rubocop's default. So for
|
|
751
850
|
# pedantic consistency we'll enforce this.
|
|
@@ -765,3 +864,7 @@ Style/WordArray:
|
|
|
765
864
|
# SupportedStyles: all_comparison_operators, equality_operators_only
|
|
766
865
|
Style/YodaCondition:
|
|
767
866
|
Enabled: false
|
|
867
|
+
|
|
868
|
+
# Disabled in 1.21.0. Radius Networks has chosen to enable it.
|
|
869
|
+
Naming/InclusiveLanguage:
|
|
870
|
+
Enabled: true
|
data/common_rubocop_rails.yml
CHANGED
|
@@ -3,7 +3,7 @@ require: rubocop-rails
|
|
|
3
3
|
inherit_mode:
|
|
4
4
|
merge:
|
|
5
5
|
- Exclude
|
|
6
|
-
-
|
|
6
|
+
- AllowedPatterns
|
|
7
7
|
|
|
8
8
|
inherit_from: common_rubocop.yml
|
|
9
9
|
|
|
@@ -26,10 +26,10 @@ Style/Documentation:
|
|
|
26
26
|
# Rails foreign keys and indexes can get long. We want to ignore our annotation
|
|
27
27
|
# comments which are for these entries.
|
|
28
28
|
#
|
|
29
|
-
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives,
|
|
29
|
+
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
|
|
30
30
|
# URISchemes: http, https
|
|
31
31
|
Layout/LineLength:
|
|
32
|
-
|
|
32
|
+
AllowedPatterns:
|
|
33
33
|
- '\A# fk_rails_'
|
|
34
34
|
- '\A# index_'
|
|
35
35
|
|
|
@@ -106,19 +106,39 @@ Rails/ApplicationRecord:
|
|
|
106
106
|
Rails/CreateTableWithTimestamps:
|
|
107
107
|
Enabled: false
|
|
108
108
|
|
|
109
|
+
# This cop looks for uses of default_scope because named scopes are preferred:
|
|
110
|
+
# https://rails.rubystyle.guide/#named-scopes
|
|
111
|
+
Rails/DefaultScope:
|
|
112
|
+
Enabled: true
|
|
113
|
+
|
|
114
|
+
# We were originally going to disable this, but after much discussion agreed that enabling
|
|
115
|
+
# this cop with AllowReads: true should be relatively painless.
|
|
116
|
+
Rails/EnvironmentVariableAccess:
|
|
117
|
+
Enabled: true
|
|
118
|
+
AllowReads: true
|
|
119
|
+
|
|
109
120
|
# Usage of `find_by` is more expressive of intent than `where.first`. We should
|
|
110
121
|
# check all app code, not just the models to improve intent expression.
|
|
111
122
|
#
|
|
112
123
|
# Since rake tasks often live in `lib` we also check all of lib as well.
|
|
113
124
|
#
|
|
125
|
+
# We are also disabling the default IgnoreWhereFirst that was added in version
|
|
126
|
+
# 2.11
|
|
127
|
+
#
|
|
114
128
|
# Configuration parameters: Include.
|
|
115
129
|
# Include: app/models/**/*.rb
|
|
116
130
|
Rails/FindBy:
|
|
117
131
|
Enabled: true
|
|
132
|
+
IgnoreWhereFirst: false
|
|
118
133
|
Include:
|
|
119
134
|
- 'app/**/*.rb'
|
|
120
135
|
- 'lib/**/*.rb'
|
|
121
136
|
|
|
137
|
+
# This cop enforces that ActiveRecord#find is used instead of where.take!, find_by!, and find_by_id!
|
|
138
|
+
# to retrieve a single record by primary key when you expect it to be found.
|
|
139
|
+
Rails/FindById:
|
|
140
|
+
Enabled: true
|
|
141
|
+
|
|
122
142
|
# Usage of `each` for large datasets can be a performance issue; specially a
|
|
123
143
|
# drain on system memory. When possible it's better to use `find_each` so that
|
|
124
144
|
# chunks of data are evaluated at a time.
|
|
@@ -174,6 +194,25 @@ Rails/IndexBy:
|
|
|
174
194
|
Rails/IndexWith:
|
|
175
195
|
Enabled: false
|
|
176
196
|
|
|
197
|
+
# This would be extremely hard to implement with our app
|
|
198
|
+
Rails/I18nLocaleTexts:
|
|
199
|
+
Enabled: false
|
|
200
|
+
|
|
201
|
+
# This cop enforces the use of ids over pluck(:id) and pluck(primary_key).
|
|
202
|
+
# https://rails.rubystyle.guide/#ids
|
|
203
|
+
Rails/PluckId:
|
|
204
|
+
Enabled: true
|
|
205
|
+
|
|
206
|
+
# This cop identifies places where pluck is used in where query methods and can be replaced with
|
|
207
|
+
# select. Since pluck is an eager method and hits the database immediately, using select helps to
|
|
208
|
+
# avoid additional database queries.
|
|
209
|
+
#
|
|
210
|
+
# When the EnforcedStyle is aggressive then all calls to pluck in the where is used as offenses.
|
|
211
|
+
# This may lead to false positives as the cop cannot replace to select between calls to pluck on an
|
|
212
|
+
# ActiveRecord::Relation instance vs a call to pluck on an Array instance.
|
|
213
|
+
Rails/PluckInWhere:
|
|
214
|
+
EnforcedStyle: aggressive
|
|
215
|
+
|
|
177
216
|
# The ActiveSupport monkey patches for `present?` are nearly all defined as:
|
|
178
217
|
#
|
|
179
218
|
# !blank?
|
|
@@ -203,6 +242,10 @@ Rails/Present:
|
|
|
203
242
|
Rails/ReadWriteAttribute:
|
|
204
243
|
Enabled: false
|
|
205
244
|
|
|
245
|
+
# Enabling this because it is disabled by default and we want it.
|
|
246
|
+
Rails/ReversibleMigrationMethodDefinition:
|
|
247
|
+
Enabled: true
|
|
248
|
+
|
|
206
249
|
# This ensures we do not ignore potential validation issues in the code. Doing
|
|
207
250
|
# so can lead to strange and surprising bugs where records are expected to
|
|
208
251
|
# be created, or be modified, but are not.
|
|
@@ -234,6 +277,13 @@ Rails/ReadWriteAttribute:
|
|
|
234
277
|
Rails/SaveBang:
|
|
235
278
|
Enabled: true
|
|
236
279
|
|
|
280
|
+
# This cop enforces that short forms of I18n methods are used: t instead of translate and l instead
|
|
281
|
+
# of localize. We want this because it's a pain to use the full method names over and over in view
|
|
282
|
+
# code. When the EnforcedStyle is aggressive then all translate and localize calls without a
|
|
283
|
+
# receiver are added as offenses.
|
|
284
|
+
Rails/ShortI18n:
|
|
285
|
+
EnforcedStyle: aggressive
|
|
286
|
+
|
|
237
287
|
# According to the Rails docs while the following methods skip validations they
|
|
238
288
|
# only update the specified (single) attribute reducing risks. We'd rather not
|
|
239
289
|
# warn for those cases:
|
|
@@ -251,14 +301,19 @@ Rails/SaveBang:
|
|
|
251
301
|
# - http://api.rubyonrails.org/classes/ActiveRecord/Persistence.html
|
|
252
302
|
# - http://api.rubyonrails.org/classes/ActiveRecord/Relation.html
|
|
253
303
|
#
|
|
254
|
-
# Configuration parameters:
|
|
255
|
-
#
|
|
304
|
+
# Configuration parameters: ForbiddenMethods, AllowedMethods.
|
|
305
|
+
# ForbiddenMethods: decrement!, decrement_counter, increment!, increment_counter, toggle!, touch, update_all, update_attribute, update_column, update_columns, update_counters
|
|
256
306
|
Rails/SkipsModelValidations:
|
|
257
|
-
|
|
307
|
+
AllowedMethods:
|
|
258
308
|
- 'decrement!'
|
|
259
309
|
- 'increment!'
|
|
260
310
|
- 'touch'
|
|
261
311
|
|
|
312
|
+
# We don't want to be forced to use squish in SQL or JSON heredocs (especially
|
|
313
|
+
# in specs).
|
|
314
|
+
Rails/SquishedSQLHeredocs:
|
|
315
|
+
Enabled: false
|
|
316
|
+
|
|
262
317
|
# Rails uses compact style by default so we're disabling this with a :hammer:
|
|
263
318
|
# for things likely to be generated by Rails (i.e. most things in app).
|
|
264
319
|
#
|
|
@@ -109,7 +109,14 @@ module Radius
|
|
|
109
109
|
# factory {Radius::Spec::ModelFactory.catalog}.
|
|
110
110
|
class TemplateNotFound < KeyError; end
|
|
111
111
|
|
|
112
|
-
class << self
|
|
112
|
+
class << self # rubocop:disable Style/ClassMethodsDefinitions
|
|
113
|
+
# Style Note: We are using this class method style because we need to
|
|
114
|
+
# call `alias_method` within this module's singleton class context.
|
|
115
|
+
# Ruby did not introduce access to `singleton_class` until 2.7. Once we
|
|
116
|
+
# drop support for Ruby < 2.7 we can switch styles and use:
|
|
117
|
+
#
|
|
118
|
+
# singleton_class.alias_method :factory, :define_factory
|
|
119
|
+
|
|
113
120
|
# Suggested method for defining multiple factory templates at once.
|
|
114
121
|
#
|
|
115
122
|
# Most projects end up having many domain models which need factories
|
data/lib/radius/spec/rspec.rb
CHANGED
|
@@ -133,6 +133,11 @@ RSpec.configure do |config|
|
|
|
133
133
|
config.include Radius::Spec::ModelFactory, type: :feature
|
|
134
134
|
end
|
|
135
135
|
|
|
136
|
+
config.when_first_matching_example_defined(type: :helper) do
|
|
137
|
+
require 'radius/spec/model_factory'
|
|
138
|
+
config.include Radius::Spec::ModelFactory, type: :helper
|
|
139
|
+
end
|
|
140
|
+
|
|
136
141
|
config.when_first_matching_example_defined(type: :job) do
|
|
137
142
|
require 'radius/spec/model_factory'
|
|
138
143
|
config.include Radius::Spec::ModelFactory, type: :job
|
data/lib/radius/spec/vcr.rb
CHANGED
|
@@ -10,15 +10,15 @@ VCR.configure do |config|
|
|
|
10
10
|
config.ignore_localhost = true
|
|
11
11
|
|
|
12
12
|
record_mode = case
|
|
13
|
+
when ENV.fetch('CI', false)
|
|
14
|
+
# Never let CI record
|
|
15
|
+
:none
|
|
13
16
|
when RSpec.configuration.files_to_run.one?
|
|
14
17
|
# When developing new features we often run new specs in
|
|
15
18
|
# isolation as we write the code. This is the time to allow
|
|
16
19
|
# creating the cassettes.
|
|
17
20
|
:once
|
|
18
|
-
|
|
19
|
-
# Never let CI record
|
|
20
|
-
:none
|
|
21
|
-
else
|
|
21
|
+
else # rubocop:disable Lint/DuplicateBranch
|
|
22
22
|
# Default to blocking new requests to catch issues
|
|
23
23
|
:none
|
|
24
24
|
end
|
|
@@ -42,14 +42,17 @@ VCR.configure do |config|
|
|
|
42
42
|
RADIUS_OAUTH_PROVIDER_APP_SECRET
|
|
43
43
|
RADIUS_OAUTH_PROVIDER_URL
|
|
44
44
|
].each do |secret|
|
|
45
|
-
|
|
45
|
+
# WARNING: It may seem tempting, but don't try to extract ENV[secret] to a local variable
|
|
46
|
+
# here. `filter_sensitive_data` calls its block instead of exec-ing it, so a local variable
|
|
47
|
+
# set outside the blocks won't be accessible inside them.
|
|
48
|
+
config.filter_sensitive_data("<#{secret}>") { ENV.fetch(secret, nil) }
|
|
46
49
|
|
|
47
50
|
config.filter_sensitive_data("<#{secret}_FORM>") {
|
|
48
|
-
URI.encode_www_form_component(ENV
|
|
51
|
+
URI.encode_www_form_component(ENV.fetch(secret, nil)) if ENV[secret]
|
|
49
52
|
}
|
|
50
53
|
|
|
51
54
|
config.filter_sensitive_data("<#{secret}_URI>") {
|
|
52
|
-
ERB::Util.url_encode(ENV
|
|
55
|
+
ERB::Util.url_encode(ENV.fetch(secret, nil)) if ENV[secret]
|
|
53
56
|
}
|
|
54
57
|
|
|
55
58
|
config.filter_sensitive_data('<AUTHORIZATION_HEADER>') { |interaction|
|
data/lib/radius/spec/version.rb
CHANGED
data/radius-spec.gemspec
CHANGED
|
@@ -14,6 +14,7 @@ Gem::Specification.new do |spec|
|
|
|
14
14
|
"bug_tracker_uri" => "https://github.com/RadiusNetworks/radius-spec/issues",
|
|
15
15
|
"changelog_uri" => "https://github.com/RadiusNetworks/radius-spec/blob/v#{Radius::Spec::VERSION}/CHANGELOG.md",
|
|
16
16
|
"source_code_uri" => "https://github.com/RadiusNetworks/radius-spec/tree/v#{Radius::Spec::VERSION}",
|
|
17
|
+
"rubygems_mfa_required" => "true",
|
|
17
18
|
}
|
|
18
19
|
spec.summary = "Radius Networks RSpec setup and plug-ins"
|
|
19
20
|
spec.description = "Standard RSpec setup and a collection of plug-ins " \
|
|
@@ -31,8 +32,8 @@ Gem::Specification.new do |spec|
|
|
|
31
32
|
spec.required_ruby_version = ">= 2.5" # rubocop:disable Gemspec/RequiredRubyVersion
|
|
32
33
|
|
|
33
34
|
spec.add_runtime_dependency "rspec", "~> 3.7"
|
|
34
|
-
spec.add_runtime_dependency "rubocop", "
|
|
35
|
-
spec.add_runtime_dependency "rubocop-rails", "
|
|
35
|
+
spec.add_runtime_dependency "rubocop", ">= 1.25", "< 1.33"
|
|
36
|
+
spec.add_runtime_dependency "rubocop-rails", ">= 2.13", "< 2.16"
|
|
36
37
|
|
|
37
38
|
spec.add_development_dependency "bundler", ">= 2.2.10"
|
|
38
39
|
spec.add_development_dependency "rake", ">= 12.0", "< 14.0"
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: radius-spec
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.12.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Radius Networks
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: exe
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2022-08-03 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rspec
|
|
@@ -29,30 +29,42 @@ dependencies:
|
|
|
29
29
|
name: rubocop
|
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
|
31
31
|
requirements:
|
|
32
|
-
- - "
|
|
32
|
+
- - ">="
|
|
33
|
+
- !ruby/object:Gem::Version
|
|
34
|
+
version: '1.25'
|
|
35
|
+
- - "<"
|
|
33
36
|
- !ruby/object:Gem::Version
|
|
34
|
-
version:
|
|
37
|
+
version: '1.33'
|
|
35
38
|
type: :runtime
|
|
36
39
|
prerelease: false
|
|
37
40
|
version_requirements: !ruby/object:Gem::Requirement
|
|
38
41
|
requirements:
|
|
39
|
-
- - "
|
|
42
|
+
- - ">="
|
|
43
|
+
- !ruby/object:Gem::Version
|
|
44
|
+
version: '1.25'
|
|
45
|
+
- - "<"
|
|
40
46
|
- !ruby/object:Gem::Version
|
|
41
|
-
version:
|
|
47
|
+
version: '1.33'
|
|
42
48
|
- !ruby/object:Gem::Dependency
|
|
43
49
|
name: rubocop-rails
|
|
44
50
|
requirement: !ruby/object:Gem::Requirement
|
|
45
51
|
requirements:
|
|
46
|
-
- - "
|
|
52
|
+
- - ">="
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '2.13'
|
|
55
|
+
- - "<"
|
|
47
56
|
- !ruby/object:Gem::Version
|
|
48
|
-
version: 2.
|
|
57
|
+
version: '2.16'
|
|
49
58
|
type: :runtime
|
|
50
59
|
prerelease: false
|
|
51
60
|
version_requirements: !ruby/object:Gem::Requirement
|
|
52
61
|
requirements:
|
|
53
|
-
- - "
|
|
62
|
+
- - ">="
|
|
63
|
+
- !ruby/object:Gem::Version
|
|
64
|
+
version: '2.13'
|
|
65
|
+
- - "<"
|
|
54
66
|
- !ruby/object:Gem::Version
|
|
55
|
-
version: 2.
|
|
67
|
+
version: '2.16'
|
|
56
68
|
- !ruby/object:Gem::Dependency
|
|
57
69
|
name: bundler
|
|
58
70
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -94,6 +106,7 @@ executables: []
|
|
|
94
106
|
extensions: []
|
|
95
107
|
extra_rdoc_files: []
|
|
96
108
|
files:
|
|
109
|
+
- ".github/dependabot.yml"
|
|
97
110
|
- ".github/workflows/ci.yml"
|
|
98
111
|
- ".github/workflows/reviewdog.yml"
|
|
99
112
|
- ".gitignore"
|
|
@@ -126,6 +139,7 @@ files:
|
|
|
126
139
|
- benchmarks/style_hash_like_case.rb
|
|
127
140
|
- benchmarks/unfreeze_string.rb
|
|
128
141
|
- benchmarks/unpack_first.rb
|
|
142
|
+
- bin/bundle
|
|
129
143
|
- bin/ci
|
|
130
144
|
- bin/console
|
|
131
145
|
- bin/pry
|
|
@@ -150,8 +164,9 @@ licenses:
|
|
|
150
164
|
- Apache-2.0
|
|
151
165
|
metadata:
|
|
152
166
|
bug_tracker_uri: https://github.com/RadiusNetworks/radius-spec/issues
|
|
153
|
-
changelog_uri: https://github.com/RadiusNetworks/radius-spec/blob/v0.
|
|
154
|
-
source_code_uri: https://github.com/RadiusNetworks/radius-spec/tree/v0.
|
|
167
|
+
changelog_uri: https://github.com/RadiusNetworks/radius-spec/blob/v0.12.0/CHANGELOG.md
|
|
168
|
+
source_code_uri: https://github.com/RadiusNetworks/radius-spec/tree/v0.12.0
|
|
169
|
+
rubygems_mfa_required: 'true'
|
|
155
170
|
post_install_message:
|
|
156
171
|
rdoc_options: []
|
|
157
172
|
require_paths:
|
|
@@ -167,7 +182,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
167
182
|
- !ruby/object:Gem::Version
|
|
168
183
|
version: '0'
|
|
169
184
|
requirements: []
|
|
170
|
-
rubygems_version: 3.1.
|
|
185
|
+
rubygems_version: 3.1.6
|
|
171
186
|
signing_key:
|
|
172
187
|
specification_version: 4
|
|
173
188
|
summary: Radius Networks RSpec setup and plug-ins
|