nxt_cop 2.0.2 → 2.2.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 +3 -0
- data/.ruby-version +1 -0
- data/.tool-versions +1 -0
- data/CHANGELOG.md +8 -0
- data/Gemfile.lock +5 -5
- data/custom_cops/nxt_core/rails/missing_logger_include.rb +39 -0
- data/custom_cops/nxt_core/rails/use_of_rails_logger.rb +25 -0
- data/default.yml +9 -0
- data/lib/nxt_cop/version.rb +1 -1
- metadata +7 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0aa842f12fc52becc03c69ab9b31ed84490cef95cfab304e560afdaedc076dab
|
|
4
|
+
data.tar.gz: 6f5a9aa11731b24bbe97107efec680a5e7aa7753752419c69b4f3051ea605ee5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7bcca20a477fd8130a27aa595f0eb39cd548502d6f6accd75a8cef97931e0f2b7627244be6776b72afb8b0f231f1716146a74c23151968ce9c5e36e1b66f36ac
|
|
7
|
+
data.tar.gz: fa16aa38b4f39b64b8592774f5306ad08692a0058090f070e57f7ed794ffe9624ef3ff5e9c755ef77388ba8d4c2444632e79b013529c9199b21eee141e67aaae
|
data/.rubocop.yml
CHANGED
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.3.0
|
data/.tool-versions
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ruby 3.3.0
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
# v2.2.0 2024-01-30
|
|
2
|
+
## What's Changed
|
|
3
|
+
- Add rubocop-factory_bot
|
|
4
|
+
|
|
5
|
+
# v2.1.0 2024-01-26
|
|
6
|
+
## What's Changed
|
|
7
|
+
- Add cops for Rails + NxtCore logger functionality
|
|
8
|
+
|
|
1
9
|
# v2.0.2 2024-01-10
|
|
2
10
|
## What's Changed
|
|
3
11
|
* Disable more cops depending on the code style in our backend-services
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
nxt_cop (2.0
|
|
4
|
+
nxt_cop (2.2.0)
|
|
5
5
|
rubocop (~> 1.60.0)
|
|
6
6
|
rubocop-rails (~> 2.8)
|
|
7
7
|
rubocop-rspec (~> 2.12)
|
|
@@ -30,19 +30,19 @@ GEM
|
|
|
30
30
|
concurrent-ruby (~> 1.0)
|
|
31
31
|
json (2.7.1)
|
|
32
32
|
language_server-protocol (3.17.0.3)
|
|
33
|
-
minitest (5.
|
|
33
|
+
minitest (5.22.2)
|
|
34
34
|
mutex_m (0.2.0)
|
|
35
35
|
parallel (1.24.0)
|
|
36
|
-
parser (3.3.0.
|
|
36
|
+
parser (3.3.0.5)
|
|
37
37
|
ast (~> 2.4.1)
|
|
38
38
|
racc
|
|
39
39
|
racc (1.7.3)
|
|
40
|
-
rack (3.0.
|
|
40
|
+
rack (3.0.9)
|
|
41
41
|
rainbow (3.1.1)
|
|
42
42
|
rake (13.1.0)
|
|
43
43
|
regexp_parser (2.9.0)
|
|
44
44
|
rexml (3.2.6)
|
|
45
|
-
rubocop (1.60.
|
|
45
|
+
rubocop (1.60.2)
|
|
46
46
|
json (~> 2.3)
|
|
47
47
|
language_server-protocol (>= 3.17.0)
|
|
48
48
|
parallel (~> 1.10)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module CustomCops
|
|
4
|
+
module NxtCore
|
|
5
|
+
module Rails
|
|
6
|
+
# The NxtCore logger requires an include in most cases. Ensures it is present.
|
|
7
|
+
#
|
|
8
|
+
# @safety
|
|
9
|
+
# This cop's autocorrection is unsafe because
|
|
10
|
+
# `logger` may refer to an instance variable or other method of the class.
|
|
11
|
+
class MissingLoggerInclude < RuboCop::Cop::Base
|
|
12
|
+
extend RuboCop::Cop::AutoCorrector
|
|
13
|
+
|
|
14
|
+
RESTRICT_ON_SEND = [:logger].freeze
|
|
15
|
+
|
|
16
|
+
MSG = 'Missing `include Nxt::Loggable` for a class which uses the logger.'
|
|
17
|
+
|
|
18
|
+
# NodePattern docs: https://github.com/rubocop/rubocop-ast/blob/master/docs/modules/ROOT/pages/node_pattern.adoc
|
|
19
|
+
def_node_matcher :includes_nxt_loggable?, <<~PATTERN
|
|
20
|
+
(begin <(send nil? :include (const (const nil? :Nxt) :Loggable)) ...>)
|
|
21
|
+
PATTERN
|
|
22
|
+
|
|
23
|
+
def on_send(node)
|
|
24
|
+
return unless node.receiver.nil?
|
|
25
|
+
|
|
26
|
+
class_node = node.ancestors.find(&:class_type?)
|
|
27
|
+
return unless class_node
|
|
28
|
+
|
|
29
|
+
class_definition_node = class_node.each_child_node(:begin).first
|
|
30
|
+
return if includes_nxt_loggable?(class_definition_node)
|
|
31
|
+
|
|
32
|
+
add_offense(class_node, message: MSG) do |corrector|
|
|
33
|
+
corrector.insert_before(class_definition_node.child_nodes.first, "include Nxt::Loggable\n")
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module CustomCops
|
|
4
|
+
module NxtCore
|
|
5
|
+
module Rails
|
|
6
|
+
# Ensures that the NxtCore logger is used instead of `Rails.logger`.
|
|
7
|
+
class UseOfRailsLogger < RuboCop::Cop::Base
|
|
8
|
+
extend RuboCop::Cop::AutoCorrector
|
|
9
|
+
|
|
10
|
+
RESTRICT_ON_SEND = [:logger].freeze
|
|
11
|
+
|
|
12
|
+
MSG = 'Use of Rails.logger is not allowed. Use `logger` and include `Nxt::Loggable`'
|
|
13
|
+
|
|
14
|
+
def on_send(node)
|
|
15
|
+
return unless node.receiver&.const_type? && node.receiver.short_name == :Rails
|
|
16
|
+
|
|
17
|
+
add_offense(node, message: MSG) do |corrector|
|
|
18
|
+
corrected = node.source.gsub('Rails.logger', 'logger')
|
|
19
|
+
corrector.replace(node, corrected)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
data/default.yml
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
require:
|
|
2
|
+
- rubocop-factory_bot
|
|
2
3
|
- rubocop-rails
|
|
3
4
|
- rubocop-rspec
|
|
5
|
+
- ./custom_cops/nxt_core/rails/use_of_rails_logger.rb
|
|
6
|
+
- ./custom_cops/nxt_core/rails/missing_logger_include.rb
|
|
4
7
|
|
|
5
8
|
inherit_mode:
|
|
6
9
|
merge:
|
|
7
10
|
- Exclude
|
|
8
11
|
- Include
|
|
9
12
|
|
|
13
|
+
Rails/UseOfRailsLogger:
|
|
14
|
+
Description: "Custom Getsafe cop to ensure the correct logger is used"
|
|
15
|
+
Rails/MissingLoggerInclude:
|
|
16
|
+
Description: "Custom Getsafe cop to find missing `include` statements when using our custom logger"
|
|
17
|
+
SafeAutoCorrect: false
|
|
18
|
+
|
|
10
19
|
AllCops:
|
|
11
20
|
Exclude:
|
|
12
21
|
- bin/guard
|
data/lib/nxt_cop/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: nxt_cop
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.0
|
|
4
|
+
version: 2.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Scott Livingstone
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2024-
|
|
11
|
+
date: 2024-02-14 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rubocop
|
|
@@ -88,6 +88,8 @@ extra_rdoc_files: []
|
|
|
88
88
|
files:
|
|
89
89
|
- ".gitignore"
|
|
90
90
|
- ".rubocop.yml"
|
|
91
|
+
- ".ruby-version"
|
|
92
|
+
- ".tool-versions"
|
|
91
93
|
- CHANGELOG.md
|
|
92
94
|
- Gemfile
|
|
93
95
|
- Gemfile.lock
|
|
@@ -98,6 +100,8 @@ files:
|
|
|
98
100
|
- bin/guard
|
|
99
101
|
- bin/rspec
|
|
100
102
|
- bin/setup
|
|
103
|
+
- custom_cops/nxt_core/rails/missing_logger_include.rb
|
|
104
|
+
- custom_cops/nxt_core/rails/use_of_rails_logger.rb
|
|
101
105
|
- default.yml
|
|
102
106
|
- lib/nxt_cop/version.rb
|
|
103
107
|
- nxt_cop.gemspec
|
|
@@ -124,7 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
124
128
|
- !ruby/object:Gem::Version
|
|
125
129
|
version: '0'
|
|
126
130
|
requirements: []
|
|
127
|
-
rubygems_version: 3.
|
|
131
|
+
rubygems_version: 3.5.3
|
|
128
132
|
signing_key:
|
|
129
133
|
specification_version: 4
|
|
130
134
|
summary: Getsafe shared Rubocop.
|