nxt_cop 2.3.0 → 2.4.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/.circleci/config.yml +37 -0
- data/.rspec +1 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile.lock +19 -1
- data/default.yml +0 -4
- data/lib/nxt_cop/version.rb +1 -1
- data/nxt_cop.gemspec +2 -0
- metadata +32 -3
- data/custom_cops/nxt_core/rails/missing_logger_include.rb +0 -39
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2b196848eede14a56c47b9828efd5b5f6f5fb47f70cc259aa509536dd683e71e
|
|
4
|
+
data.tar.gz: e967860b4d70d8bd00abf0127c04216b61d216e71c8c1a631a055b83abd82957
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c81ef302a52a1acb9facb68fe1ec2a695ffaa28d95e5a671fc7ac3444304a43fc354172b72ae680a46ef90653b7ff37f7239ae4220e49a66afcd09e8bced84c4
|
|
7
|
+
data.tar.gz: 2419798b3be96e052a18cce5af279952015c00057ed66b02d9c987cb535ad4d5c58e4c24b836612ae34d474c927db976a74f170b2326c402949369675a51640f
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# See https://circleci.com/docs/2.0/language-ruby/ for more details
|
|
2
|
+
|
|
3
|
+
version: 2.1
|
|
4
|
+
|
|
5
|
+
orbs:
|
|
6
|
+
ruby: circleci/ruby@2.0.1
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
checks:
|
|
10
|
+
parallelism: 1
|
|
11
|
+
resource_class: small
|
|
12
|
+
docker:
|
|
13
|
+
- image: cimg/ruby:3.3.0
|
|
14
|
+
steps:
|
|
15
|
+
- checkout
|
|
16
|
+
- ruby/install-deps:
|
|
17
|
+
key: gems-v1
|
|
18
|
+
include-branch-in-cache-key: false
|
|
19
|
+
# - ruby/rubocop-check
|
|
20
|
+
- run:
|
|
21
|
+
name: RSpec Tests
|
|
22
|
+
command: |-
|
|
23
|
+
bundle exec rspec --format RspecJunitFormatter \
|
|
24
|
+
--out /tmp/test-results/rspec/results.xml --format progress
|
|
25
|
+
# actually not necessary for test results to be collected, but these files
|
|
26
|
+
# won't show up in the web UI otherwise
|
|
27
|
+
- store_artifacts:
|
|
28
|
+
path: /tmp/rspec/
|
|
29
|
+
destination: rspec
|
|
30
|
+
- store_test_results:
|
|
31
|
+
path: /tmp/rspec/
|
|
32
|
+
|
|
33
|
+
workflows:
|
|
34
|
+
version: 2
|
|
35
|
+
checks:
|
|
36
|
+
jobs:
|
|
37
|
+
- checks
|
data/.rspec
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
--require spec_helper
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
nxt_cop (2.
|
|
4
|
+
nxt_cop (2.4.0)
|
|
5
5
|
rubocop (~> 1.60.0)
|
|
6
6
|
rubocop-rails (~> 2.8)
|
|
7
7
|
rubocop-rspec (~> 2.12)
|
|
@@ -24,6 +24,7 @@ GEM
|
|
|
24
24
|
bigdecimal (3.1.6)
|
|
25
25
|
concurrent-ruby (1.2.3)
|
|
26
26
|
connection_pool (2.4.1)
|
|
27
|
+
diff-lcs (1.5.1)
|
|
27
28
|
drb (2.2.0)
|
|
28
29
|
ruby2_keywords
|
|
29
30
|
i18n (1.14.1)
|
|
@@ -42,6 +43,21 @@ GEM
|
|
|
42
43
|
rake (13.1.0)
|
|
43
44
|
regexp_parser (2.9.0)
|
|
44
45
|
rexml (3.2.6)
|
|
46
|
+
rspec (3.13.0)
|
|
47
|
+
rspec-core (~> 3.13.0)
|
|
48
|
+
rspec-expectations (~> 3.13.0)
|
|
49
|
+
rspec-mocks (~> 3.13.0)
|
|
50
|
+
rspec-core (3.13.0)
|
|
51
|
+
rspec-support (~> 3.13.0)
|
|
52
|
+
rspec-expectations (3.13.0)
|
|
53
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
54
|
+
rspec-support (~> 3.13.0)
|
|
55
|
+
rspec-mocks (3.13.0)
|
|
56
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
57
|
+
rspec-support (~> 3.13.0)
|
|
58
|
+
rspec-support (3.13.0)
|
|
59
|
+
rspec_junit_formatter (0.6.0)
|
|
60
|
+
rspec-core (>= 2, < 4, != 2.12.0)
|
|
45
61
|
rubocop (1.60.2)
|
|
46
62
|
json (~> 2.3)
|
|
47
63
|
language_server-protocol (>= 3.17.0)
|
|
@@ -81,6 +97,8 @@ DEPENDENCIES
|
|
|
81
97
|
bundler (~> 2.1)
|
|
82
98
|
nxt_cop!
|
|
83
99
|
rake (~> 13.0)
|
|
100
|
+
rspec
|
|
101
|
+
rspec_junit_formatter
|
|
84
102
|
|
|
85
103
|
BUNDLED WITH
|
|
86
104
|
2.1.4
|
data/default.yml
CHANGED
|
@@ -3,7 +3,6 @@ require:
|
|
|
3
3
|
- rubocop-rails
|
|
4
4
|
- rubocop-rspec
|
|
5
5
|
- ./custom_cops/nxt_core/rails/use_of_rails_logger.rb
|
|
6
|
-
- ./custom_cops/nxt_core/rails/missing_logger_include.rb
|
|
7
6
|
|
|
8
7
|
inherit_mode:
|
|
9
8
|
merge:
|
|
@@ -12,9 +11,6 @@ inherit_mode:
|
|
|
12
11
|
|
|
13
12
|
Rails/UseOfRailsLogger:
|
|
14
13
|
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
14
|
|
|
19
15
|
AllCops:
|
|
20
16
|
Exclude:
|
data/lib/nxt_cop/version.rb
CHANGED
data/nxt_cop.gemspec
CHANGED
|
@@ -38,4 +38,6 @@ Gem::Specification.new do |spec|
|
|
|
38
38
|
spec.add_dependency 'rubocop-rspec', '~> 2.12'
|
|
39
39
|
spec.add_development_dependency 'bundler', '~> 2.1'
|
|
40
40
|
spec.add_development_dependency 'rake', '~> 13.0'
|
|
41
|
+
spec.add_development_dependency 'rspec'
|
|
42
|
+
spec.add_development_dependency 'rspec_junit_formatter'
|
|
41
43
|
end
|
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.
|
|
4
|
+
version: 2.4.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-02-
|
|
11
|
+
date: 2024-02-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rubocop
|
|
@@ -80,13 +80,43 @@ dependencies:
|
|
|
80
80
|
- - "~>"
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
82
|
version: '13.0'
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: rspec
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - ">="
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: '0'
|
|
90
|
+
type: :development
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - ">="
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: '0'
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: rspec_junit_formatter
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - ">="
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: '0'
|
|
104
|
+
type: :development
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - ">="
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: '0'
|
|
83
111
|
description:
|
|
84
112
|
email:
|
|
85
113
|
executables: []
|
|
86
114
|
extensions: []
|
|
87
115
|
extra_rdoc_files: []
|
|
88
116
|
files:
|
|
117
|
+
- ".circleci/config.yml"
|
|
89
118
|
- ".gitignore"
|
|
119
|
+
- ".rspec"
|
|
90
120
|
- ".rubocop.yml"
|
|
91
121
|
- ".ruby-version"
|
|
92
122
|
- ".tool-versions"
|
|
@@ -100,7 +130,6 @@ files:
|
|
|
100
130
|
- bin/guard
|
|
101
131
|
- bin/rspec
|
|
102
132
|
- bin/setup
|
|
103
|
-
- custom_cops/nxt_core/rails/missing_logger_include.rb
|
|
104
133
|
- custom_cops/nxt_core/rails/use_of_rails_logger.rb
|
|
105
134
|
- default.yml
|
|
106
135
|
- lib/nxt_cop/version.rb
|
|
@@ -1,39 +0,0 @@
|
|
|
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
|