ezcater_rubocop 1.0.2 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/CODEOWNERS +1 -0
- data/CHANGELOG.md +10 -2
- data/conf/rubocop_rails.yml +17 -0
- data/config/default.yml +8 -0
- data/lib/ezcater_rubocop/version.rb +1 -1
- data/lib/ezcater_rubocop.rb +2 -0
- data/lib/rubocop/cop/ezcater/direct_env_check.rb +40 -0
- data/lib/rubocop/cop/ezcater/rails_env.rb +42 -0
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 63b5162f2f4de001caee81127febb34027aa4199181d6c098936deec38a83068
|
4
|
+
data.tar.gz: ef6e3e1a319ecdd9db2550bffc519879df3d77182a54c470930214d811fc060e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 345e0c7c537cc2081b9469ea91261dfda7abe63d5b60a087bc8cb16084bf95054490c0232cab8bd17201023448a0b180077d3732aae60cc325e36ab07a58d912
|
7
|
+
data.tar.gz: 92976b7169ad4de3b931afb570a40946371716e49634f99a0f1e524f78b9d076a869a405a6ad95f055659e6a498489d32587e85fe319d40ba82d0b9751f7d64d
|
data/.github/CODEOWNERS
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
* @agrobbin @aprescott @tjwp
|
data/CHANGELOG.md
CHANGED
@@ -4,8 +4,16 @@
|
|
4
4
|
|
5
5
|
This gem is moving onto its own [Semantic Versioning](https://semver.org/) scheme starting with v1.0.0. All version bumps moving forward should increment using `MAJOR.MINOR.PATCH` based on changes.
|
6
6
|
|
7
|
-
Prior to v1.0.0 this gem was versioned based on the `MAJOR`.`MINOR` version of RuboCop. The first release of the
|
8
|
-
|
7
|
+
Prior to v1.0.0 this gem was versioned based on the `MAJOR`.`MINOR` version of RuboCop. The first release of the ezcater_rubocop gem was `v0.49.0`.
|
8
|
+
|
9
|
+
## Unreleased
|
10
|
+
|
11
|
+
- ...
|
12
|
+
|
13
|
+
## v1.1.0
|
14
|
+
|
15
|
+
- Add `Ezcater/RailsEnv` cop.
|
16
|
+
- Add `Ezcater/DirectEnvCheck` cop.
|
9
17
|
|
10
18
|
## v1.0.2
|
11
19
|
- Exclude bootsnap cache directory (`tmp/cache`).
|
data/conf/rubocop_rails.yml
CHANGED
@@ -46,3 +46,20 @@ Rails/UnknownEnv:
|
|
46
46
|
- test
|
47
47
|
- staging
|
48
48
|
- production
|
49
|
+
|
50
|
+
Ezcater/RailsEnv:
|
51
|
+
Description: 'Enforce the use of `Rails.configuration.x.<foo>` instead of checking `Rails.env`.'
|
52
|
+
Enabled: true
|
53
|
+
Exclude:
|
54
|
+
- "config/**/*"
|
55
|
+
- "spec/rails_helper.rb"
|
56
|
+
- "db/**/*"
|
57
|
+
|
58
|
+
Ezcater/DirectEnvCheck:
|
59
|
+
Description: 'Enforce the use of `Rails.configuration.x.<foo>` instead of checking `ENV`.'
|
60
|
+
Enabled: true
|
61
|
+
Exclude:
|
62
|
+
- "bin/**/*"
|
63
|
+
- "config/**/*"
|
64
|
+
- "spec/rails_helper.rb"
|
65
|
+
- "db/**/*"
|
data/config/default.yml
CHANGED
@@ -2,6 +2,14 @@ Ezcater/RailsConfiguration:
|
|
2
2
|
Description: 'Enforce the use of `Rails.configuration` instead of `Rails.application.config`.'
|
3
3
|
Enabled: true
|
4
4
|
|
5
|
+
Ezcater/RailsEnv:
|
6
|
+
Description: 'Enforce the use of `Rails.configuration.x.<foo>` instead of checking `Rails.env`.'
|
7
|
+
Enabled: false
|
8
|
+
|
9
|
+
Ezcater/DirectEnvCheck:
|
10
|
+
Description: 'Enforce the use of `Rails.configuration.x.<foo>` instead of checking `ENV`.'
|
11
|
+
Enabled: false
|
12
|
+
|
5
13
|
Ezcater/RspecDotNotSelfDot:
|
6
14
|
Description: 'Enforce ".<class method>" instead of "self.<class method>" for example group description.'
|
7
15
|
Enabled: true
|
data/lib/ezcater_rubocop.rb
CHANGED
@@ -14,7 +14,9 @@ puts "configuration from #{DEFAULT_FILES}" if RuboCop::ConfigLoader.debug?
|
|
14
14
|
config = RuboCop::ConfigLoader.merge_with_default(config, path)
|
15
15
|
RuboCop::ConfigLoader.instance_variable_set(:@default_configuration, config)
|
16
16
|
|
17
|
+
require "rubocop/cop/ezcater/direct_env_check"
|
17
18
|
require "rubocop/cop/ezcater/rails_configuration"
|
19
|
+
require "rubocop/cop/ezcater/rails_env"
|
18
20
|
require "rubocop/cop/ezcater/require_gql_error_helpers"
|
19
21
|
require "rubocop/cop/ezcater/rspec_match_ordered_array"
|
20
22
|
require "rubocop/cop/ezcater/rspec_require_browser_mock"
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
module Ezcater
|
6
|
+
# Use the `Rails.configuration.x` namespace for configuration backed by
|
7
|
+
# environment variables, rather than inspecting `ENV` directly.
|
8
|
+
#
|
9
|
+
# Restricting environment variables references to be within application
|
10
|
+
# configuration makes it more obvious which env vars an application relies
|
11
|
+
# upon. See https://ezcater.atlassian.net/wiki/x/ZIChNg.
|
12
|
+
#
|
13
|
+
# @example
|
14
|
+
#
|
15
|
+
# # good
|
16
|
+
# enforce_foo! if Rails.configuration.x.foo_enforced
|
17
|
+
#
|
18
|
+
# # bad
|
19
|
+
# enforce_foo! if ENV["FOO_ENFORCED"] == "true"
|
20
|
+
#
|
21
|
+
class DirectEnvCheck < Cop
|
22
|
+
MSG = <<~END_MESSAGE.split("\n").join(" ")
|
23
|
+
Use `Rails.configuration.x.<foo>` for env-backed configuration instead of inspecting `ENV`. Restricting
|
24
|
+
environment variables references to be within application configuration makes it more obvious which env vars
|
25
|
+
an application relies upon. https://ezcater.atlassian.net/wiki/x/ZIChNg
|
26
|
+
END_MESSAGE
|
27
|
+
|
28
|
+
def_node_matcher "env_ref", <<-PATTERN
|
29
|
+
(const _ :ENV)
|
30
|
+
PATTERN
|
31
|
+
|
32
|
+
def on_const(node)
|
33
|
+
env_ref(node) do
|
34
|
+
add_offense(node, location: :expression, message: MSG)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
module Ezcater
|
6
|
+
# Use the `Rails.configuration.x` namespace for configuration backed by
|
7
|
+
# environment variables, rather than inspecting `Rails.env` directly.
|
8
|
+
#
|
9
|
+
# Centralizing application configuration helps avoid scattering it
|
10
|
+
# throughout the codebase, and avoids coarse environment grouping under
|
11
|
+
# a single env var. See https://ezcater.atlassian.net/wiki/x/ZIChNg.
|
12
|
+
#
|
13
|
+
# @example
|
14
|
+
#
|
15
|
+
# # good
|
16
|
+
# enforce_foo! if Rails.configuration.x.foo_enforced
|
17
|
+
#
|
18
|
+
# # bad
|
19
|
+
# enforce_foo! if Rails.env.production?
|
20
|
+
#
|
21
|
+
# # bad
|
22
|
+
# enforce_foo! if ENV["RAILS_ENV"] == "production"
|
23
|
+
#
|
24
|
+
class RailsEnv < Cop
|
25
|
+
MSG = <<~END_MESSAGE.split("\n").join(" ")
|
26
|
+
Use `Rails.configuration.x.<foo>` for env-backed configuration instead of inspecting `Rails.env`, so that
|
27
|
+
configuration is more centralized and gives finer control. https://ezcater.atlassian.net/wiki/x/ZIChNg
|
28
|
+
END_MESSAGE
|
29
|
+
|
30
|
+
def_node_matcher "rails_env", <<-PATTERN
|
31
|
+
(send (send (const _ :Rails) :env) _ ...)
|
32
|
+
PATTERN
|
33
|
+
|
34
|
+
def on_send(node)
|
35
|
+
rails_env(node) do
|
36
|
+
add_offense(node, location: :expression, message: MSG)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ezcater_rubocop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ezCater, Inc
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-08-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -144,6 +144,7 @@ executables:
|
|
144
144
|
extensions: []
|
145
145
|
extra_rdoc_files: []
|
146
146
|
files:
|
147
|
+
- ".github/CODEOWNERS"
|
147
148
|
- ".github/PULL_REQUEST_TEMPLATE.md"
|
148
149
|
- CHANGELOG.md
|
149
150
|
- Gemfile
|
@@ -157,7 +158,9 @@ files:
|
|
157
158
|
- ezcater_rubocop.gemspec
|
158
159
|
- lib/ezcater_rubocop.rb
|
159
160
|
- lib/ezcater_rubocop/version.rb
|
161
|
+
- lib/rubocop/cop/ezcater/direct_env_check.rb
|
160
162
|
- lib/rubocop/cop/ezcater/rails_configuration.rb
|
163
|
+
- lib/rubocop/cop/ezcater/rails_env.rb
|
161
164
|
- lib/rubocop/cop/ezcater/require_gql_error_helpers.rb
|
162
165
|
- lib/rubocop/cop/ezcater/rspec_dot_not_self_dot.rb
|
163
166
|
- lib/rubocop/cop/ezcater/rspec_match_ordered_array.rb
|
@@ -186,8 +189,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
186
189
|
- !ruby/object:Gem::Version
|
187
190
|
version: '0'
|
188
191
|
requirements: []
|
189
|
-
|
190
|
-
rubygems_version: 2.7.6
|
192
|
+
rubygems_version: 3.0.3
|
191
193
|
signing_key:
|
192
194
|
specification_version: 4
|
193
195
|
summary: ezCater custom cops and shared configuration
|