rubocop 0.52.1 → 0.53.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/LICENSE.txt +1 -1
- data/README.md +2 -2
- data/config/default.yml +118 -46
- data/config/disabled.yml +8 -8
- data/config/enabled.yml +84 -28
- data/lib/rubocop.rb +28 -8
- data/lib/rubocop/ast/builder.rb +35 -37
- data/lib/rubocop/ast/node.rb +16 -1
- data/lib/rubocop/ast/node/and_node.rb +0 -8
- data/lib/rubocop/ast/node/block_node.rb +1 -9
- data/lib/rubocop/ast/node/case_node.rb +0 -8
- data/lib/rubocop/ast/node/ensure_node.rb +0 -8
- data/lib/rubocop/ast/node/for_node.rb +0 -8
- data/lib/rubocop/ast/node/or_node.rb +0 -8
- data/lib/rubocop/ast/node/pair_node.rb +0 -8
- data/lib/rubocop/ast/node/resbody_node.rb +0 -8
- data/lib/rubocop/ast/node/send_node.rb +0 -8
- data/lib/rubocop/ast/node/symbol_node.rb +0 -8
- data/lib/rubocop/ast/node/until_node.rb +0 -8
- data/lib/rubocop/ast/node/when_node.rb +0 -8
- data/lib/rubocop/ast/node/while_node.rb +0 -8
- data/lib/rubocop/cli.rb +17 -7
- data/lib/rubocop/comment_config.rb +24 -3
- data/lib/rubocop/config.rb +75 -6
- data/lib/rubocop/config_loader.rb +18 -28
- data/lib/rubocop/config_loader_resolver.rb +61 -9
- data/lib/rubocop/cop/bundler/duplicated_gem.rb +3 -1
- data/lib/rubocop/cop/bundler/insecure_protocol_source.rb +4 -2
- data/lib/rubocop/cop/bundler/ordered_gems.rb +1 -1
- data/lib/rubocop/cop/commissioner.rb +2 -2
- data/lib/rubocop/cop/cop.rb +4 -0
- data/lib/rubocop/cop/corrector.rb +11 -1
- data/lib/rubocop/cop/correctors/alignment_corrector.rb +3 -6
- data/lib/rubocop/cop/correctors/line_break_corrector.rb +59 -0
- data/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +1 -1
- data/lib/rubocop/cop/correctors/space_corrector.rb +13 -0
- data/lib/rubocop/cop/correctors/unused_arg_corrector.rb +1 -1
- data/lib/rubocop/cop/gemspec/duplicated_assignment.rb +3 -1
- data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +1 -1
- data/lib/rubocop/cop/gemspec/required_ruby_version.rb +3 -5
- data/lib/rubocop/cop/generator.rb +29 -8
- data/lib/rubocop/cop/internal_affairs/redundant_location_argument.rb +2 -0
- data/lib/rubocop/cop/internal_affairs/redundant_message_argument.rb +2 -0
- data/lib/rubocop/cop/layout/align_hash.rb +106 -37
- data/lib/rubocop/cop/{lint → layout}/block_alignment.rb +8 -5
- data/lib/rubocop/cop/layout/block_end_newline.rb +7 -17
- data/lib/rubocop/cop/layout/case_indentation.rb +1 -0
- data/lib/rubocop/cop/layout/class_structure.rb +6 -7
- data/lib/rubocop/cop/layout/comment_indentation.rb +1 -1
- data/lib/rubocop/cop/{lint → layout}/condition_position.rb +3 -3
- data/lib/rubocop/cop/{lint → layout}/def_end_alignment.rb +2 -1
- data/lib/rubocop/cop/layout/else_alignment.rb +1 -1
- data/lib/rubocop/cop/layout/empty_comment.rb +140 -0
- data/lib/rubocop/cop/layout/empty_line_after_magic_comment.rb +2 -0
- data/lib/rubocop/cop/layout/empty_line_between_defs.rb +2 -0
- data/lib/rubocop/cop/layout/empty_lines.rb +3 -1
- data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +7 -5
- data/lib/rubocop/cop/layout/empty_lines_around_arguments.rb +20 -10
- data/lib/rubocop/cop/layout/empty_lines_around_class_body.rb +20 -0
- data/lib/rubocop/cop/{lint → layout}/end_alignment.rb +37 -6
- data/lib/rubocop/cop/layout/end_of_line.rb +1 -0
- data/lib/rubocop/cop/layout/extra_spacing.rb +30 -37
- data/lib/rubocop/cop/layout/first_parameter_indentation.rb +1 -0
- data/lib/rubocop/cop/layout/indent_heredoc.rb +38 -2
- data/lib/rubocop/cop/layout/indentation_consistency.rb +105 -1
- data/lib/rubocop/cop/layout/indentation_width.rb +4 -3
- data/lib/rubocop/cop/layout/initial_indentation.rb +15 -1
- data/lib/rubocop/cop/layout/leading_comment_space.rb +4 -2
- data/lib/rubocop/cop/layout/multiline_assignment_layout.rb +1 -0
- data/lib/rubocop/cop/layout/multiline_block_layout.rb +2 -0
- data/lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb +62 -29
- data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb +74 -33
- data/lib/rubocop/cop/layout/multiline_operation_indentation.rb +16 -2
- data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +3 -1
- data/lib/rubocop/cop/layout/space_after_method_name.rb +2 -0
- data/lib/rubocop/cop/layout/space_after_not.rb +2 -0
- data/lib/rubocop/cop/layout/space_around_block_parameters.rb +1 -0
- data/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb +15 -2
- data/lib/rubocop/cop/layout/space_around_operators.rb +15 -13
- data/lib/rubocop/cop/layout/space_before_block_braces.rb +13 -1
- data/lib/rubocop/cop/layout/space_before_comment.rb +6 -4
- data/lib/rubocop/cop/layout/space_before_first_arg.rb +1 -0
- data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +1 -0
- data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +30 -45
- data/lib/rubocop/cop/layout/space_inside_block_braces.rb +3 -2
- data/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +48 -18
- data/lib/rubocop/cop/layout/space_inside_parens.rb +8 -7
- data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +57 -11
- data/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +1 -0
- data/lib/rubocop/cop/layout/tab.rb +42 -16
- data/lib/rubocop/cop/layout/trailing_blank_lines.rb +46 -13
- data/lib/rubocop/cop/layout/trailing_whitespace.rb +12 -0
- data/lib/rubocop/cop/lint/ambiguous_block_association.rb +5 -3
- data/lib/rubocop/cop/lint/big_decimal_new.rb +44 -0
- data/lib/rubocop/cop/lint/boolean_symbol.rb +2 -2
- data/lib/rubocop/cop/lint/circular_argument_reference.rb +2 -2
- data/lib/rubocop/cop/lint/debugger.rb +2 -2
- data/lib/rubocop/cop/lint/deprecated_class_methods.rb +5 -4
- data/lib/rubocop/cop/lint/duplicate_methods.rb +20 -9
- data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +4 -3
- data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +16 -10
- data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +5 -4
- data/lib/rubocop/cop/lint/inherit_exception.rb +2 -2
- data/lib/rubocop/cop/lint/interpolation_check.rb +4 -3
- data/lib/rubocop/cop/lint/literal_as_condition.rb +2 -2
- data/lib/rubocop/cop/lint/literal_in_interpolation.rb +2 -0
- data/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +7 -5
- data/lib/rubocop/cop/lint/nested_percent_literal.rb +1 -1
- data/lib/rubocop/cop/lint/number_conversion.rb +59 -0
- data/lib/rubocop/cop/lint/ordered_magic_comments.rb +86 -0
- data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +2 -0
- data/lib/rubocop/cop/lint/percent_string_array.rb +0 -2
- data/lib/rubocop/cop/lint/rand_one.rb +2 -2
- data/lib/rubocop/cop/lint/redundant_with_index.rb +2 -0
- data/lib/rubocop/cop/lint/redundant_with_object.rb +2 -0
- data/lib/rubocop/cop/lint/require_parentheses.rb +2 -0
- data/lib/rubocop/cop/lint/rescue_type.rb +6 -3
- data/lib/rubocop/cop/lint/return_in_void_context.rb +2 -2
- data/lib/rubocop/cop/lint/safe_navigation_chain.rb +17 -21
- data/lib/rubocop/cop/lint/script_permission.rb +30 -10
- data/lib/rubocop/cop/lint/shadowed_argument.rb +3 -3
- data/lib/rubocop/cop/lint/shadowed_exception.rb +1 -0
- data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +2 -2
- data/lib/rubocop/cop/lint/unified_integer.rb +2 -2
- data/lib/rubocop/cop/lint/{unneeded_disable.rb → unneeded_cop_disable_directive.rb} +13 -7
- data/lib/rubocop/cop/lint/unneeded_cop_enable_directive.rb +97 -0
- data/lib/rubocop/cop/lint/unneeded_require_statement.rb +1 -0
- data/lib/rubocop/cop/lint/unreachable_code.rb +3 -3
- data/lib/rubocop/cop/lint/uri_escape_unescape.rb +11 -10
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +7 -5
- data/lib/rubocop/cop/lint/useless_assignment.rb +2 -2
- data/lib/rubocop/cop/lint/useless_setter_call.rb +2 -2
- data/lib/rubocop/cop/lint/void.rb +49 -10
- data/lib/rubocop/cop/metrics/block_nesting.rb +1 -1
- data/lib/rubocop/cop/metrics/line_length.rb +5 -2
- data/lib/rubocop/cop/mixin/alignment.rb +4 -0
- data/lib/rubocop/cop/mixin/configurable_enforced_style.rb +1 -1
- data/lib/rubocop/cop/mixin/def_node.rb +4 -0
- data/lib/rubocop/cop/mixin/documentation_comment.rb +11 -3
- data/lib/rubocop/cop/mixin/empty_lines_around_body.rb +12 -2
- data/lib/rubocop/cop/mixin/end_keyword_alignment.rb +20 -1
- data/lib/rubocop/cop/mixin/frozen_string_literal.rb +4 -0
- data/lib/rubocop/cop/mixin/hash_alignment.rb +2 -2
- data/lib/rubocop/cop/mixin/match_range.rb +2 -0
- data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +6 -0
- data/lib/rubocop/cop/mixin/nil_methods.rb +19 -0
- data/lib/rubocop/cop/mixin/percent_literal.rb +57 -9
- data/lib/rubocop/cop/mixin/preceding_following_alignment.rb +6 -5
- data/lib/rubocop/cop/mixin/range_help.rb +102 -0
- data/lib/rubocop/cop/mixin/rescue_node.rb +1 -1
- data/lib/rubocop/cop/mixin/space_after_punctuation.rb +8 -7
- data/lib/rubocop/cop/mixin/space_before_punctuation.rb +11 -9
- data/lib/rubocop/cop/mixin/statement_modifier.rb +3 -10
- data/lib/rubocop/cop/mixin/surrounding_space.rb +38 -8
- data/lib/rubocop/cop/mixin/trailing_body.rb +26 -0
- data/lib/rubocop/cop/mixin/trailing_comma.rb +15 -3
- data/lib/rubocop/cop/mixin/uncommunicative_name.rb +104 -0
- data/lib/rubocop/cop/naming/ascii_identifiers.rb +3 -1
- data/lib/rubocop/cop/naming/file_name.rb +5 -10
- data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +76 -0
- data/lib/rubocop/cop/naming/uncommunicative_block_param_name.rb +48 -0
- data/lib/rubocop/cop/naming/uncommunicative_method_param_name.rb +57 -0
- data/lib/rubocop/cop/offense.rb +3 -2
- data/lib/rubocop/cop/performance/case_when_splat.rb +1 -0
- data/lib/rubocop/cop/performance/casecmp.rb +17 -8
- data/lib/rubocop/cop/performance/compare_with_block.rb +2 -0
- data/lib/rubocop/cop/performance/count.rb +1 -0
- data/lib/rubocop/cop/performance/fixed_size.rb +41 -0
- data/lib/rubocop/cop/performance/flat_map.rb +2 -0
- data/lib/rubocop/cop/performance/lstrip_rstrip.rb +2 -0
- data/lib/rubocop/cop/performance/redundant_merge.rb +1 -1
- data/lib/rubocop/cop/performance/redundant_sort_by.rb +2 -0
- data/lib/rubocop/cop/performance/regexp_match.rb +4 -0
- data/lib/rubocop/cop/performance/reverse_each.rb +2 -0
- data/lib/rubocop/cop/performance/string_replacement.rb +2 -0
- data/lib/rubocop/cop/rails/active_record_aliases.rb +46 -0
- data/lib/rubocop/cop/rails/blank.rb +3 -3
- data/lib/rubocop/cop/rails/create_table_with_timestamps.rb +6 -0
- data/lib/rubocop/cop/rails/delegate.rb +6 -6
- data/lib/rubocop/cop/rails/file_path.rb +7 -1
- data/lib/rubocop/cop/rails/find_by.rb +2 -0
- data/lib/rubocop/cop/rails/http_positional_arguments.rb +17 -5
- data/lib/rubocop/cop/rails/inverse_of.rb +21 -2
- data/lib/rubocop/cop/rails/lexically_scoped_action_filter.rb +45 -9
- data/lib/rubocop/cop/rails/presence.rb +8 -2
- data/lib/rubocop/cop/rails/present.rb +5 -5
- data/lib/rubocop/cop/rails/read_write_attribute.rb +4 -3
- data/lib/rubocop/cop/rails/redundant_receiver_in_with_options.rb +1 -0
- data/lib/rubocop/cop/rails/relative_date_constant.rb +4 -3
- data/lib/rubocop/cop/rails/request_referer.rb +3 -2
- data/lib/rubocop/cop/rails/reversible_migration.rb +9 -8
- data/lib/rubocop/cop/rails/safe_navigation.rb +3 -2
- data/lib/rubocop/cop/rails/save_bang.rb +11 -12
- data/lib/rubocop/cop/rails/skips_model_validations.rb +2 -2
- data/lib/rubocop/cop/rails/time_zone.rb +38 -16
- data/lib/rubocop/cop/rails/uniq_before_pluck.rb +26 -16
- data/lib/rubocop/cop/rails/validation.rb +30 -2
- data/lib/rubocop/cop/security/open.rb +48 -0
- data/lib/rubocop/cop/style/and_or.rb +1 -0
- data/lib/rubocop/cop/style/ascii_comments.rb +3 -1
- data/lib/rubocop/cop/style/attr.rb +2 -0
- data/lib/rubocop/cop/style/block_comments.rb +3 -1
- data/lib/rubocop/cop/style/braces_around_hash_parameters.rb +2 -5
- data/lib/rubocop/cop/style/class_and_module_children.rb +1 -0
- data/lib/rubocop/cop/style/class_vars.rb +23 -0
- data/lib/rubocop/cop/style/colon_method_call.rb +1 -2
- data/lib/rubocop/cop/style/comment_annotation.rb +6 -4
- data/lib/rubocop/cop/style/commented_keyword.rb +3 -1
- data/lib/rubocop/cop/style/conditional_assignment.rb +1 -1
- data/lib/rubocop/cop/style/copyright.rb +3 -1
- data/lib/rubocop/cop/style/each_with_object.rb +15 -1
- data/lib/rubocop/cop/style/empty_block_parameter.rb +1 -0
- data/lib/rubocop/cop/style/empty_case_condition.rb +2 -0
- data/lib/rubocop/cop/style/empty_else.rb +9 -5
- data/lib/rubocop/cop/style/empty_lambda_parameter.rb +1 -0
- data/lib/rubocop/cop/style/empty_line_after_guard_clause.rb +80 -0
- data/lib/rubocop/cop/style/empty_literal.rb +1 -0
- data/lib/rubocop/cop/style/encoding.rb +2 -0
- data/lib/rubocop/cop/style/expand_path_arguments.rb +194 -0
- data/lib/rubocop/cop/style/for.rb +33 -0
- data/lib/rubocop/cop/style/format_string.rb +1 -1
- data/lib/rubocop/cop/style/format_string_token.rb +4 -5
- data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +2 -1
- data/lib/rubocop/cop/style/hash_syntax.rb +1 -0
- data/lib/rubocop/cop/style/if_unless_modifier.rb +1 -1
- data/lib/rubocop/cop/style/inline_comment.rb +1 -1
- data/lib/rubocop/cop/style/lambda.rb +1 -1
- data/lib/rubocop/cop/style/line_end_concatenation.rb +2 -0
- data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +2 -0
- data/lib/rubocop/cop/style/method_def_parentheses.rb +1 -0
- data/lib/rubocop/cop/style/missing_else.rb +72 -7
- data/lib/rubocop/cop/style/mixin_usage.rb +3 -5
- data/lib/rubocop/cop/style/module_function.rb +10 -0
- data/lib/rubocop/cop/style/multiline_block_chain.rb +2 -0
- data/lib/rubocop/cop/style/multiline_if_then.rb +1 -0
- data/lib/rubocop/cop/style/nested_modifier.rb +2 -0
- data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +2 -0
- data/lib/rubocop/cop/style/next.rb +1 -0
- data/lib/rubocop/cop/style/not.rb +2 -0
- data/lib/rubocop/cop/style/numeric_literals.rb +1 -1
- data/lib/rubocop/cop/style/one_line_conditional.rb +2 -2
- data/lib/rubocop/cop/style/redundant_exception.rb +8 -3
- data/lib/rubocop/cop/style/redundant_return.rb +37 -3
- data/lib/rubocop/cop/style/redundant_self.rb +1 -1
- data/lib/rubocop/cop/style/rescue_standard_error.rb +1 -0
- data/lib/rubocop/cop/style/safe_navigation.rb +74 -32
- data/lib/rubocop/cop/style/semicolon.rb +3 -1
- data/lib/rubocop/cop/style/single_line_methods.rb +14 -23
- data/lib/rubocop/cop/style/stderr_puts.rb +2 -0
- data/lib/rubocop/cop/style/string_hash_keys.rb +12 -0
- data/lib/rubocop/cop/style/string_literals.rb +1 -1
- data/lib/rubocop/cop/style/string_literals_in_interpolation.rb +1 -1
- data/lib/rubocop/cop/style/symbol_array.rb +29 -0
- data/lib/rubocop/cop/style/symbol_proc.rb +2 -0
- data/lib/rubocop/cop/style/trailing_body_on_class.rb +43 -0
- data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +7 -54
- data/lib/rubocop/cop/style/trailing_body_on_module.rb +43 -0
- data/lib/rubocop/cop/style/{trailing_comma_in_literal.rb → trailing_comma_in_array_literal.rb} +2 -20
- data/lib/rubocop/cop/style/trailing_comma_in_hash_literal.rb +56 -0
- data/lib/rubocop/cop/style/trailing_method_end_statement.rb +17 -20
- data/lib/rubocop/cop/style/trailing_underscore_variable.rb +1 -0
- data/lib/rubocop/cop/style/unless_else.rb +2 -0
- data/lib/rubocop/cop/style/word_array.rb +0 -1
- data/lib/rubocop/cop/style/yoda_condition.rb +1 -0
- data/lib/rubocop/cop/team.rb +5 -5
- data/lib/rubocop/cop/util.rb +23 -188
- data/lib/rubocop/cop/variable_force.rb +1 -1
- data/lib/rubocop/file_finder.rb +45 -0
- data/lib/rubocop/formatter/disabled_config_formatter.rb +23 -14
- data/lib/rubocop/formatter/fuubar_style_formatter.rb +1 -1
- data/lib/rubocop/formatter/html_formatter.rb +12 -5
- data/lib/rubocop/formatter/json_formatter.rb +1 -1
- data/lib/rubocop/node_pattern.rb +8 -5
- data/lib/rubocop/options.rb +40 -33
- data/lib/rubocop/path_util.rb +5 -8
- data/lib/rubocop/processed_source.rb +53 -0
- data/lib/rubocop/remote_config.rb +1 -1
- data/lib/rubocop/result_cache.rb +1 -1
- data/lib/rubocop/rspec/cop_helper.rb +0 -4
- data/lib/rubocop/rspec/host_environment_simulation_helper.rb +0 -4
- data/lib/rubocop/rspec/shared_contexts.rb +3 -1
- data/lib/rubocop/rspec/shared_examples.rb +23 -25
- data/lib/rubocop/rspec/support.rb +5 -0
- data/lib/rubocop/runner.rb +3 -2
- data/lib/rubocop/string_util.rb +10 -9
- data/lib/rubocop/target_finder.rb +4 -1
- data/lib/rubocop/token.rb +26 -16
- data/lib/rubocop/version.rb +6 -4
- metadata +31 -17
- data/lib/rubocop/cop/performance/hash_each_methods.rb +0 -129
@@ -42,11 +42,12 @@ module RuboCop
|
|
42
42
|
# end
|
43
43
|
# end
|
44
44
|
# end
|
45
|
-
class IndentationWidth < Cop
|
45
|
+
class IndentationWidth < Cop # rubocop:disable Metrics/ClassLength
|
46
46
|
include EndKeywordAlignment
|
47
47
|
include Alignment
|
48
48
|
include CheckAssignment
|
49
49
|
include IgnoredPattern
|
50
|
+
include RangeHelp
|
50
51
|
|
51
52
|
MSG = 'Use %<configured_indentation_width>d (not %<indentation>d) ' \
|
52
53
|
'spaces for%<name>s indentation.'.freeze
|
@@ -100,7 +101,7 @@ module RuboCop
|
|
100
101
|
|
101
102
|
*_, body = *node.first_argument
|
102
103
|
|
103
|
-
def_end_config = config.for_cop('
|
104
|
+
def_end_config = config.for_cop('Layout/DefEndAlignment')
|
104
105
|
style = def_end_config['EnforcedStyleAlignWith'] || 'start_of_line'
|
105
106
|
base = style == 'def' ? node.first_argument : node
|
106
107
|
|
@@ -186,7 +187,7 @@ module RuboCop
|
|
186
187
|
rhs = first_part_of_call_chain(rhs)
|
187
188
|
return unless rhs
|
188
189
|
|
189
|
-
end_config = config.for_cop('
|
190
|
+
end_config = config.for_cop('Layout/EndAlignment')
|
190
191
|
style = end_config['EnforcedStyleAlignWith'] || 'keyword'
|
191
192
|
base = variable_alignment?(node.loc, rhs, style.to_sym) ? node : rhs
|
192
193
|
|
@@ -5,7 +5,21 @@ module RuboCop
|
|
5
5
|
module Layout
|
6
6
|
# This cops checks for indentation of the first non-blank non-comment
|
7
7
|
# line in a file.
|
8
|
+
#
|
9
|
+
# @example
|
10
|
+
# # bad
|
11
|
+
# class A
|
12
|
+
# def foo; end
|
13
|
+
# end
|
14
|
+
#
|
15
|
+
# # good
|
16
|
+
# class A
|
17
|
+
# def foo; end
|
18
|
+
# end
|
19
|
+
#
|
8
20
|
class InitialIndentation < Cop
|
21
|
+
include RangeHelp
|
22
|
+
|
9
23
|
MSG = 'Indentation of first line in file detected.'.freeze
|
10
24
|
|
11
25
|
def investigate(_processed_source)
|
@@ -21,7 +35,7 @@ module RuboCop
|
|
21
35
|
private
|
22
36
|
|
23
37
|
def first_token
|
24
|
-
processed_source.
|
38
|
+
processed_source.find_token { |t| !t.text.start_with?('#') }
|
25
39
|
end
|
26
40
|
|
27
41
|
def space_before(token)
|
@@ -17,10 +17,12 @@ module RuboCop
|
|
17
17
|
# # good
|
18
18
|
# # Some comment
|
19
19
|
class LeadingCommentSpace < Cop
|
20
|
+
include RangeHelp
|
21
|
+
|
20
22
|
MSG = 'Missing space after `#`.'.freeze
|
21
23
|
|
22
24
|
def investigate(processed_source)
|
23
|
-
processed_source.
|
25
|
+
processed_source.each_comment do |comment|
|
24
26
|
next unless comment.text =~ /\A#+[^#\s=:+-]/
|
25
27
|
next if comment.loc.line == 1 && allowed_on_first_line?(comment)
|
26
28
|
|
@@ -50,7 +52,7 @@ module RuboCop
|
|
50
52
|
end
|
51
53
|
|
52
54
|
def rackup_config_file?
|
53
|
-
File.basename(processed_source.
|
55
|
+
File.basename(processed_source.file_path).eql?('config.ru')
|
54
56
|
end
|
55
57
|
end
|
56
58
|
end
|
@@ -34,6 +34,7 @@ module RuboCop
|
|
34
34
|
class MultilineAssignmentLayout < Cop
|
35
35
|
include CheckAssignment
|
36
36
|
include ConfigurableEnforcedStyle
|
37
|
+
include RangeHelp
|
37
38
|
|
38
39
|
NEW_LINE_OFFENSE = 'Right hand side of multi-line assignment is on ' \
|
39
40
|
'the same line as the assignment operator `=`.'.freeze
|
@@ -26,35 +26,68 @@ module RuboCop
|
|
26
26
|
# The closing brace of a multi-line method call must be on the same
|
27
27
|
# line as the last argument of the call.
|
28
28
|
#
|
29
|
-
# @example
|
30
|
-
#
|
31
|
-
#
|
32
|
-
#
|
33
|
-
#
|
34
|
-
#
|
35
|
-
#
|
36
|
-
#
|
37
|
-
#
|
38
|
-
#
|
39
|
-
#
|
40
|
-
#
|
41
|
-
#
|
42
|
-
#
|
43
|
-
#
|
44
|
-
#
|
45
|
-
#
|
46
|
-
#
|
47
|
-
#
|
48
|
-
#
|
49
|
-
#
|
50
|
-
#
|
51
|
-
#
|
52
|
-
#
|
53
|
-
#
|
54
|
-
#
|
55
|
-
#
|
56
|
-
#
|
57
|
-
#
|
29
|
+
# @example EnforcedStyle: symmetrical (default)
|
30
|
+
# # bad
|
31
|
+
# foo(a,
|
32
|
+
# b
|
33
|
+
# )
|
34
|
+
#
|
35
|
+
# # bad
|
36
|
+
# foo(
|
37
|
+
# a,
|
38
|
+
# b)
|
39
|
+
#
|
40
|
+
# # good
|
41
|
+
# foo(a,
|
42
|
+
# b)
|
43
|
+
#
|
44
|
+
# # good
|
45
|
+
# foo(
|
46
|
+
# a,
|
47
|
+
# b
|
48
|
+
# )
|
49
|
+
#
|
50
|
+
# @example EnforcedStyle: new_line
|
51
|
+
# # bad
|
52
|
+
# foo(
|
53
|
+
# a,
|
54
|
+
# b)
|
55
|
+
#
|
56
|
+
# # bad
|
57
|
+
# foo(a,
|
58
|
+
# b)
|
59
|
+
#
|
60
|
+
# # good
|
61
|
+
# foo(a,
|
62
|
+
# b
|
63
|
+
# )
|
64
|
+
#
|
65
|
+
# # good
|
66
|
+
# foo(
|
67
|
+
# a,
|
68
|
+
# b
|
69
|
+
# )
|
70
|
+
#
|
71
|
+
# @example EnforcedStyle: same_line
|
72
|
+
# # bad
|
73
|
+
# foo(a,
|
74
|
+
# b
|
75
|
+
# )
|
76
|
+
#
|
77
|
+
# # bad
|
78
|
+
# foo(
|
79
|
+
# a,
|
80
|
+
# b
|
81
|
+
# )
|
82
|
+
#
|
83
|
+
# # good
|
84
|
+
# foo(
|
85
|
+
# a,
|
86
|
+
# b)
|
87
|
+
#
|
88
|
+
# # good
|
89
|
+
# foo(a,
|
90
|
+
# b)
|
58
91
|
class MultilineMethodCallBraceLayout < Cop
|
59
92
|
include MultilineLiteralBraceLayout
|
60
93
|
|
@@ -26,39 +26,80 @@ module RuboCop
|
|
26
26
|
# The closing brace of a multi-line method definition must be on the same
|
27
27
|
# line as the last parameter of the definition.
|
28
28
|
#
|
29
|
-
# @example
|
30
|
-
#
|
31
|
-
#
|
32
|
-
#
|
33
|
-
#
|
34
|
-
#
|
35
|
-
#
|
36
|
-
#
|
37
|
-
#
|
38
|
-
#
|
39
|
-
#
|
40
|
-
#
|
41
|
-
#
|
42
|
-
#
|
43
|
-
#
|
44
|
-
#
|
45
|
-
#
|
46
|
-
#
|
47
|
-
#
|
48
|
-
#
|
49
|
-
#
|
50
|
-
#
|
51
|
-
#
|
52
|
-
#
|
53
|
-
#
|
54
|
-
#
|
55
|
-
#
|
56
|
-
#
|
57
|
-
#
|
58
|
-
#
|
59
|
-
#
|
60
|
-
#
|
61
|
-
#
|
29
|
+
# @example EnforcedStyle: symmetrical (default)
|
30
|
+
# # bad
|
31
|
+
# def foo(a,
|
32
|
+
# b
|
33
|
+
# )
|
34
|
+
# end
|
35
|
+
#
|
36
|
+
# # bad
|
37
|
+
# def foo(
|
38
|
+
# a,
|
39
|
+
# b)
|
40
|
+
# end
|
41
|
+
#
|
42
|
+
# # good
|
43
|
+
# def foo(a,
|
44
|
+
# b)
|
45
|
+
# end
|
46
|
+
#
|
47
|
+
# # good
|
48
|
+
# def foo(
|
49
|
+
# a,
|
50
|
+
# b
|
51
|
+
# )
|
52
|
+
# end
|
53
|
+
#
|
54
|
+
# @example EnforcedStyle: new_line
|
55
|
+
# # bad
|
56
|
+
# def foo(
|
57
|
+
# a,
|
58
|
+
# b)
|
59
|
+
# end
|
60
|
+
#
|
61
|
+
# # bad
|
62
|
+
# def foo(a,
|
63
|
+
# b)
|
64
|
+
# end
|
65
|
+
#
|
66
|
+
# # good
|
67
|
+
# def foo(a,
|
68
|
+
# b
|
69
|
+
# )
|
70
|
+
# end
|
71
|
+
#
|
72
|
+
# # good
|
73
|
+
# def foo(
|
74
|
+
# a,
|
75
|
+
# b
|
76
|
+
# )
|
77
|
+
# end
|
78
|
+
#
|
79
|
+
# @example EnforcedStyle: same_line
|
80
|
+
# # bad
|
81
|
+
# def foo(a,
|
82
|
+
# b
|
83
|
+
# )
|
84
|
+
# end
|
85
|
+
#
|
86
|
+
# # bad
|
87
|
+
# def foo(
|
88
|
+
# a,
|
89
|
+
# b
|
90
|
+
# )
|
91
|
+
# end
|
92
|
+
#
|
93
|
+
# # good
|
94
|
+
# def foo(
|
95
|
+
# a,
|
96
|
+
# b)
|
97
|
+
# end
|
98
|
+
#
|
99
|
+
# # good
|
100
|
+
# def foo(a,
|
101
|
+
# b)
|
102
|
+
# end
|
62
103
|
class MultilineMethodDefinitionBraceLayout < Cop
|
63
104
|
include MultilineLiteralBraceLayout
|
64
105
|
|
@@ -6,10 +6,10 @@ module RuboCop
|
|
6
6
|
# This cop checks the indentation of the right hand side operand in
|
7
7
|
# binary operations that span more than one line.
|
8
8
|
#
|
9
|
-
# @example
|
9
|
+
# @example EnforcedStyle: aligned (default)
|
10
10
|
# # bad
|
11
11
|
# if a +
|
12
|
-
#
|
12
|
+
# b
|
13
13
|
# something
|
14
14
|
# end
|
15
15
|
#
|
@@ -18,6 +18,20 @@ module RuboCop
|
|
18
18
|
# b
|
19
19
|
# something
|
20
20
|
# end
|
21
|
+
#
|
22
|
+
# @example EnforcedStyle: indented
|
23
|
+
# # bad
|
24
|
+
# if a +
|
25
|
+
# b
|
26
|
+
# something
|
27
|
+
# end
|
28
|
+
#
|
29
|
+
# # good
|
30
|
+
# if a +
|
31
|
+
# b
|
32
|
+
# something
|
33
|
+
# end
|
34
|
+
#
|
21
35
|
class MultilineOperationIndentation < Cop
|
22
36
|
include ConfigurableEnforcedStyle
|
23
37
|
include Alignment
|
@@ -22,6 +22,8 @@ module RuboCop
|
|
22
22
|
# puts 'error'
|
23
23
|
# end
|
24
24
|
class RescueEnsureAlignment < Cop
|
25
|
+
include RangeHelp
|
26
|
+
|
25
27
|
MSG = '`%<kw_loc>s` at %<kw_loc_line>d, %<kw_loc_column>d is not ' \
|
26
28
|
'aligned with `end` at %<end_loc_line>d, %<end_loc_column>d.'
|
27
29
|
.freeze
|
@@ -37,7 +39,7 @@ module RuboCop
|
|
37
39
|
def investigate(processed_source)
|
38
40
|
@modifier_locations =
|
39
41
|
processed_source.tokens.each_with_object([]) do |token, locations|
|
40
|
-
next unless token.
|
42
|
+
next unless token.rescue_modifier?
|
41
43
|
locations << token.pos
|
42
44
|
end
|
43
45
|
end
|
@@ -5,7 +5,8 @@ module RuboCop
|
|
5
5
|
module Layout
|
6
6
|
# Checks that the equals signs in parameter default assignments
|
7
7
|
# have or don't have surrounding space depending on configuration.
|
8
|
-
#
|
8
|
+
#
|
9
|
+
# @example EnforcedStyle: space (default)
|
9
10
|
# # bad
|
10
11
|
# def some_method(arg1=:default, arg2=nil, arg3=[])
|
11
12
|
# # do something...
|
@@ -15,9 +16,21 @@ module RuboCop
|
|
15
16
|
# def some_method(arg1 = :default, arg2 = nil, arg3 = [])
|
16
17
|
# # do something...
|
17
18
|
# end
|
19
|
+
#
|
20
|
+
# @example EnforcedStyle: no_space
|
21
|
+
# # bad
|
22
|
+
# def some_method(arg1 = :default, arg2 = nil, arg3 = [])
|
23
|
+
# # do something...
|
24
|
+
# end
|
25
|
+
#
|
26
|
+
# # good
|
27
|
+
# def some_method(arg1=:default, arg2=nil, arg3=[])
|
28
|
+
# # do something...
|
29
|
+
# end
|
18
30
|
class SpaceAroundEqualsInParameterDefault < Cop
|
19
31
|
include SurroundingSpace
|
20
32
|
include ConfigurableEnforcedStyle
|
33
|
+
include RangeHelp
|
21
34
|
|
22
35
|
MSG = 'Surrounding space %<type>s in default value assignment.'.freeze
|
23
36
|
|
@@ -70,7 +83,7 @@ module RuboCop
|
|
70
83
|
!arg.space_after? && !equals.space_after?
|
71
84
|
end
|
72
85
|
|
73
|
-
def message(
|
86
|
+
def message(_node)
|
74
87
|
format(MSG, type: style == :space ? 'missing' : 'detected')
|
75
88
|
end
|
76
89
|
end
|