rubocop 0.59.2 → 0.60.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 +5 -5
- data/README.md +3 -2
- data/config/default.yml +2960 -552
- data/lib/rubocop.rb +1 -0
- data/lib/rubocop/ast/builder.rb +29 -29
- data/lib/rubocop/ast/node.rb +29 -25
- data/lib/rubocop/ast/node/args_node.rb +1 -1
- data/lib/rubocop/ast/node/mixin/binary_operator_node.rb +1 -1
- data/lib/rubocop/ast/node/mixin/method_dispatch_node.rb +26 -0
- data/lib/rubocop/ast/node/mixin/method_identifier_predicates.rb +5 -1
- data/lib/rubocop/ast/node/pair_node.rb +8 -1
- data/lib/rubocop/ast/node/str_node.rb +1 -1
- data/lib/rubocop/cached_data.rb +2 -2
- data/lib/rubocop/config.rb +1 -1
- data/lib/rubocop/config_loader.rb +8 -0
- data/lib/rubocop/cop/autocorrect_logic.rb +7 -1
- data/lib/rubocop/cop/bundler/insecure_protocol_source.rb +1 -1
- data/lib/rubocop/cop/correctors/alignment_corrector.rb +2 -1
- data/lib/rubocop/cop/gemspec/duplicated_assignment.rb +1 -1
- data/lib/rubocop/cop/generator.rb +10 -3
- data/lib/rubocop/cop/generator/require_file_injector.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/node_destructuring.rb +1 -1
- data/lib/rubocop/cop/layout/align_hash.rb +9 -1
- data/lib/rubocop/cop/layout/block_end_newline.rb +2 -4
- data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +7 -7
- data/lib/rubocop/cop/layout/comment_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/dot_position.rb +2 -2
- data/lib/rubocop/cop/layout/else_alignment.rb +1 -1
- data/lib/rubocop/cop/layout/empty_line_after_magic_comment.rb +1 -2
- data/lib/rubocop/cop/layout/empty_lines.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +25 -25
- data/lib/rubocop/cop/layout/empty_lines_around_arguments.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_begin_body.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_block_body.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_class_body.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_method_body.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_module_body.rb +1 -1
- data/lib/rubocop/cop/layout/end_alignment.rb +1 -1
- data/lib/rubocop/cop/layout/first_parameter_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/indent_hash.rb +1 -1
- data/lib/rubocop/cop/layout/indent_heredoc.rb +2 -2
- data/lib/rubocop/cop/layout/indentation_consistency.rb +1 -1
- data/lib/rubocop/cop/layout/indentation_width.rb +1 -1
- data/lib/rubocop/cop/layout/initial_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_array_brace_layout.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_operation_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +84 -43
- data/lib/rubocop/cop/layout/space_after_method_name.rb +1 -1
- data/lib/rubocop/cop/layout/space_around_keyword.rb +1 -1
- data/lib/rubocop/cop/layout/space_around_operators.rb +3 -2
- data/lib/rubocop/cop/layout/space_inside_array_percent_literal.rb +1 -1
- data/lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb +2 -2
- data/lib/rubocop/cop/lint/ambiguous_operator.rb +5 -5
- data/lib/rubocop/cop/lint/assignment_in_condition.rb +10 -20
- data/lib/rubocop/cop/lint/ensure_return.rb +3 -0
- data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +3 -3
- data/lib/rubocop/cop/lint/literal_as_condition.rb +1 -1
- data/lib/rubocop/cop/lint/percent_string_array.rb +2 -2
- data/lib/rubocop/cop/lint/percent_symbol_array.rb +10 -7
- data/lib/rubocop/cop/lint/safe_navigation_consistency.rb +3 -4
- data/lib/rubocop/cop/lint/shadowed_argument.rb +1 -2
- data/lib/rubocop/cop/lint/syntax.rb +3 -2
- data/lib/rubocop/cop/lint/uri_escape_unescape.rb +3 -3
- data/lib/rubocop/cop/lint/useless_setter_call.rb +4 -7
- data/lib/rubocop/cop/metrics/abc_size.rb +1 -17
- data/lib/rubocop/cop/metrics/line_length.rb +14 -10
- data/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +45 -0
- data/lib/rubocop/cop/mixin/check_assignment.rb +12 -6
- data/lib/rubocop/cop/mixin/configurable_enforced_style.rb +1 -1
- data/lib/rubocop/cop/mixin/configurable_formatting.rb +0 -2
- data/lib/rubocop/cop/mixin/configurable_max.rb +4 -2
- data/lib/rubocop/cop/mixin/configurable_naming.rb +1 -1
- data/lib/rubocop/cop/mixin/configurable_numbering.rb +2 -2
- data/lib/rubocop/cop/mixin/hash_alignment.rb +32 -5
- data/lib/rubocop/cop/mixin/heredoc.rb +1 -1
- data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +3 -4
- data/lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb +1 -1
- data/lib/rubocop/cop/mixin/statement_modifier.rb +4 -0
- data/lib/rubocop/cop/mixin/trailing_comma.rb +1 -1
- data/lib/rubocop/cop/naming/class_and_module_camel_case.rb +1 -1
- data/lib/rubocop/cop/naming/constant_name.rb +1 -1
- data/lib/rubocop/cop/naming/file_name.rb +1 -1
- data/lib/rubocop/cop/naming/method_name.rb +2 -0
- data/lib/rubocop/cop/naming/variable_number.rb +1 -1
- data/lib/rubocop/cop/offense.rb +1 -1
- data/lib/rubocop/cop/performance/regexp_match.rb +1 -1
- data/lib/rubocop/cop/performance/sample.rb +3 -2
- data/lib/rubocop/cop/performance/start_with.rb +1 -1
- data/lib/rubocop/cop/performance/string_replacement.rb +1 -1
- data/lib/rubocop/cop/rails/date.rb +8 -8
- data/lib/rubocop/cop/rails/dynamic_find_by.rb +1 -1
- data/lib/rubocop/cop/rails/exit.rb +8 -9
- data/lib/rubocop/cop/rails/output_safety.rb +3 -3
- data/lib/rubocop/cop/rails/read_write_attribute.rb +5 -4
- data/lib/rubocop/cop/rails/refute_methods.rb +13 -13
- data/lib/rubocop/cop/rails/reversible_migration.rb +2 -1
- data/lib/rubocop/cop/rails/skips_model_validations.rb +17 -0
- data/lib/rubocop/cop/registry.rb +11 -2
- data/lib/rubocop/cop/style/and_or.rb +3 -3
- data/lib/rubocop/cop/style/collection_methods.rb +26 -0
- data/lib/rubocop/cop/style/empty_literal.rb +1 -1
- data/lib/rubocop/cop/style/encoding.rb +1 -1
- data/lib/rubocop/cop/style/even_odd.rb +2 -2
- data/lib/rubocop/cop/style/for.rb +3 -3
- data/lib/rubocop/cop/style/global_vars.rb +1 -1
- data/lib/rubocop/cop/style/identical_conditional_branches.rb +1 -1
- data/lib/rubocop/cop/style/if_unless_modifier.rb +1 -13
- data/lib/rubocop/cop/style/infinite_loop.rb +1 -1
- data/lib/rubocop/cop/style/inverse_methods.rb +1 -1
- data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +4 -7
- data/lib/rubocop/cop/style/method_def_parentheses.rb +1 -1
- data/lib/rubocop/cop/style/module_function.rb +1 -1
- data/lib/rubocop/cop/style/multiline_if_then.rb +1 -1
- data/lib/rubocop/cop/style/mutable_constant.rb +15 -1
- data/lib/rubocop/cop/style/nested_modifier.rb +1 -1
- data/lib/rubocop/cop/style/not.rb +2 -1
- data/lib/rubocop/cop/style/numeric_literal_prefix.rb +6 -6
- data/lib/rubocop/cop/style/numeric_literals.rb +1 -1
- data/lib/rubocop/cop/style/numeric_predicate.rb +1 -1
- data/lib/rubocop/cop/style/one_line_conditional.rb +2 -2
- data/lib/rubocop/cop/style/parentheses_around_condition.rb +1 -1
- data/lib/rubocop/cop/style/proc.rb +1 -1
- data/lib/rubocop/cop/style/redundant_freeze.rb +10 -0
- data/lib/rubocop/cop/style/redundant_parentheses.rb +6 -2
- data/lib/rubocop/cop/style/redundant_self.rb +1 -1
- data/lib/rubocop/cop/style/special_global_vars.rb +1 -1
- data/lib/rubocop/cop/style/stderr_puts.rb +1 -1
- data/lib/rubocop/cop/style/ternary_parentheses.rb +4 -3
- data/lib/rubocop/cop/style/unneeded_condition.rb +2 -2
- data/lib/rubocop/cop/style/unneeded_percent_q.rb +2 -2
- data/lib/rubocop/cop/style/unpack_first.rb +1 -1
- data/lib/rubocop/cop/team.rb +3 -2
- data/lib/rubocop/cop/util.rb +2 -22
- data/lib/rubocop/cop/variable_force/scope.rb +3 -3
- data/lib/rubocop/cop/variable_force/variable.rb +3 -4
- data/lib/rubocop/cop/variable_force/variable_table.rb +2 -2
- data/lib/rubocop/formatter/base_formatter.rb +3 -3
- data/lib/rubocop/formatter/disabled_config_formatter.rb +16 -1
- data/lib/rubocop/formatter/formatter_set.rb +14 -14
- data/lib/rubocop/formatter/html_formatter.rb +4 -4
- data/lib/rubocop/formatter/json_formatter.rb +13 -13
- data/lib/rubocop/formatter/simple_text_formatter.rb +4 -4
- data/lib/rubocop/magic_comment.rb +4 -4
- data/lib/rubocop/node_pattern.rb +17 -17
- data/lib/rubocop/options.rb +93 -82
- data/lib/rubocop/result_cache.rb +9 -1
- data/lib/rubocop/rspec/expect_offense.rb +2 -2
- data/lib/rubocop/rspec/shared_contexts.rb +11 -11
- data/lib/rubocop/rspec/shared_examples.rb +4 -4
- data/lib/rubocop/string_interpreter.rb +1 -1
- data/lib/rubocop/version.rb +1 -1
- metadata +6 -13
- data/config/disabled.yml +0 -161
- data/config/enabled.yml +0 -2092
data/lib/rubocop/node_pattern.rb
CHANGED
@@ -96,27 +96,27 @@ module RuboCop
|
|
96
96
|
# @private
|
97
97
|
# Builds Ruby code which implements a pattern
|
98
98
|
class Compiler
|
99
|
-
SYMBOL = %r{:(?:[\w+@*/?!<>=~|%^-]+|\[\]=?)}
|
100
|
-
IDENTIFIER = /[a-zA-Z_-]
|
101
|
-
META = /\(|\)|\{|\}|\[|\]
|
102
|
-
NUMBER = /-?\d+(?:\.\d+)
|
103
|
-
STRING = /".+?"
|
104
|
-
METHOD_NAME = /\#?#{IDENTIFIER}+[\!\?]?\(
|
105
|
-
PARAM_NUMBER = /%\d
|
106
|
-
|
107
|
-
SEPARATORS = /[\s]
|
99
|
+
SYMBOL = %r{:(?:[\w+@*/?!<>=~|%^-]+|\[\]=?)}.freeze
|
100
|
+
IDENTIFIER = /[a-zA-Z_-]/.freeze
|
101
|
+
META = /\(|\)|\{|\}|\[|\]|\$\.\.\.|\$|!|\^|\.\.\./.freeze
|
102
|
+
NUMBER = /-?\d+(?:\.\d+)?/.freeze
|
103
|
+
STRING = /".+?"/.freeze
|
104
|
+
METHOD_NAME = /\#?#{IDENTIFIER}+[\!\?]?\(?/.freeze
|
105
|
+
PARAM_NUMBER = /%\d*/.freeze
|
106
|
+
|
107
|
+
SEPARATORS = /[\s]+/.freeze
|
108
108
|
TOKENS = Regexp.union(META, PARAM_NUMBER, NUMBER,
|
109
109
|
METHOD_NAME, SYMBOL, STRING)
|
110
110
|
|
111
|
-
TOKEN = /\G(?:#{SEPARATORS}|#{TOKENS}|.)
|
111
|
+
TOKEN = /\G(?:#{SEPARATORS}|#{TOKENS}|.)/.freeze
|
112
112
|
|
113
|
-
NODE = /\A#{IDENTIFIER}+\Z
|
114
|
-
PREDICATE = /\A#{IDENTIFIER}+\?\(?\Z
|
115
|
-
WILDCARD = /\A_#{IDENTIFIER}*\Z
|
116
|
-
FUNCALL = /\A\##{METHOD_NAME}
|
117
|
-
LITERAL = /\A(?:#{SYMBOL}|#{NUMBER}|#{STRING})\Z
|
118
|
-
PARAM = /\A#{PARAM_NUMBER}\Z
|
119
|
-
CLOSING = /\A(?:\)|\}|\])\Z
|
113
|
+
NODE = /\A#{IDENTIFIER}+\Z/.freeze
|
114
|
+
PREDICATE = /\A#{IDENTIFIER}+\?\(?\Z/.freeze
|
115
|
+
WILDCARD = /\A_#{IDENTIFIER}*\Z/.freeze
|
116
|
+
FUNCALL = /\A\##{METHOD_NAME}/.freeze
|
117
|
+
LITERAL = /\A(?:#{SYMBOL}|#{NUMBER}|#{STRING})\Z/.freeze
|
118
|
+
PARAM = /\A#{PARAM_NUMBER}\Z/.freeze
|
119
|
+
CLOSING = /\A(?:\)|\}|\])\Z/.freeze
|
120
120
|
|
121
121
|
attr_reader :match_code
|
122
122
|
|
data/lib/rubocop/options.rb
CHANGED
@@ -94,22 +94,24 @@ module RuboCop
|
|
94
94
|
|
95
95
|
def add_configuration_options(opts)
|
96
96
|
option(opts, '-c', '--config FILE')
|
97
|
+
option(opts, '--force-exclusion')
|
98
|
+
option(opts, '--ignore-parent-exclusion')
|
99
|
+
option(opts, '--force-default-config')
|
100
|
+
add_auto_gen_options(opts)
|
101
|
+
end
|
97
102
|
|
103
|
+
def add_auto_gen_options(opts)
|
98
104
|
option(opts, '--auto-gen-config')
|
99
105
|
|
100
106
|
option(opts, '--exclude-limit COUNT') do
|
101
107
|
@validator.validate_exclude_limit_option
|
102
108
|
end
|
103
109
|
|
104
|
-
option(opts, '--force-exclusion')
|
105
|
-
option(opts, '--ignore-parent-exclusion')
|
106
|
-
|
107
|
-
option(opts, '--force-default-config')
|
108
|
-
|
109
110
|
option(opts, '--no-offense-counts') do
|
110
111
|
@options[:no_offense_counts] = true
|
111
112
|
end
|
112
113
|
|
114
|
+
option(opts, '--auto-gen-only-exclude')
|
113
115
|
option(opts, '--no-auto-gen-timestamp') do
|
114
116
|
@options[:no_auto_gen_timestamp] = true
|
115
117
|
end
|
@@ -156,6 +158,8 @@ module RuboCop
|
|
156
158
|
option(opts, '-R', '--rails')
|
157
159
|
option(opts, '-a', '--auto-correct')
|
158
160
|
|
161
|
+
option(opts, '--safe')
|
162
|
+
|
159
163
|
option(opts, '--[no-]color')
|
160
164
|
|
161
165
|
option(opts, '-v', '--version')
|
@@ -173,6 +177,9 @@ module RuboCop
|
|
173
177
|
@options[:only] << 'Layout'
|
174
178
|
@options[:auto_correct] = true
|
175
179
|
end
|
180
|
+
option(opts, '--safe-auto-correct') do
|
181
|
+
@options[:auto_correct] = true
|
182
|
+
end
|
176
183
|
end
|
177
184
|
|
178
185
|
def add_list_options(opts)
|
@@ -272,7 +279,8 @@ module RuboCop
|
|
272
279
|
|
273
280
|
message = '--%<flag>s can only be used together with --auto-gen-config.'
|
274
281
|
|
275
|
-
%i[exclude_limit no_offense_counts no_auto_gen_timestamp
|
282
|
+
%i[exclude_limit no_offense_counts no_auto_gen_timestamp
|
283
|
+
auto_gen_only_exclude].each do |option|
|
276
284
|
if @options.key?(option)
|
277
285
|
raise OptionArgumentError,
|
278
286
|
format(message, flag: option.to_s.tr('_', '-'))
|
@@ -342,84 +350,87 @@ module RuboCop
|
|
342
350
|
module OptionsHelp
|
343
351
|
MAX_EXCL = RuboCop::Options::DEFAULT_MAXIMUM_EXCLUSION_ITEMS.to_s
|
344
352
|
TEXT = {
|
345
|
-
only:
|
346
|
-
only_guide_cops:
|
347
|
-
|
348
|
-
except:
|
349
|
-
require:
|
350
|
-
config:
|
351
|
-
auto_gen_config:
|
352
|
-
|
353
|
-
no_offense_counts:
|
354
|
-
|
355
|
-
no_auto_gen_timestamp:
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
353
|
+
only: 'Run only the given cop(s).',
|
354
|
+
only_guide_cops: ['Run only cops for rules that link to a',
|
355
|
+
'style guide.'],
|
356
|
+
except: 'Disable the given cop(s).',
|
357
|
+
require: 'Require Ruby file.',
|
358
|
+
config: 'Specify configuration file.',
|
359
|
+
auto_gen_config: ['Generate a configuration file acting as a',
|
360
|
+
'TODO list.'],
|
361
|
+
no_offense_counts: ['Do not include offense counts in configuration',
|
362
|
+
'file generated by --auto-gen-config.'],
|
363
|
+
no_auto_gen_timestamp: ['Do not include the date and time when',
|
364
|
+
'the --auto-gen-config was run in the file it',
|
365
|
+
'generates.'],
|
366
|
+
auto_gen_only_exclude: ['Generate only Exclude parameters and not Max',
|
367
|
+
'when running --auto-gen-config, except if the',
|
368
|
+
'number of files with offenses is bigger than',
|
369
|
+
'exclude-limit.'],
|
370
|
+
exclude_limit: ['Used together with --auto-gen-config to',
|
371
|
+
'set the limit for how many Exclude',
|
372
|
+
"properties to generate. Default is #{MAX_EXCL}."],
|
373
|
+
force_exclusion: ['Force excluding files specified in the',
|
374
|
+
'configuration `Exclude` even if they are',
|
375
|
+
'explicitly passed as arguments.'],
|
376
|
+
ignore_parent_exclusion: ['Prevent from inheriting AllCops/Exclude from',
|
377
|
+
'parent folders.'],
|
368
378
|
force_default_config: ['Use default configuration even if configuration',
|
369
379
|
'files are present in the directory tree.'],
|
370
|
-
format:
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
out:
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
fail_level:
|
393
|
-
|
394
|
-
display_only_fail_level_offenses:
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
list_target_files:
|
414
|
-
auto_correct:
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
380
|
+
format: ['Choose an output formatter. This option',
|
381
|
+
'can be specified multiple times to enable',
|
382
|
+
'multiple formatters at the same time.',
|
383
|
+
' [p]rogress (default)',
|
384
|
+
' [s]imple',
|
385
|
+
' [c]lang',
|
386
|
+
' [d]isabled cops via inline comments',
|
387
|
+
' [fu]ubar',
|
388
|
+
' [e]macs',
|
389
|
+
' [j]son',
|
390
|
+
' [h]tml',
|
391
|
+
' [fi]les',
|
392
|
+
' [o]ffenses',
|
393
|
+
' [w]orst',
|
394
|
+
' [t]ap',
|
395
|
+
' [q]uiet',
|
396
|
+
' [a]utogenconf',
|
397
|
+
' custom formatter class name'],
|
398
|
+
out: ['Write output to a file instead of STDOUT.',
|
399
|
+
'This option applies to the previously',
|
400
|
+
'specified --format, or the default format',
|
401
|
+
'if no format is specified.'],
|
402
|
+
fail_level: ['Minimum severity (A/R/C/W/E/F) for exit',
|
403
|
+
'with error code.'],
|
404
|
+
display_only_fail_level_offenses: ['Only output offense messages at',
|
405
|
+
'the specified --fail-level or above'],
|
406
|
+
show_cops: ['Shows the given cops, or all cops by',
|
407
|
+
'default, and their configurations for the',
|
408
|
+
'current directory.'],
|
409
|
+
fail_fast: ['Inspect files in order of modification',
|
410
|
+
'time and stop after the first file',
|
411
|
+
'containing offenses.'],
|
412
|
+
cache: ["Use result caching (FLAG=true) or don't",
|
413
|
+
'(FLAG=false), default determined by',
|
414
|
+
'configuration parameter AllCops: UseCache.'],
|
415
|
+
debug: 'Display debug info.',
|
416
|
+
display_cop_names: ['Display cop names in offense messages.',
|
417
|
+
'Default is true.'],
|
418
|
+
display_style_guide: 'Display style guide URLs in offense messages.',
|
419
|
+
extra_details: 'Display extra details in offense messages.',
|
420
|
+
rails: 'Run extra Rails cops.',
|
421
|
+
lint: 'Run only lint cops.',
|
422
|
+
safe: 'Run only safe cops.',
|
423
|
+
list_target_files: 'List all files RuboCop will inspect.',
|
424
|
+
auto_correct: 'Auto-correct offenses.',
|
425
|
+
safe_auto_correct: 'Run auto-correct only when it\'s safe.',
|
426
|
+
fix_layout: 'Run only layout cops, with auto-correct on.',
|
427
|
+
color: 'Force color output on or off.',
|
428
|
+
version: 'Display version.',
|
429
|
+
verbose_version: 'Display verbose version.',
|
430
|
+
parallel: ['Use available CPUs to execute inspection in',
|
431
|
+
'parallel.'],
|
432
|
+
stdin: ['Pipe source from STDIN, using FILE in offense',
|
433
|
+
'reports. This is useful for editor integration.']
|
423
434
|
}.freeze
|
424
435
|
end
|
425
436
|
end
|
data/lib/rubocop/result_cache.rb
CHANGED
@@ -97,7 +97,15 @@ module RuboCop
|
|
97
97
|
|
98
98
|
def save(offenses)
|
99
99
|
dir = File.dirname(@path)
|
100
|
-
|
100
|
+
|
101
|
+
begin
|
102
|
+
FileUtils.mkdir_p(dir)
|
103
|
+
rescue Errno::EACCES => e
|
104
|
+
warn "Couldn't create cache directory. Continuing without cache."\
|
105
|
+
"\n #{e.message}"
|
106
|
+
return
|
107
|
+
end
|
108
|
+
|
101
109
|
preliminary_path = "#{@path}_#{rand(1_000_000_000)}"
|
102
110
|
# RuboCop must be in control of where its cached data is stored. A
|
103
111
|
# symbolic link anywhere in the cache directory tree can be an
|
@@ -5,7 +5,7 @@ module RuboCop
|
|
5
5
|
# Mixin for `expect_offense` and `expect_no_offenses`
|
6
6
|
#
|
7
7
|
# This mixin makes it easier to specify strict offense expectations
|
8
|
-
#
|
8
|
+
# in a declarative and visual fashion. Just type out the code that
|
9
9
|
# should generate a offense, annotate code by writing '^'s
|
10
10
|
# underneath each character that should be highlighted, and follow
|
11
11
|
# the carets with a string (separated by a space) that is the
|
@@ -65,7 +65,7 @@ module RuboCop
|
|
65
65
|
|
66
66
|
# Parsed representation of code annotated with the `^^^ Message` style
|
67
67
|
class AnnotatedSource
|
68
|
-
ANNOTATION_PATTERN = /\A\s*\^+
|
68
|
+
ANNOTATION_PATTERN = /\A\s*\^+ /.freeze
|
69
69
|
|
70
70
|
# @param annotated_source [String] string passed to the matchers
|
71
71
|
#
|
@@ -3,7 +3,7 @@
|
|
3
3
|
require 'tmpdir'
|
4
4
|
require 'fileutils'
|
5
5
|
|
6
|
-
shared_context 'isolated environment', :isolated_environment do
|
6
|
+
RSpec.shared_context 'isolated environment', :isolated_environment do
|
7
7
|
around do |example|
|
8
8
|
Dir.mktmpdir do |tmpdir|
|
9
9
|
original_home = ENV['HOME']
|
@@ -36,7 +36,7 @@ shared_context 'isolated environment', :isolated_environment do
|
|
36
36
|
end
|
37
37
|
|
38
38
|
# `cop_config` must be declared with #let.
|
39
|
-
shared_context 'config', :config do
|
39
|
+
RSpec.shared_context 'config', :config do
|
40
40
|
let(:config) do
|
41
41
|
# Module#<
|
42
42
|
unless described_class < RuboCop::Cop::Cop
|
@@ -59,38 +59,38 @@ shared_context 'config', :config do
|
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
62
|
-
shared_context 'ruby 2.2', :ruby22 do
|
62
|
+
RSpec.shared_context 'ruby 2.2', :ruby22 do
|
63
63
|
let(:ruby_version) { 2.2 }
|
64
64
|
end
|
65
65
|
|
66
|
-
shared_context 'ruby 2.3', :ruby23 do
|
66
|
+
RSpec.shared_context 'ruby 2.3', :ruby23 do
|
67
67
|
let(:ruby_version) { 2.3 }
|
68
68
|
end
|
69
69
|
|
70
|
-
shared_context 'ruby 2.4', :ruby24 do
|
70
|
+
RSpec.shared_context 'ruby 2.4', :ruby24 do
|
71
71
|
let(:ruby_version) { 2.4 }
|
72
72
|
end
|
73
73
|
|
74
|
-
shared_context 'ruby 2.5', :ruby25 do
|
74
|
+
RSpec.shared_context 'ruby 2.5', :ruby25 do
|
75
75
|
let(:ruby_version) { 2.5 }
|
76
76
|
end
|
77
77
|
|
78
|
-
shared_context 'ruby 2.6', :ruby26 do
|
78
|
+
RSpec.shared_context 'ruby 2.6', :ruby26 do
|
79
79
|
let(:ruby_version) { 2.6 }
|
80
80
|
end
|
81
81
|
|
82
|
-
shared_context 'with Rails', :enabled_rails do
|
82
|
+
RSpec.shared_context 'with Rails', :enabled_rails do
|
83
83
|
let(:enabled_rails) { true }
|
84
84
|
end
|
85
85
|
|
86
|
-
shared_context 'with Rails 3', :rails3 do
|
86
|
+
RSpec.shared_context 'with Rails 3', :rails3 do
|
87
87
|
let(:rails_version) { 3.0 }
|
88
88
|
end
|
89
89
|
|
90
|
-
shared_context 'with Rails 4', :rails4 do
|
90
|
+
RSpec.shared_context 'with Rails 4', :rails4 do
|
91
91
|
let(:rails_version) { 4.0 }
|
92
92
|
end
|
93
93
|
|
94
|
-
shared_context 'with Rails 5', :rails5 do
|
94
|
+
RSpec.shared_context 'with Rails 5', :rails5 do
|
95
95
|
let(:rails_version) { 5.0 }
|
96
96
|
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# `cop` and `source` must be declared with #let.
|
4
4
|
|
5
|
-
shared_examples_for 'misaligned' do |annotated_source, used_style|
|
5
|
+
RSpec.shared_examples_for 'misaligned' do |annotated_source, used_style|
|
6
6
|
config_to_allow_offenses = if used_style
|
7
7
|
{ 'EnforcedStyleAlignWith' => used_style.to_s }
|
8
8
|
else
|
@@ -31,7 +31,7 @@ shared_examples_for 'misaligned' do |annotated_source, used_style|
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
-
shared_examples_for 'aligned' do |alignment_base, arg, end_kw, name|
|
34
|
+
RSpec.shared_examples_for 'aligned' do |alignment_base, arg, end_kw, name|
|
35
35
|
name ||= alignment_base
|
36
36
|
name = name.gsub(/\n/, ' <newline>')
|
37
37
|
it "accepts matching #{name} ... end" do
|
@@ -40,7 +40,7 @@ shared_examples_for 'aligned' do |alignment_base, arg, end_kw, name|
|
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
43
|
-
shared_examples_for 'debugger' do |name, src|
|
43
|
+
RSpec.shared_examples_for 'debugger' do |name, src|
|
44
44
|
it "reports an offense for a #{name} call" do
|
45
45
|
inspect_source(src)
|
46
46
|
src = [src] if src.is_a? String
|
@@ -51,7 +51,7 @@ shared_examples_for 'debugger' do |name, src|
|
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
54
|
-
shared_examples_for 'non-debugger' do |name, src|
|
54
|
+
RSpec.shared_examples_for 'non-debugger' do |name, src|
|
55
55
|
it "does not report an offense for #{name}" do
|
56
56
|
inspect_source(src)
|
57
57
|
expect(cop.offenses).to be_empty
|
data/lib/rubocop/version.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
module RuboCop
|
4
4
|
# This module holds the RuboCop version information.
|
5
5
|
module Version
|
6
|
-
STRING = '0.
|
6
|
+
STRING = '0.60.0'.freeze
|
7
7
|
|
8
8
|
MSG = '%<version>s (using Parser %<parser_version>s, running on ' \
|
9
9
|
'%<ruby_engine>s %<ruby_version>s %<ruby_platform>s)'.freeze
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubocop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.60.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bozhidar Batsov
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date: 2018-
|
13
|
+
date: 2018-10-26 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: jaro_winkler
|
@@ -114,20 +114,14 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
118
|
-
- - ">="
|
119
|
-
- !ruby/object:Gem::Version
|
120
|
-
version: 1.0.1
|
117
|
+
version: 1.4.0
|
121
118
|
type: :runtime
|
122
119
|
prerelease: false
|
123
120
|
version_requirements: !ruby/object:Gem::Requirement
|
124
121
|
requirements:
|
125
122
|
- - "~>"
|
126
123
|
- !ruby/object:Gem::Version
|
127
|
-
version:
|
128
|
-
- - ">="
|
129
|
-
- !ruby/object:Gem::Version
|
130
|
-
version: 1.0.1
|
124
|
+
version: 1.4.0
|
131
125
|
- !ruby/object:Gem::Dependency
|
132
126
|
name: bundler
|
133
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -174,8 +168,6 @@ files:
|
|
174
168
|
- bin/console
|
175
169
|
- bin/setup
|
176
170
|
- config/default.yml
|
177
|
-
- config/disabled.yml
|
178
|
-
- config/enabled.yml
|
179
171
|
- exe/rubocop
|
180
172
|
- lib/rubocop.rb
|
181
173
|
- lib/rubocop/ast/builder.rb
|
@@ -425,6 +417,7 @@ files:
|
|
425
417
|
- lib/rubocop/cop/metrics/module_length.rb
|
426
418
|
- lib/rubocop/cop/metrics/parameter_lists.rb
|
427
419
|
- lib/rubocop/cop/metrics/perceived_complexity.rb
|
420
|
+
- lib/rubocop/cop/metrics/utils/abc_size_calculator.rb
|
428
421
|
- lib/rubocop/cop/mixin/alignment.rb
|
429
422
|
- lib/rubocop/cop/mixin/annotation_comment.rb
|
430
423
|
- lib/rubocop/cop/mixin/array_hash_indentation.rb
|
@@ -822,7 +815,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
822
815
|
version: '0'
|
823
816
|
requirements: []
|
824
817
|
rubyforge_project:
|
825
|
-
rubygems_version: 2.6
|
818
|
+
rubygems_version: 2.7.6
|
826
819
|
signing_key:
|
827
820
|
specification_version: 4
|
828
821
|
summary: Automatic Ruby code style checking tool.
|