nxt_cop 2.2.0 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0aa842f12fc52becc03c69ab9b31ed84490cef95cfab304e560afdaedc076dab
4
- data.tar.gz: 6f5a9aa11731b24bbe97107efec680a5e7aa7753752419c69b4f3051ea605ee5
3
+ metadata.gz: 2b196848eede14a56c47b9828efd5b5f6f5fb47f70cc259aa509536dd683e71e
4
+ data.tar.gz: e967860b4d70d8bd00abf0127c04216b61d216e71c8c1a631a055b83abd82957
5
5
  SHA512:
6
- metadata.gz: 7bcca20a477fd8130a27aa595f0eb39cd548502d6f6accd75a8cef97931e0f2b7627244be6776b72afb8b0f231f1716146a74c23151968ce9c5e36e1b66f36ac
7
- data.tar.gz: fa16aa38b4f39b64b8592774f5306ad08692a0058090f070e57f7ed794ffe9624ef3ff5e9c755ef77388ba8d4c2444632e79b013529c9199b21eee141e67aaae
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
@@ -1,3 +1,12 @@
1
+ # v2.4.0 2024-02-19
2
+ ## What's Changed
3
+ - Add tests for custom cops
4
+ - Removed `Rails/MissingLoggerInclude` due to maintenance burden
5
+
6
+ # v2.3.0 2024-02-09
7
+ ## What's Changed
8
+ - Tree shake the config (no rules change)
9
+
1
10
  # v2.2.0 2024-01-30
2
11
  ## What's Changed
3
12
  - Add rubocop-factory_bot
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nxt_cop (2.2.0)
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:
@@ -30,26 +26,17 @@ AllCops:
30
26
  DisabledByDefault: false
31
27
  NewCops: disable # to avoid warnings. TODO: remove this setting and add new cops from the warning.
32
28
 
33
- # A bunch of these layout cops are enabled by default,
34
- # but for some reason 'DisableByDefault' is set to 'true' above.
35
- # Removing this configuration leads to a lot of violations triggered
36
- # by other cops that are not auto-correctable.
29
+
37
30
  Layout/ArgumentAlignment:
38
31
  EnforcedStyle: with_fixed_indentation
39
32
  Layout/ArrayAlignment:
40
33
  EnforcedStyle: with_fixed_indentation
41
- Layout/HashAlignment:
42
- EnforcedHashRocketStyle: key
43
34
  Layout/ParameterAlignment:
44
35
  EnforcedStyle: with_fixed_indentation
45
36
  Layout/MultilineArrayLineBreaks:
46
37
  Enabled: true
47
- Layout/MultilineBlockLayout:
48
- Enabled: true
49
38
  Layout/MultilineHashKeyLineBreaks:
50
39
  Enabled: true
51
- Layout/MultilineHashBraceLayout:
52
- Enabled: true
53
40
  Layout/FirstMethodArgumentLineBreak:
54
41
  Enabled: true
55
42
  Layout/MultilineMethodCallBraceLayout:
@@ -74,120 +61,22 @@ Layout/FirstArrayElementIndentation:
74
61
  EnforcedStyle: consistent
75
62
  Layout/FirstArrayElementLineBreak:
76
63
  Enabled: true
77
- Layout/IndentationWidth:
78
- Enabled: true
79
- Layout/ClosingParenthesisIndentation:
80
- Enabled: true
81
- Layout/FirstArgumentIndentation:
82
- Enabled: true
83
- Layout/ElseAlignment:
84
- Enabled: true
85
- Layout/FirstHashElementIndentation:
86
- Enabled: true
87
- Layout/AssignmentIndentation:
88
- Enabled: true
89
- Layout/CaseIndentation:
90
- Enabled: true
91
- Layout/MultilineArrayBraceLayout:
92
- Enabled: true
93
- Layout/BeginEndAlignment:
94
- Enabled: true
95
- Layout/CommentIndentation:
96
- Enabled: true
97
- Layout/DotPosition:
98
- EnforcedStyle: leading
99
- Layout/EmptyLineAfterGuardClause:
100
- Enabled: true
101
- Layout/IndentationConsistency:
102
- Enabled: true
103
64
  Layout/MultilineMethodParameterLineBreaks:
104
65
  Enabled: true
105
- Layout/SpaceBeforeBlockBraces:
106
- Enabled: true
107
- Layout/SpaceInsideBlockBraces:
108
- Enabled: true
109
- Layout/SpaceInsideHashLiteralBraces:
110
- Enabled: true
111
- Layout/TrailingEmptyLines:
112
- Enabled: true
113
- Layout/EmptyLinesAroundClassBody:
114
- EnforcedStyle: no_empty_lines
115
- Layout/EmptyLinesAroundBlockBody:
116
- EnforcedStyle: no_empty_lines
117
- Layout/TrailingWhitespace:
118
- AllowInHeredoc: false
119
- Layout/SpaceBeforeComma:
120
- Enabled: true
121
- Layout/SpaceAfterComma:
122
- Enabled: true
123
- Layout/EmptyLines:
124
- Enabled: true
125
- Layout/EmptyLineAfterMagicComment:
126
- Enabled: true
127
66
 
128
67
  Lint:
129
68
  Enabled: true
130
69
  Lint/AmbiguousBlockAssociation:
131
70
  Exclude:
132
71
  - spec/**/*
133
- Lint/BinaryOperatorWithIdenticalOperands:
134
- Enabled: true
135
- Lint/ConstantDefinitionInBlock:
136
- Enabled: true
137
- Lint/DeprecatedOpenSSLConstant:
138
- Enabled: true
139
- Lint/DuplicateElsifCondition:
140
- Enabled: true
141
- Lint/DuplicateRequire:
142
- Enabled: true
143
- Lint/DuplicateRescueException:
144
- Enabled: true
145
- Lint/EmptyConditionalBody:
146
- Enabled: true
147
- Lint/EmptyFile:
148
- Enabled: true
149
- Lint/FloatComparison:
150
- Enabled: true
151
- Lint/IdentityComparison:
152
- Enabled: true
153
72
  Lint/Loop:
154
73
  Enabled: false
155
74
  Lint/MissingSuper:
156
75
  Enabled: false
157
- Lint/MixedRegexpCaptureTypes:
158
- Enabled: true
159
- Lint/OutOfRangeRegexpRef:
160
- Enabled: true
161
- Lint/RaiseException:
162
- Enabled: true
163
- Lint/SelfAssignment:
164
- Enabled: true
165
- Lint/StructNewOverride:
166
- Enabled: true
167
76
  Lint/SymbolConversion:
168
77
  EnforcedStyle: consistent
169
- Lint/TopLevelReturnWithArgument:
170
- Enabled: true
171
- Lint/TrailingCommaInAttributeDeclaration:
172
- Enabled: true
173
- Lint/UnreachableLoop:
174
- Enabled: true
175
- Lint/UselessMethodDefinition:
176
- Enabled: true
177
- Lint/UselessTimes:
178
- Enabled: true
179
- Style/MutableConstant:
180
- Enabled: true
181
- Style/StringLiterals:
182
- Enabled: true
183
- Style/SymbolArray:
184
- Enabled: true
185
78
  Style/TrailingCommaInHashLiteral:
186
79
  Enabled: false
187
- Style/TrailingCommaInArguments:
188
- Enabled: true
189
- Style/WordArray:
190
- Enabled: true
191
80
  Style/HashSyntax:
192
81
  Enabled: true
193
82
  EnforcedShorthandSyntax: either
@@ -246,7 +135,7 @@ Lint/IncompatibleIoSelectWithFiberScheduler:
246
135
  Enabled: false
247
136
  Lint/LambdaWithoutLiteralBlock:
248
137
  Enabled: false
249
- Lint/NoReturnInBeginEndBlocks:
138
+ Lint/NoReturnInBeginEndBlocks: # ❌ ENABLE THIS!
250
139
  Enabled: false
251
140
  Lint/NumberedParameterAssignment:
252
141
  Enabled: false
@@ -513,155 +402,3 @@ Style/EmptyElse:
513
402
  Enabled: false
514
403
  Style/MixinUsage: # Enable and then manually disable offenses?
515
404
  Enabled: false
516
-
517
-
518
-
519
- # ✅ Enabled in 2.0 version (activated by "enable all rules by default')
520
- # Let's keep commented list here for visibility for a while
521
- #
522
- #Layout/SpaceInsideParens:
523
- # Enabled: false
524
- #Layout/SpaceBeforeFirstArg:
525
- # Enabled: false
526
- #Layout/ExtraSpacing:
527
- # Enabled: false
528
- #Layout/SpaceAfterColon:
529
- # Enabled: false
530
- #Rails/PluralizationGrammar:
531
- # Enabled: false
532
- #Layout/SpaceAroundMethodCallOperator:
533
- # Enabled: false
534
- #Style/RedundantFreeze:
535
- # Enabled: false
536
- #Layout/SpaceInLambdaLiteral:
537
- # Enabled: false
538
- #Layout/LeadingCommentSpace:
539
- # Enabled: false
540
- #Layout/DefEndAlignment:
541
- # Enabled: false
542
- #Style/RedundantRegexpEscape:
543
- # Enabled: false
544
- #Layout/HeredocIndentation:
545
- # Enabled: false
546
- #Layout/ClosingHeredocIndentation:
547
- # Enabled: false
548
- #Layout/LeadingEmptyLines:
549
- # Enabled: false
550
- #Layout/EmptyLinesAroundAccessModifier:
551
- # Enabled: false
552
- #Style/NegatedIf:
553
- # Enabled: false
554
- #Style/CommentAnnotation:
555
- # Enabled: false
556
- #Layout/MultilineOperationIndentation:
557
- # Enabled: false
558
- #Style/ExpandPathArguments:
559
- # Enabled: false
560
- #Layout/EmptyLinesAroundMethodBody:
561
- # Enabled: false
562
- #Style/RedundantReturn:
563
- # Enabled: false
564
- #Style/GlobalStdStream:
565
- # Enabled: false
566
- #Style/FloatDivision:
567
- # Enabled: false
568
- #Style/RescueStandardError:
569
- # Enabled: false
570
- #Style/NilComparison:
571
- # Enabled: false
572
- #Style/RedundantFetchBlock:
573
- # Enabled: false
574
- #Style/Encoding:
575
- # Enabled: false
576
- #Style/EmptyLiteral:
577
- # Enabled: false
578
- #Layout/SpaceInsideReferenceBrackets:
579
- # Enabled: false
580
- #Style/EmptyLambdaParameter:
581
- # Enabled: false
582
- #Style/TernaryParentheses:
583
- # Enabled: false
584
- #Naming/MethodName:
585
- # Enabled: false
586
- #Style/SlicingWithRange:
587
- # Enabled: false
588
- #Style/EmptyCaseCondition:
589
- # Enabled: false
590
- #Style/SoleNestedConditional:
591
- # Enabled: false
592
- #Rails/FindEach:
593
- # Enabled: false
594
- #Style/RedundantFileExtensionInRequire:
595
- # Enabled: false
596
- #Layout/SpaceInsideArrayLiteralBrackets:
597
- # Enabled: false
598
- #Style/HashAsLastArrayItem:
599
- # Enabled: false
600
- #Lint/RedundantCopDisableDirective:
601
- # Enabled: false
602
- #Layout/SpaceAroundKeyword:
603
- # Enabled: false
604
- #Style/KeywordParametersOrder:
605
- # Enabled: false
606
- #Style/BlockComments:
607
- # Enabled: false
608
- #Style/AndOr:
609
- # Enabled: false
610
- #Style/EachWithObject:
611
- # Enabled: false
612
- #Layout/SpaceAroundBlockParameters:
613
- # Enabled: false
614
- #Style/MultilineTernaryOperator:
615
- # Enabled: false
616
- #Style/RedundantParentheses:
617
- # Enabled: false
618
- #Security/JSONLoad:
619
- # Enabled: false
620
- #Style/MethodCallWithoutArgsParentheses:
621
- # Enabled: false
622
- #Style/CommentedKeyword:
623
- # Enabled: false
624
- #Style/MultilineIfModifier:
625
- # Enabled: false
626
- #Style/IfInsideElse:
627
- # Enabled: false
628
- #Style/AccessorGrouping:
629
- # Enabled: false
630
- #Layout/BlockEndNewline:
631
- # Enabled: false
632
- #Rails/RedundantForeignKey:
633
- # Enabled: false
634
- #Style/UnlessElse:
635
- # Enabled: false
636
- #Layout/EmptyLinesAroundModuleBody:
637
- # Enabled: false
638
- #Rails/RakeEnvironment:
639
- # Enabled: false
640
- #Layout/EmptyLinesAroundArguments:
641
- # Enabled: false
642
- #Style/EachForSimpleLoop:
643
- # Enabled: false
644
- #Style/ClassCheck:
645
- # Enabled: false
646
- #Style/NestedParenthesizedCalls:
647
- # Enabled: false
648
- #Style/LineEndConcatenation:
649
- # Enabled: false
650
- #Style/ParallelAssignment:
651
- # Enabled: false
652
- #Layout/EmptyLinesAroundExceptionHandlingKeywords:
653
- # Enabled: false
654
- #Layout/SpaceAroundEqualsInParameterDefault:
655
- # Enabled: false
656
- #Style/YodaCondition:
657
- # Enabled: false
658
- #Layout/SpaceInsideStringInterpolation:
659
- # Enabled: false
660
- #Style/EmptyMethod:
661
- # Enabled: false
662
- #Layout/EmptyLineBetweenDefs:
663
- # Enabled: false
664
- #Naming/ConstantName:
665
- # Enabled: false
666
- #Rails/RelativeDateConstant:
667
- # Enabled: false
@@ -1,3 +1,3 @@
1
1
  module NxtCop
2
- VERSION = '2.2.0'.freeze
2
+ VERSION = '2.4.0'.freeze
3
3
  end
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.2.0
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-14 00:00:00.000000000 Z
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