rubocop-standard 1.15.1 → 2.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: 27b8d90563424cdb8e15f16e85ee4a012a0a257c2025307fa4cd588f7ab3c0a5
4
- data.tar.gz: a1054ba318de19986785ed3648f0fd33c5d10cf51524127d17b404f121af3680
3
+ metadata.gz: 4ff86603c5200d0aaf96d6141ee15b32b84484a970b6fda00b6509689d837c59
4
+ data.tar.gz: 42c8bf7bf7f5c126bd6f307c4562c05cad20f38c6034b6a0a600e3d899c9dcd6
5
5
  SHA512:
6
- metadata.gz: 63c331df6f24b4172587a49c9e084dbc0033ee9b6e762119fb171afe05d56bc24fa1f2bcb426d82fafc191c3eefe8d787f709111e11ae59d7f43df712cd08cee
7
- data.tar.gz: 4882d596fc5c265acf84447ce93f74cd7fce61c233d76c5be3e2d1e4ce36d6d19b569bc96f6dc618f53af4958790a018fff060d04b9bbef8d6bff56ac49ef2fa
6
+ metadata.gz: 7583c6adb7b95deed066c99466b574143635da619506f283ba7071189977692f3386fcc36aa625b0314c832ea2e979d2a7814ff24bd1479cb49bfccb2df92119
7
+ data.tar.gz: b97e83353026c7fb74f4c99a85706012d608dbdff507741bf7b786b635241a3816caf906dad13e6c16e270ae2cdc571033e0cdc71e50de99fd05b22c198410f0
data/README.md CHANGED
@@ -13,10 +13,8 @@ gem "rubocop-standard"
13
13
  **.rubocop.yml**
14
14
 
15
15
  ``` yaml
16
- inherit_gem:
17
- rubocop-standard:
18
- - config/default.yml
19
- - config/rails.yml
16
+ require:
17
+ - rubocop-standard
20
18
  ```
21
19
 
22
20
  ## The Cops
@@ -1,9 +1,4 @@
1
- require:
2
- - rubocop/cop/standard
3
- - rubocop-performance
4
-
5
- AllCops:
6
- DisabledByDefault: true
1
+ require: rubocop/cop/standard
7
2
 
8
3
  Bundler/DuplicatedGem:
9
4
  Enabled: true
@@ -153,10 +148,10 @@ Lint/StringConversionInInterpolation:
153
148
  Lint/UnderscorePrefixedVariableName:
154
149
  Enabled: true
155
150
 
156
- Lint/UnneededCopDisableDirective:
151
+ Lint/RedundantCopDisableDirective:
157
152
  Enabled: true
158
153
 
159
- Lint/UnneededSplatExpansion:
154
+ Lint/RedundantSplatExpansion:
160
155
  Enabled: true
161
156
 
162
157
  Lint/UnreachableCode:
@@ -1,8 +1,5 @@
1
- Rails:
2
- Enabled: true
3
-
4
- Rails/FindEach:
5
- Enabled: false
1
+ require:
2
+ - rubocop-rails
6
3
 
7
4
  Rails/OutputSafety:
8
5
  Enabled: true
@@ -20,99 +17,107 @@ Rails/ScopeArgs:
20
17
  Rails/UniqBeforePluck:
21
18
  Enabled: true
22
19
 
23
- Standard/RailsApplicationRecord:
20
+ GitHub/RailsApplicationRecord:
24
21
  Enabled: true
25
22
 
26
- Standard/RailsControllerRenderActionSymbol:
23
+ GitHub/RailsControllerRenderActionSymbol:
27
24
  Enabled: true
28
25
  Include:
29
- - 'app/controllers/**/*.rb'
26
+ - "app/controllers/**/*.rb"
30
27
 
31
- Standard/RailsControllerRenderLiteral:
28
+ GitHub/RailsControllerRenderLiteral:
32
29
  Enabled: true
33
- StyleGuide: https://github.com/gjtorikian/rubocop-standard/blob/master/guides/rails-render-literal.md
30
+ StyleGuide: https://github.com/github/rubocop-github/blob/master/guides/rails-render-literal.md
34
31
  Include:
35
- - 'app/controllers/**/*.rb'
32
+ - "app/controllers/**/*.rb"
36
33
 
37
- Standard/RailsControllerRenderPathsExist:
34
+ GitHub/RailsControllerRenderPathsExist:
38
35
  Enabled: true
39
36
  ViewPath:
40
- - 'app/views'
37
+ - "app/views"
41
38
  Include:
42
- - 'app/controllers/**/*.rb'
39
+ - "app/controllers/**/*.rb"
43
40
 
44
- Standard/RailsControllerRenderShorthand:
41
+ GitHub/RailsControllerRenderShorthand:
45
42
  Enabled: true
46
- StyleGuide: https://github.com/gjtorikian/rubocop-standard/blob/master/guides/rails-controller-render-shorthand.md
43
+ StyleGuide: https://github.com/github/rubocop-github/blob/master/guides/rails-controller-render-shorthand.md
47
44
  Include:
48
- - 'app/controllers/**/*.rb'
45
+ - "app/controllers/**/*.rb"
49
46
 
50
- Standard/RailsRenderInline:
47
+ GitHub/RailsRenderInline:
51
48
  Enabled: true
52
- StyleGuide: https://github.com/gjtorikian/rubocop-standard/blob/master/guides/rails-controller-render-inline.md
49
+ StyleGuide: https://github.com/github/rubocop-github/blob/master/guides/rails-controller-render-inline.md
53
50
  Include:
54
- - 'app/controllers/**/*.rb'
55
- - 'app/helpers/**/*.rb'
56
- - 'app/view_models/**/*.rb'
57
- - 'app/views/**/*.erb'
51
+ - "app/controllers/**/*.rb"
52
+ - "app/helpers/**/*.rb"
53
+ - "app/view_models/**/*.rb"
54
+ - "app/views/**/*.erb"
58
55
 
59
- Standard/RailsRenderObjectCollection:
56
+ GitHub/RailsRenderObjectCollection:
60
57
  Enabled: false
61
58
 
62
- Standard/RailsViewRenderLiteral:
59
+ GitHub/RailsViewRenderLiteral:
63
60
  Enabled: true
64
- StyleGuide: https://github.com/gjtorikian/rubocop-standard/blob/master/guides/rails-render-literal.md
61
+ StyleGuide: https://github.com/github/rubocop-github/blob/master/guides/rails-render-literal.md
65
62
  Include:
66
- - 'app/helpers/**/*.rb'
67
- - 'app/view_models/**/*.rb'
68
- - 'app/views/**/*.erb'
63
+ - "app/helpers/**/*.rb"
64
+ - "app/view_models/**/*.rb"
65
+ - "app/views/**/*.erb"
69
66
 
70
- Standard/RailsViewRenderPathsExist:
67
+ GitHub/RailsViewRenderPathsExist:
71
68
  Enabled: true
72
69
  ViewPath:
73
- - 'app/views'
70
+ - "app/views"
74
71
  Include:
75
- - 'app/helpers/**/*.rb'
76
- - 'app/view_models/**/*.rb'
77
- - 'app/views/**/*.erb'
72
+ - "app/helpers/**/*.rb"
73
+ - "app/view_models/**/*.rb"
74
+ - "app/views/**/*.erb"
78
75
 
79
- Standard/RailsViewRenderShorthand:
76
+ GitHub/RailsViewRenderShorthand:
80
77
  Enabled: true
81
78
  Include:
82
- - 'app/helpers/**/*.rb'
83
- - 'app/view_models/**/*.rb'
84
- - 'app/views/**/*.erb'
79
+ - "app/helpers/**/*.rb"
80
+ - "app/view_models/**/*.rb"
81
+ - "app/views/**/*.erb"
85
82
 
86
83
  # Exclude Rails ERB files from incompatible cops
87
84
 
88
85
  Layout/BlockAlignment:
89
86
  Exclude:
90
- - 'app/views/**/*.erb'
87
+ - "app/views/**/*.erb"
91
88
 
92
89
  Style/For:
93
90
  Exclude:
94
- - 'app/views/**/*.erb'
91
+ - "app/views/**/*.erb"
95
92
 
96
93
  Style/OneLineConditional:
97
94
  Exclude:
98
- - 'app/views/**/*.erb'
95
+ - "app/views/**/*.erb"
99
96
 
100
97
  Style/Semicolon:
101
98
  Exclude:
102
- - 'app/views/**/*.erb'
99
+ - "app/views/**/*.erb"
103
100
 
104
101
  Layout/SpaceInsideParens:
105
102
  Exclude:
106
- - 'app/views/**/*.erb'
103
+ - "app/views/**/*.erb"
107
104
 
108
105
  Style/StringLiterals:
109
106
  Exclude:
110
- - 'app/views/**/*.erb'
107
+ - "app/views/**/*.erb"
111
108
 
112
109
  Layout/TrailingBlankLines:
113
110
  Exclude:
114
- - 'app/views/**/*.erb'
111
+ - "app/views/**/*.erb"
115
112
 
116
113
  Layout/TrailingWhitespace:
117
114
  Exclude:
118
- - 'app/views/**/*.erb'
115
+ - "app/views/**/*.erb"
116
+
117
+ Layout/InitialIndentation:
118
+ Exclude:
119
+ - "app/views/**/*.erb"
120
+
121
+ Lint/UselessAccessModifier:
122
+ ContextCreatingMethods:
123
+ - concerning
@@ -17,11 +17,9 @@ module RuboCop
17
17
  PATTERN
18
18
 
19
19
  def on_class(node)
20
- klass, superclass, _ = *node
20
+ klass, superclass, = *node
21
21
 
22
- if active_record_base_const?(superclass) && !(application_record_const?(klass))
23
- add_offense(superclass, location: :expression)
24
- end
22
+ add_offense(superclass, location: :expression) if active_record_base_const?(superclass) && !application_record_const?(klass)
25
23
  end
26
24
  end
27
25
  end
@@ -6,7 +6,7 @@ module RuboCop
6
6
  module Cop
7
7
  module Standard
8
8
  class RailsControllerRenderLiteral < Cop
9
- MSG = 'render must be used with a string literal'
9
+ MSG = 'render must be used with a string literal or an instance of a Class'
10
10
 
11
11
  def_node_matcher :literal?, <<-PATTERN
12
12
  ({str sym true false nil?} ...)
@@ -20,6 +20,14 @@ module RuboCop
20
20
  (send nil? :render ({str sym} $_) $...)
21
21
  PATTERN
22
22
 
23
+ def_node_matcher :render_const?, <<-PATTERN
24
+ (send nil? :render (const _ _) ...)
25
+ PATTERN
26
+
27
+ def_node_matcher :render_inst?, <<-PATTERN
28
+ (send nil? :render (send _ :new ...) ...)
29
+ PATTERN
30
+
23
31
  def_node_matcher :render_with_options?, <<-PATTERN
24
32
  (send nil? :render (hash $...))
25
33
  PATTERN
@@ -63,26 +71,20 @@ module RuboCop
63
71
  def on_send(node)
64
72
  return unless render?(node)
65
73
 
66
- if render_literal?(node)
74
+ if render_literal?(node) || render_inst?(node) || render_const?(node)
67
75
  elsif option_pairs = render_with_options?(node)
68
76
  option_pairs = option_pairs.reject { |pair| options_key?(pair) }
69
77
 
70
- if option_pairs.any? { |pair| ignore_key?(pair) }
71
- return
72
- end
78
+ return if option_pairs.any? { |pair| ignore_key?(pair) }
73
79
 
74
80
  if template_node = option_pairs.map { |pair| template_key?(pair) }.compact.first
75
- if !literal?(template_node)
76
- add_offense(node, location: :expression)
77
- end
81
+ add_offense(node, location: :expression) unless literal?(template_node)
78
82
  else
79
83
  add_offense(node, location: :expression)
80
84
  end
81
85
 
82
86
  if layout_node = option_pairs.map { |pair| layout_key?(pair) }.compact.first
83
- if !literal?(layout_node)
84
- add_offense(node, location: :expression)
85
- end
87
+ add_offense(node, location: :expression) unless literal?(layout_node)
86
88
  end
87
89
  else
88
90
  add_offense(node, location: :expression)
@@ -27,22 +27,16 @@ module RuboCop
27
27
 
28
28
  if args = render_str?(node)
29
29
  node, path = args
30
- unless resolve_template(path.to_s)
31
- add_offense(node, location: :expression, message: 'Template could not be found')
32
- end
30
+ add_offense(node, location: :expression, message: 'Template could not be found') unless resolve_template(path.to_s)
33
31
  elsif pairs = render_options?(node)
34
32
  if pair = pairs.detect { |p| render_key?(p) }
35
33
  key, node, path = render_key?(pair)
36
34
 
37
35
  case key
38
36
  when :action, :template
39
- unless resolve_template(path.to_s)
40
- add_offense(node, location: :expression, message: 'Template could not be found')
41
- end
37
+ add_offense(node, location: :expression, message: 'Template could not be found') unless resolve_template(path.to_s)
42
38
  when :partial
43
- unless resolve_partial(path.to_s)
44
- add_offense(node, location: :expression, message: 'Partial template could not be found')
45
- end
39
+ add_offense(node, location: :expression, message: 'Partial template could not be found') unless resolve_partial(path.to_s)
46
40
  end
47
41
  end
48
42
  end
@@ -31,17 +31,17 @@ module RuboCop
31
31
  def on_send(node)
32
32
  if option_pairs = render_with_options?(node)
33
33
  option_pairs.each do |pair|
34
- if value_node = action_key?(pair)
35
- comma = option_pairs.length > 1 ? ', ' : ''
36
- corrected_source = node.source
37
- .sub(/#{pair.source}(,\s*)?/, '')
38
- .sub('render ', "render \"#{str(value_node)}\"#{comma}")
39
-
40
- @autocorrect[node] = lambda do |corrector|
41
- corrector.replace(node.source_range, corrected_source)
42
- end
43
- add_offense(node, location: :expression, message: "Use `#{corrected_source}` instead")
34
+ next unless value_node = action_key?(pair)
35
+
36
+ comma = option_pairs.length > 1 ? ', ' : ''
37
+ corrected_source = node.source
38
+ .sub(/#{pair.source}(,\s*)?/, '')
39
+ .sub('render ', "render \"#{str(value_node)}\"#{comma}")
40
+
41
+ @autocorrect[node] = lambda do |corrector|
42
+ corrector.replace(node.source_range, corrected_source)
44
43
  end
44
+ add_offense(node, location: :expression, message: "Use `#{corrected_source}` instead")
45
45
  end
46
46
  end
47
47
  end
@@ -18,9 +18,7 @@ module RuboCop
18
18
 
19
19
  def on_send(node)
20
20
  if option_pairs = render_with_options?(node)
21
- if option_pairs.detect { |pair| inline_key?(pair) }
22
- add_offense(node, location: :expression)
23
- end
21
+ add_offense(node, location: :expression) if option_pairs.detect { |pair| inline_key?(pair) }
24
22
  end
25
23
  end
26
24
  end
@@ -31,9 +31,7 @@ module RuboCop
31
31
 
32
32
  case object_sym
33
33
  when :object
34
- if partial_name.children[0].is_a?(String)
35
- suggestion = ", instead `render partial: #{partial_name.source}, locals: { #{File.basename(partial_name.children[0], '.html.erb')}: #{object_node.source} }`"
36
- end
34
+ suggestion = ", instead `render partial: #{partial_name.source}, locals: { #{File.basename(partial_name.children[0], '.html.erb')}: #{object_node.source} }`" if partial_name.children[0].is_a?(String)
37
35
  add_offense(node, location: :expression, message: "Avoid `render object:`#{suggestion}")
38
36
  when :collection, :spacer_template
39
37
  add_offense(node, location: :expression, message: 'Avoid `render collection:`')
@@ -6,7 +6,7 @@ module RuboCop
6
6
  module Cop
7
7
  module Standard
8
8
  class RailsViewRenderLiteral < Cop
9
- MSG = 'render must be used with a string literal'
9
+ MSG = 'render must be used with a string literal or an instance of a Class'
10
10
 
11
11
  def_node_matcher :literal?, <<-PATTERN
12
12
  ({str sym true false nil?} ...)
@@ -20,6 +20,14 @@ module RuboCop
20
20
  (send nil? :render ({str sym} $_) $...)
21
21
  PATTERN
22
22
 
23
+ def_node_matcher :render_inst?, <<-PATTERN
24
+ (send nil? :render (send _ :new ...) ...)
25
+ PATTERN
26
+
27
+ def_node_matcher :render_const?, <<-PATTERN
28
+ (send nil? :render (const _ _) ...)
29
+ PATTERN
30
+
23
31
  def_node_matcher :render_with_options?, <<-PATTERN
24
32
  (send nil? :render (hash $...) ...)
25
33
  PATTERN
@@ -42,16 +50,12 @@ module RuboCop
42
50
  def on_send(node)
43
51
  return unless render?(node)
44
52
 
45
- if render_literal?(node)
53
+ if render_literal?(node) || render_inst?(node) || render_const?(node)
46
54
  elsif option_pairs = render_with_options?(node)
47
- if option_pairs.any? { |pair| ignore_key?(pair) }
48
- return
49
- end
55
+ return if option_pairs.any? { |pair| ignore_key?(pair) }
50
56
 
51
57
  if partial_node = option_pairs.map { |pair| partial_key?(pair) }.compact.first
52
- if !literal?(partial_node)
53
- add_offense(node, location: :expression)
54
- end
58
+ add_offense(node, location: :expression) unless literal?(partial_node)
55
59
  else
56
60
  add_offense(node, location: :expression)
57
61
  end
@@ -27,16 +27,12 @@ module RuboCop
27
27
 
28
28
  if args = render_str?(node)
29
29
  node, path = args
30
- unless resolve_partial(path.to_s)
31
- add_offense(node, location: :expression, message: 'Partial template could not be found')
32
- end
30
+ add_offense(node, location: :expression, message: 'Partial template could not be found') unless resolve_partial(path.to_s)
33
31
  elsif pairs = render_options?(node)
34
32
  if pair = pairs.detect { |p| partial_key?(p) }
35
33
  node, path = partial_key?(pair)
36
34
 
37
- unless resolve_partial(path.to_s)
38
- add_offense(node, location: :expression, message: 'Partial template could not be found')
39
- end
35
+ add_offense(node, location: :expression, message: 'Partial template could not be found') unless resolve_partial(path.to_s)
40
36
  end
41
37
  end
42
38
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop-standard
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.15.1
4
+ version: '2.0'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Garen Torikian
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-01 00:00:00.000000000 Z
11
+ date: 2019-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubocop
@@ -30,14 +30,28 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.1'
33
+ version: '1.5'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.1'
40
+ version: '1.5'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rubocop-rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.3'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.3'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: actionview
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -125,8 +139,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
125
139
  - !ruby/object:Gem::Version
126
140
  version: '0'
127
141
  requirements: []
128
- rubyforge_project:
129
- rubygems_version: 2.7.6
142
+ rubygems_version: 3.0.6
130
143
  signing_key:
131
144
  specification_version: 4
132
145
  summary: RuboCop Standard