rubocop 1.18.2 → 1.18.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 716224a3d34c433671a2cb5ffc66f617d96bc6180e8f015e281a0ed4a81025a5
4
- data.tar.gz: 8702da6fbac8c2abaabdfbade5d200cac743f591cc73d3e921dc6e37d6a11155
3
+ metadata.gz: b6123e3d35feebac08e838afcff3f912fa24f7abcc71403f6368fffb346fa9bc
4
+ data.tar.gz: 40f3ff08e0efc288e7a11af7016d702f743b8ab343de0c3fd045035c7ac7605f
5
5
  SHA512:
6
- metadata.gz: fb87420e2dc381febd58d3bb0960c675622818d5e47a402e8d22592ad2b4ad5262fc381cb69d87263f3c9e3049dd3c87f4da6abfa82c0fd4782d6e0ad44ee7ab
7
- data.tar.gz: ab26c4549a6a3037fc8de874b2a60c2a53e270412c3c091d43917d4656ed08fb114a7c1bba30b58d07cbe144e6df361a187f723555224665c5b971023bb1625e
6
+ metadata.gz: 3ac2d860eccd7ac0d655649d36f64cf52ed1587357b2ef35707a1c2ced408cf645d1a8be2dd6e660c5e338c298adef876814fdf35b22f5c71da4ec5bc830e388
7
+ data.tar.gz: adab3ee6563260ced11848bc9b1c62ff2641a28a6b4aca80cb703ef9136562bbdc6a2efff4670d12dee329cc7cf5306a8c9d11106ff13d9cbf5539b5094ba388
data/config/default.yml CHANGED
@@ -1809,7 +1809,7 @@ Lint/MissingCopEnableDirective:
1809
1809
  Lint/MissingSuper:
1810
1810
  Description: >-
1811
1811
  This cop checks for the presence of constructors and lifecycle callbacks
1812
- without calls to `super`'.
1812
+ without calls to `super`.
1813
1813
  Enabled: true
1814
1814
  VersionAdded: '0.89'
1815
1815
  VersionChanged: '1.4'
@@ -23,7 +23,7 @@ module RuboCop
23
23
  def resolve_inheritance(path, hash, file, debug) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
24
24
  inherited_files = Array(hash['inherit_from'])
25
25
  base_configs(path, inherited_files, file)
26
- .reverse.each_with_index do |base_config, index|
26
+ .each_with_index.reverse_each do |base_config, index|
27
27
  override_department_setting_for_cops(base_config, hash)
28
28
  override_enabled_for_disabled_departments(base_config, hash)
29
29
 
@@ -220,7 +220,7 @@ module RuboCop
220
220
  def autocorrect_incompatible_with_other_cops?(node)
221
221
  enforce_first_argument_with_fixed_indentation? &&
222
222
  node.pairs.any? &&
223
- node.parent&.call_type? && node.parent.loc.selector.line == node.pairs.first.loc.line
223
+ node.parent&.call_type? && node.parent.loc.selector&.line == node.pairs.first.loc.line
224
224
  end
225
225
 
226
226
  def reset!
@@ -85,14 +85,9 @@ module RuboCop
85
85
  private
86
86
 
87
87
  def strings_concatenated_with_backslash?(dstr_node)
88
- !dstr_node.heredoc? &&
89
- !single_string_literal?(dstr_node) &&
90
- dstr_node.children.length > 1 &&
91
- dstr_node.children.all? { |c| c.str_type? || c.dstr_type? }
92
- end
93
-
94
- def single_string_literal?(dstr_node)
95
- dstr_node.loc.respond_to?(:begin) && dstr_node.loc.begin
88
+ dstr_node.multiline? &&
89
+ dstr_node.children.all? { |c| c.str_type? || c.dstr_type? } &&
90
+ dstr_node.children.none?(&:multiline?)
96
91
  end
97
92
 
98
93
  def always_indented?(dstr_node)
@@ -63,6 +63,10 @@ module RuboCop
63
63
  [Style::SelfAssignment]
64
64
  end
65
65
 
66
+ def on_sclass(node)
67
+ check_operator(:sclass, node.loc.operator, node.source_range)
68
+ end
69
+
66
70
  def on_pair(node)
67
71
  return unless node.hash_rocket?
68
72
 
@@ -81,7 +81,7 @@ module RuboCop
81
81
  return if block_reassigns_arg?(node, block_arg)
82
82
 
83
83
  source = node.body.source
84
- source.gsub!(/\b#{block_arg}\b/, '1') if block_arg
84
+ source.gsub!(/\b#{block_arg}\b/, '0') if block_arg
85
85
 
86
86
  corrector.replace(node, fix_indentation(source, node.loc.column...node.body.loc.column))
87
87
  end
@@ -135,6 +135,7 @@ module RuboCop
135
135
  class BlockDelimiters < Base
136
136
  include ConfigurableEnforcedStyle
137
137
  include IgnoredMethods
138
+ include RangeHelp
138
139
  extend AutoCorrector
139
140
 
140
141
  ALWAYS_BRACES_MESSAGE = 'Prefer `{...}` over `do...end` for blocks.'
@@ -231,6 +232,11 @@ module RuboCop
231
232
  corrector.insert_before(e, ' ') unless whitespace_before?(e)
232
233
  corrector.insert_after(b, ' ') unless whitespace_after?(b)
233
234
  corrector.replace(b, 'do')
235
+
236
+ if (comment = processed_source.comment_at_line(e.line))
237
+ move_comment_before_block(corrector, comment, loc.node, e)
238
+ end
239
+
234
240
  corrector.replace(e, 'end')
235
241
  end
236
242
 
@@ -252,6 +258,15 @@ module RuboCop
252
258
  /\s/.match?(range.source_buffer.source[range.begin_pos + length, 1])
253
259
  end
254
260
 
261
+ def move_comment_before_block(corrector, comment, block_node, closing_brace)
262
+ range = range_between(closing_brace.end_pos, comment.loc.expression.end_pos)
263
+
264
+ corrector.remove(range_with_surrounding_space(range: range, side: :right))
265
+ corrector.insert_after(closing_brace, "\n")
266
+
267
+ corrector.insert_before(block_node, "#{comment.text}\n")
268
+ end
269
+
255
270
  def get_blocks(node, &block)
256
271
  case node.type
257
272
  when :block
@@ -5,11 +5,17 @@ module RuboCop
5
5
  module Style
6
6
  # This cop is designed to help you transition from mutable string literals
7
7
  # to frozen string literals.
8
- # It will add the comment `# frozen_string_literal: true` to the top of
9
- # files to enable frozen string literals. Frozen string literals may be
8
+ # It will add the `# frozen_string_literal: true` magic comment to the top
9
+ # of files to enable frozen string literals. Frozen string literals may be
10
10
  # default in future Ruby. The comment will be added below a shebang and
11
11
  # encoding comment.
12
12
  #
13
+ # Note that the cop will ignore files where the comment exists but is set
14
+ # to `false` instead of `true`.
15
+ #
16
+ # To require a blank line after this comment, please see
17
+ # `Layout/EmptyLineAfterMagicComment` cop.
18
+ #
13
19
  # @example EnforcedStyle: always (default)
14
20
  # # The `always` style will always add the frozen string literal comment
15
21
  # # to a file, regardless of the Ruby version or if `freeze` or `<<` are
@@ -74,7 +74,7 @@ module RuboCop
74
74
  ruby19_no_mixed_keys_check(pairs)
75
75
  elsif style == :no_mixed_keys
76
76
  no_mixed_keys_check(pairs)
77
- elsif node.source.include?('=>')
77
+ else
78
78
  ruby19_check(pairs)
79
79
  end
80
80
  end
@@ -36,6 +36,7 @@ module RuboCop
36
36
  extend AutoCorrector
37
37
 
38
38
  MSG = 'Avoid single-line method definitions.'
39
+ NOT_SUPPORTED_ENDLESS_METHOD_BODY_TYPES = %i[return break next].freeze
39
40
 
40
41
  def on_def(node)
41
42
  return unless node.single_line?
@@ -62,13 +63,10 @@ module RuboCop
62
63
 
63
64
  def correct_to_endless?(body_node)
64
65
  return false if target_ruby_version < 3.0
65
-
66
- endless_method_config = config.for_cop('Style/EndlessMethod')
67
-
68
- return false unless endless_method_config['Enabled']
69
- return false if endless_method_config['EnforcedStyle'] == 'disallow'
66
+ return false if disallow_endless_method_style?
70
67
  return false unless body_node
71
- return false if body_node.parent.assignment_method?
68
+ return false if body_node.parent.assignment_method? ||
69
+ NOT_SUPPORTED_ENDLESS_METHOD_BODY_TYPES.include?(body_node.type)
72
70
 
73
71
  !(body_node.begin_type? || body_node.kwbegin_type?)
74
72
  end
@@ -129,6 +127,13 @@ module RuboCop
129
127
  def require_parentheses?(method_body)
130
128
  method_body.send_type? && !method_body.arguments.empty? && !method_body.comparison_method?
131
129
  end
130
+
131
+ def disallow_endless_method_style?
132
+ endless_method_config = config.for_cop('Style/EndlessMethod')
133
+ return false unless endless_method_config['Enabled']
134
+
135
+ endless_method_config['EnforcedStyle'] == 'disallow'
136
+ end
132
137
  end
133
138
  end
134
139
  end
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  # This module holds the RuboCop version information.
5
5
  module Version
6
- STRING = '1.18.2'
6
+ STRING = '1.18.3'
7
7
 
8
8
  MSG = '%<version>s (using Parser %<parser_version>s, '\
9
9
  'rubocop-ast %<rubocop_ast_version>s, ' \
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.18.2
4
+ version: 1.18.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bozhidar Batsov
8
8
  - Jonas Arvidsson
9
9
  - Yuji Nakayama
10
- autorequire:
10
+ autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2021-07-02 00:00:00.000000000 Z
13
+ date: 2021-07-06 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: parallel
@@ -885,7 +885,7 @@ metadata:
885
885
  source_code_uri: https://github.com/rubocop/rubocop/
886
886
  documentation_uri: https://docs.rubocop.org/rubocop/1.18/
887
887
  bug_tracker_uri: https://github.com/rubocop/rubocop/issues
888
- post_install_message:
888
+ post_install_message:
889
889
  rdoc_options: []
890
890
  require_paths:
891
891
  - lib
@@ -900,8 +900,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
900
900
  - !ruby/object:Gem::Version
901
901
  version: '0'
902
902
  requirements: []
903
- rubygems_version: 3.2.18
904
- signing_key:
903
+ rubygems_version: 3.1.2
904
+ signing_key:
905
905
  specification_version: 4
906
906
  summary: Automatic Ruby code style checking tool.
907
907
  test_files: []