sevencop 0.39.0 → 0.40.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 +2 -0
- data/Gemfile.lock +3 -3
- data/README.md +1 -0
- data/config/default.yml +7 -0
- data/lib/rubocop/cop/sevencop/rspec_matcher_consistent_parentheses.rb +65 -0
- data/lib/sevencop/version.rb +1 -1
- data/lib/sevencop.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 01427c343e05de1b3f41b169f44ab8e7343cbff90b7d843281f5b2a8f9ea1485
|
4
|
+
data.tar.gz: b5ba91998a6cd7f993c44205d553227e5f146c51bafe73cd0210b7a4a90dbb52
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff51acef6e03fcb4da1d5e53802150e055f8066270e742691920a66f42b3245d62689fe76c680930d53a1361741733132653ce1f134cc1ecbcbc9185367f92f8
|
7
|
+
data.tar.gz: 20dc6769ffeb7b03dc262aa720120d2b1f35de0c61b8617dafbdc7d54f8b25085118b3b01d97630525064befc99126be4d8224474a28d7c888a830e9ff5f3986
|
data/.rubocop.yml
CHANGED
@@ -39,6 +39,7 @@ RSpec/FilePath:
|
|
39
39
|
RSpecDescribeHttpEndpoint: rspec_describe_http_endpoint
|
40
40
|
RSpecEmptyLineAfterLet: rspec_empty_line_after_let
|
41
41
|
RSpecExamplesInSameGroup: rspec_examples_in_same_group
|
42
|
+
RSpecMatcherConsistentParentheses: rspec_matcher_consistent_parentheses
|
42
43
|
RSpecMemoizedHelperBlockDelimiter: rspec_memoized_helper_block_delimiter
|
43
44
|
RSpecRailsHaveHttpStatus: rspec_rails_have_http_status
|
44
45
|
|
@@ -50,6 +51,7 @@ RSpec/SpecFilePathFormat:
|
|
50
51
|
RSpecDescribeHttpEndpoint: rspec_describe_http_endpoint
|
51
52
|
RSpecEmptyLineAfterLet: rspec_empty_line_after_let
|
52
53
|
RSpecExamplesInSameGroup: rspec_examples_in_same_group
|
54
|
+
RSpecMatcherConsistentParentheses: rspec_matcher_consistent_parentheses
|
53
55
|
RSpecMemoizedHelperBlockDelimiter: rspec_memoized_helper_block_delimiter
|
54
56
|
RSpecRailsHaveHttpStatus: rspec_rails_have_http_status
|
55
57
|
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
sevencop (0.
|
4
|
+
sevencop (0.40.0)
|
5
5
|
activesupport
|
6
6
|
rubocop
|
7
7
|
|
@@ -20,12 +20,12 @@ GEM
|
|
20
20
|
tzinfo (~> 2.0)
|
21
21
|
ast (2.4.2)
|
22
22
|
base64 (0.2.0)
|
23
|
-
bigdecimal (3.1.
|
23
|
+
bigdecimal (3.1.8)
|
24
24
|
concurrent-ruby (1.2.3)
|
25
25
|
connection_pool (2.4.1)
|
26
26
|
diff-lcs (1.5.0)
|
27
27
|
drb (2.2.1)
|
28
|
-
i18n (1.14.
|
28
|
+
i18n (1.14.5)
|
29
29
|
concurrent-ruby (~> 1.0)
|
30
30
|
json (2.7.1)
|
31
31
|
language_server-protocol (3.17.0.3)
|
data/README.md
CHANGED
@@ -47,6 +47,7 @@ Note that all cops are `Enabled: false` by default.
|
|
47
47
|
- [Sevencop/RSpecDescribeHttpEndpoint](lib/rubocop/cop/sevencop/rspec_describe_http_endpoint.rb)
|
48
48
|
- [Sevencop/RSpecEmptyLineAfterLet](lib/rubocop/cop/sevencop/rspec_empty_line_after_let.rb)
|
49
49
|
- [Sevencop/RSpecExamplesInSameGroup](lib/rubocop/cop/sevencop/rspec_examples_in_same_group.rb)
|
50
|
+
- [Sevencop/RSpecMatcherConsistentParentheses](lib/rubocop/cop/sevencop/rspec_matcher_consistent_parentheses.rb)
|
50
51
|
- [Sevencop/RSpecMemoizedHelperBlockDelimiter](lib/rubocop/cop/sevencop/rspec_memoized_helper_block_delimiter.rb)
|
51
52
|
- [Sevencop/RSpecRailsHaveHttpStatus](lib/rubocop/cop/sevencop/rspec_rails_have_http_status.rb)
|
52
53
|
|
data/config/default.yml
CHANGED
@@ -137,6 +137,13 @@ Sevencop/RSpecExamplesInSameGroup:
|
|
137
137
|
- "**/spec/controllers/**/*.rb"
|
138
138
|
- "**/spec/requests/**/*.rb"
|
139
139
|
|
140
|
+
Sevencop/RSpecMatcherConsistentParentheses:
|
141
|
+
Description: |
|
142
|
+
Keep RSpec matcher parentheses style consistent.
|
143
|
+
Enabled: false
|
144
|
+
Include:
|
145
|
+
- "**/spec/**/*.rb"
|
146
|
+
|
140
147
|
Sevencop/RSpecMemoizedHelperBlockDelimiter:
|
141
148
|
Description: |
|
142
149
|
Use do-end block delimiter on RSpec memoized helper.
|
@@ -0,0 +1,65 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
module Sevencop
|
6
|
+
# Keep RSpec matcher parentheses style consistent.
|
7
|
+
#
|
8
|
+
# @example
|
9
|
+
# # bad
|
10
|
+
# is_expected.to eq 1
|
11
|
+
#
|
12
|
+
# # good
|
13
|
+
# is_expected.to eq(1)
|
14
|
+
class RSpecMatcherConsistentParentheses < Base
|
15
|
+
extend AutoCorrector
|
16
|
+
|
17
|
+
MSG = 'Keep matcher parentheses style consistent.'
|
18
|
+
|
19
|
+
RESTRICT_ON_SEND = %i[to].freeze
|
20
|
+
|
21
|
+
# @param [RuboCop::AST::SendNode] node
|
22
|
+
# @return [void]
|
23
|
+
def on_send(node)
|
24
|
+
return unless to?(node)
|
25
|
+
|
26
|
+
first_argument = node.first_argument
|
27
|
+
return unless inconsistent?(first_argument)
|
28
|
+
|
29
|
+
add_offense(first_argument) do |corrector|
|
30
|
+
add_parentheses(first_argument, corrector)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
# @!method expectation?(node)
|
37
|
+
# @param [RuboCop::AST::SendNode] node
|
38
|
+
# @return [Boolean]
|
39
|
+
def_node_matcher :expectation?, <<~PATTERN
|
40
|
+
(send nil? { :is_expected :expect } ...)
|
41
|
+
PATTERN
|
42
|
+
|
43
|
+
# @param [RuboCop::AST::Node, nil] node
|
44
|
+
# @return [Boolean]
|
45
|
+
def inconsistent?(node)
|
46
|
+
node.send_type? && missing_parentheses?(node)
|
47
|
+
end
|
48
|
+
|
49
|
+
# @param [RuboCop::AST::SendNode] node
|
50
|
+
# @return [Boolean]
|
51
|
+
def missing_parentheses?(node)
|
52
|
+
!node.arguments.empty? &&
|
53
|
+
!node.operator_method? &&
|
54
|
+
!node.parenthesized?
|
55
|
+
end
|
56
|
+
|
57
|
+
# @param [RuboCop::AST::SendNode] node
|
58
|
+
# @return [Boolean]
|
59
|
+
def to?(node)
|
60
|
+
expectation?(node.receiver)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
data/lib/sevencop/version.rb
CHANGED
data/lib/sevencop.rb
CHANGED
@@ -23,5 +23,6 @@ require_relative 'rubocop/cop/sevencop/rails_where_not'
|
|
23
23
|
require_relative 'rubocop/cop/sevencop/rspec_describe_http_endpoint'
|
24
24
|
require_relative 'rubocop/cop/sevencop/rspec_empty_line_after_let'
|
25
25
|
require_relative 'rubocop/cop/sevencop/rspec_examples_in_same_group'
|
26
|
+
require_relative 'rubocop/cop/sevencop/rspec_matcher_consistent_parentheses'
|
26
27
|
require_relative 'rubocop/cop/sevencop/rspec_memoized_helper_block_delimiter'
|
27
28
|
require_relative 'rubocop/cop/sevencop/rspec_rails_have_http_status'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sevencop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.40.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryo Nakamura
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-05-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -75,6 +75,7 @@ files:
|
|
75
75
|
- lib/rubocop/cop/sevencop/rspec_describe_http_endpoint.rb
|
76
76
|
- lib/rubocop/cop/sevencop/rspec_empty_line_after_let.rb
|
77
77
|
- lib/rubocop/cop/sevencop/rspec_examples_in_same_group.rb
|
78
|
+
- lib/rubocop/cop/sevencop/rspec_matcher_consistent_parentheses.rb
|
78
79
|
- lib/rubocop/cop/sevencop/rspec_memoized_helper_block_delimiter.rb
|
79
80
|
- lib/rubocop/cop/sevencop/rspec_rails_have_http_status.rb
|
80
81
|
- lib/sevencop.rb
|