rubocop 0.29.1 → 0.30.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.
Potentially problematic release.
This version of rubocop might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +73 -1
- data/README.md +11 -2
- data/config/default.yml +194 -6
- data/config/disabled.yml +25 -1
- data/config/enabled.yml +74 -12
- data/lib/rubocop.rb +19 -2
- data/lib/rubocop/config.rb +23 -3
- data/lib/rubocop/config_loader.rb +9 -1
- data/lib/rubocop/cop/autocorrect_logic.rb +26 -0
- data/lib/rubocop/cop/cop.rb +33 -17
- data/lib/rubocop/cop/lint/assignment_in_condition.rb +16 -4
- data/lib/rubocop/cop/lint/block_alignment.rb +5 -14
- data/lib/rubocop/cop/lint/literal_in_interpolation.rb +1 -1
- data/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +61 -0
- data/lib/rubocop/cop/lint/void.rb +11 -3
- data/lib/rubocop/cop/mixin/on_normal_if_unless.rb +17 -0
- data/lib/rubocop/cop/performance/detect.rb +72 -0
- data/lib/rubocop/cop/performance/flat_map.rb +64 -0
- data/lib/rubocop/cop/performance/reverse_each.rb +43 -0
- data/lib/rubocop/cop/performance/sample.rb +58 -0
- data/lib/rubocop/cop/performance/size.rb +64 -0
- data/lib/rubocop/cop/rails/date.rb +121 -0
- data/lib/rubocop/cop/rails/find_by.rb +52 -0
- data/lib/rubocop/cop/rails/find_each.rb +41 -0
- data/lib/rubocop/cop/rails/time_zone.rb +93 -0
- data/lib/rubocop/cop/style/auto_resource_cleanup.rb +45 -0
- data/lib/rubocop/cop/style/block_delimiters.rb +186 -0
- data/lib/rubocop/cop/style/closing_parenthesis_indentation.rb +76 -0
- data/lib/rubocop/cop/style/command_literal.rb +120 -0
- data/lib/rubocop/cop/style/copyright.rb +87 -0
- data/lib/rubocop/cop/style/documentation.rb +32 -0
- data/lib/rubocop/cop/style/empty_else.rb +85 -16
- data/lib/rubocop/cop/style/encoding.rb +14 -2
- data/lib/rubocop/cop/style/end_of_line.rb +5 -0
- data/lib/rubocop/cop/style/hash_syntax.rb +86 -23
- data/lib/rubocop/cop/style/if_unless_modifier.rb +15 -0
- data/lib/rubocop/cop/style/indentation_consistency.rb +13 -6
- data/lib/rubocop/cop/style/indentation_width.rb +34 -10
- data/lib/rubocop/cop/style/lambda.rb +32 -17
- data/lib/rubocop/cop/style/line_end_concatenation.rb +4 -0
- data/lib/rubocop/cop/style/missing_else.rb +72 -0
- data/lib/rubocop/cop/style/regexp_literal.rb +89 -58
- data/lib/rubocop/cop/style/space_around_operators.rb +13 -2
- data/lib/rubocop/cop/style/space_before_block_braces.rb +3 -3
- data/lib/rubocop/cop/style/space_inside_block_braces.rb +9 -5
- data/lib/rubocop/cop/style/symbol_literal.rb +36 -0
- data/lib/rubocop/cop/style/trailing_blank_lines.rb +7 -0
- data/lib/rubocop/cop/style/trailing_comma.rb +21 -7
- data/lib/rubocop/cop/style/trivial_accessors.rb +17 -3
- data/lib/rubocop/cop/style/unneeded_capital_w.rb +4 -6
- data/lib/rubocop/cop/style/while_until_modifier.rb +10 -0
- data/lib/rubocop/cop/util.rb +24 -19
- data/lib/rubocop/cop/variable_force.rb +14 -0
- data/lib/rubocop/cop/variable_force/reference.rb +10 -4
- data/lib/rubocop/formatter/html_formatter.rb +10 -4
- data/lib/rubocop/formatter/text_util.rb +5 -7
- data/lib/rubocop/options.rb +47 -45
- data/lib/rubocop/path_util.rb +12 -8
- data/lib/rubocop/processed_source.rb +12 -1
- data/lib/rubocop/rake_task.rb +2 -2
- data/lib/rubocop/version.rb +1 -1
- data/relnotes/v0.30.0.md +145 -0
- data/rubocop.gemspec +15 -3
- metadata +22 -545
- data/.gitignore +0 -54
- data/.rspec +0 -1
- data/.rubocop.yml +0 -11
- data/.rubocop_todo.yml +0 -28
- data/.travis.yml +0 -22
- data/Gemfile +0 -15
- data/Rakefile +0 -41
- data/lib/rubocop/cop/style/blocks.rb +0 -80
- data/lib/rubocop/cop/style/unneeded_percent_x.rb +0 -25
- data/logo/rubocop-final-logo.eps +0 -0
- data/spec/.rubocop.yml +0 -5
- data/spec/fixtures/html_formatter/expected.html +0 -495
- data/spec/fixtures/html_formatter/project/app/controllers/application_controller.rb +0 -5
- data/spec/fixtures/html_formatter/project/app/controllers/books_controller.rb +0 -74
- data/spec/fixtures/html_formatter/project/app/models/book.rb +0 -5
- data/spec/isolated_environment_spec.rb +0 -24
- data/spec/project_spec.rb +0 -119
- data/spec/rubocop/cli_spec.rb +0 -2740
- data/spec/rubocop/comment_config_spec.rb +0 -105
- data/spec/rubocop/config_loader_spec.rb +0 -377
- data/spec/rubocop/config_spec.rb +0 -235
- data/spec/rubocop/config_store_spec.rb +0 -53
- data/spec/rubocop/cop/commissioner_spec.rb +0 -85
- data/spec/rubocop/cop/cop_spec.rb +0 -135
- data/spec/rubocop/cop/corrector_spec.rb +0 -59
- data/spec/rubocop/cop/force_spec.rb +0 -29
- data/spec/rubocop/cop/lint/ambiguous_operator_spec.rb +0 -113
- data/spec/rubocop/cop/lint/ambiguous_regexp_literal_spec.rb +0 -35
- data/spec/rubocop/cop/lint/assignment_in_condition_spec.rb +0 -130
- data/spec/rubocop/cop/lint/block_alignment_spec.rb +0 -533
- data/spec/rubocop/cop/lint/condition_position_spec.rb +0 -51
- data/spec/rubocop/cop/lint/debugger_spec.rb +0 -73
- data/spec/rubocop/cop/lint/def_end_alignment_spec.rb +0 -108
- data/spec/rubocop/cop/lint/deprecated_class_methods_spec.rb +0 -38
- data/spec/rubocop/cop/lint/duplicate_methods_spec.rb +0 -189
- data/spec/rubocop/cop/lint/else_layout_spec.rb +0 -65
- data/spec/rubocop/cop/lint/empty_ensure_spec.rb +0 -27
- data/spec/rubocop/cop/lint/empty_interpolation_spec.rb +0 -18
- data/spec/rubocop/cop/lint/end_alignment_spec.rb +0 -91
- data/spec/rubocop/cop/lint/end_in_method_spec.rb +0 -29
- data/spec/rubocop/cop/lint/ensure_return_spec.rb +0 -39
- data/spec/rubocop/cop/lint/eval_spec.rb +0 -33
- data/spec/rubocop/cop/lint/handle_exceptions_spec.rb +0 -30
- data/spec/rubocop/cop/lint/invalid_character_literal_spec.rb +0 -33
- data/spec/rubocop/cop/lint/literal_in_condition_spec.rb +0 -172
- data/spec/rubocop/cop/lint/literal_in_interpolation_spec.rb +0 -31
- data/spec/rubocop/cop/lint/loop_spec.rb +0 -27
- data/spec/rubocop/cop/lint/parentheses_as_grouped_expression_spec.rb +0 -57
- data/spec/rubocop/cop/lint/require_parentheses_spec.rb +0 -82
- data/spec/rubocop/cop/lint/rescue_exception_spec.rb +0 -123
- data/spec/rubocop/cop/lint/shadowing_outer_local_variable_spec.rb +0 -237
- data/spec/rubocop/cop/lint/space_before_first_arg_spec.rb +0 -66
- data/spec/rubocop/cop/lint/string_conversion_in_interpolation_spec.rb +0 -51
- data/spec/rubocop/cop/lint/syntax_spec.rb +0 -34
- data/spec/rubocop/cop/lint/underscore_prefixed_variable_name_spec.rb +0 -179
- data/spec/rubocop/cop/lint/unreachable_code_spec.rb +0 -63
- data/spec/rubocop/cop/lint/unused_block_argument_spec.rb +0 -231
- data/spec/rubocop/cop/lint/unused_method_argument_spec.rb +0 -278
- data/spec/rubocop/cop/lint/useless_access_modifier_spec.rb +0 -192
- data/spec/rubocop/cop/lint/useless_assignment_spec.rb +0 -1778
- data/spec/rubocop/cop/lint/useless_comparison_spec.rb +0 -30
- data/spec/rubocop/cop/lint/useless_else_without_rescue_spec.rb +0 -48
- data/spec/rubocop/cop/lint/useless_setter_call_spec.rb +0 -211
- data/spec/rubocop/cop/lint/void_spec.rb +0 -64
- data/spec/rubocop/cop/metrics/abc_size_spec.rb +0 -109
- data/spec/rubocop/cop/metrics/block_nesting_spec.rb +0 -156
- data/spec/rubocop/cop/metrics/class_length_spec.rb +0 -131
- data/spec/rubocop/cop/metrics/cyclomatic_complexity_spec.rb +0 -204
- data/spec/rubocop/cop/metrics/line_length_spec.rb +0 -136
- data/spec/rubocop/cop/metrics/method_length_spec.rb +0 -147
- data/spec/rubocop/cop/metrics/parameter_lists_spec.rb +0 -44
- data/spec/rubocop/cop/metrics/perceived_complexity_spec.rb +0 -222
- data/spec/rubocop/cop/offense_spec.rb +0 -133
- data/spec/rubocop/cop/rails/action_filter_spec.rb +0 -64
- data/spec/rubocop/cop/rails/default_scope_spec.rb +0 -37
- data/spec/rubocop/cop/rails/delegate_spec.rb +0 -177
- data/spec/rubocop/cop/rails/has_and_belongs_to_many_spec.rb +0 -13
- data/spec/rubocop/cop/rails/output_spec.rb +0 -37
- data/spec/rubocop/cop/rails/read_write_attribute_spec.rb +0 -130
- data/spec/rubocop/cop/rails/scope_args_spec.rb +0 -25
- data/spec/rubocop/cop/rails/validation_spec.rb +0 -28
- data/spec/rubocop/cop/severity_spec.rb +0 -113
- data/spec/rubocop/cop/style/access_modifier_indentation_spec.rb +0 -421
- data/spec/rubocop/cop/style/accessor_method_name_spec.rb +0 -81
- data/spec/rubocop/cop/style/alias_spec.rb +0 -59
- data/spec/rubocop/cop/style/align_array_spec.rb +0 -123
- data/spec/rubocop/cop/style/align_hash_spec.rb +0 -411
- data/spec/rubocop/cop/style/align_parameters_spec.rb +0 -431
- data/spec/rubocop/cop/style/and_or_spec.rb +0 -235
- data/spec/rubocop/cop/style/array_join_spec.rb +0 -29
- data/spec/rubocop/cop/style/ascii_comments_spec.rb +0 -21
- data/spec/rubocop/cop/style/ascii_identifiers_spec.rb +0 -36
- data/spec/rubocop/cop/style/attr_spec.rb +0 -29
- data/spec/rubocop/cop/style/bare_percent_literals_spec.rb +0 -132
- data/spec/rubocop/cop/style/begin_block_spec.rb +0 -13
- data/spec/rubocop/cop/style/block_comments_spec.rb +0 -45
- data/spec/rubocop/cop/style/block_end_newline_spec.rb +0 -61
- data/spec/rubocop/cop/style/blocks_spec.rb +0 -121
- data/spec/rubocop/cop/style/braces_around_hash_parameters_spec.rb +0 -288
- data/spec/rubocop/cop/style/case_equality_spec.rb +0 -13
- data/spec/rubocop/cop/style/case_indentation_spec.rb +0 -293
- data/spec/rubocop/cop/style/character_literal_spec.rb +0 -37
- data/spec/rubocop/cop/style/class_and_module_camel_case_spec.rb +0 -40
- data/spec/rubocop/cop/style/class_and_module_children_spec.rb +0 -133
- data/spec/rubocop/cop/style/class_check_spec.rb +0 -41
- data/spec/rubocop/cop/style/class_methods_spec.rb +0 -80
- data/spec/rubocop/cop/style/class_vars_spec.rb +0 -19
- data/spec/rubocop/cop/style/collection_methods_spec.rb +0 -48
- data/spec/rubocop/cop/style/colon_method_call_spec.rb +0 -65
- data/spec/rubocop/cop/style/comment_annotation_spec.rb +0 -86
- data/spec/rubocop/cop/style/comment_indentation_spec.rb +0 -179
- data/spec/rubocop/cop/style/constant_name_spec.rb +0 -65
- data/spec/rubocop/cop/style/def_with_parentheses_spec.rb +0 -43
- data/spec/rubocop/cop/style/deprecated_hash_methods_spec.rb +0 -45
- data/spec/rubocop/cop/style/documentation_spec.rb +0 -146
- data/spec/rubocop/cop/style/dot_position_spec.rb +0 -132
- data/spec/rubocop/cop/style/double_negation_spec.rb +0 -22
- data/spec/rubocop/cop/style/each_with_object_spec.rb +0 -73
- data/spec/rubocop/cop/style/else_alignment_spec.rb +0 -506
- data/spec/rubocop/cop/style/empty_else_spec.rb +0 -100
- data/spec/rubocop/cop/style/empty_line_between_defs_spec.rb +0 -135
- data/spec/rubocop/cop/style/empty_lines_around_access_modifier_spec.rb +0 -178
- data/spec/rubocop/cop/style/empty_lines_around_block_body_spec.rb +0 -103
- data/spec/rubocop/cop/style/empty_lines_around_class_body_spec.rb +0 -135
- data/spec/rubocop/cop/style/empty_lines_around_method_body_spec.rb +0 -90
- data/spec/rubocop/cop/style/empty_lines_around_module_body_spec.rb +0 -79
- data/spec/rubocop/cop/style/empty_lines_spec.rb +0 -51
- data/spec/rubocop/cop/style/empty_literal_spec.rb +0 -117
- data/spec/rubocop/cop/style/encoding_spec.rb +0 -139
- data/spec/rubocop/cop/style/end_block_spec.rb +0 -13
- data/spec/rubocop/cop/style/end_of_line_spec.rb +0 -65
- data/spec/rubocop/cop/style/even_odd_spec.rb +0 -164
- data/spec/rubocop/cop/style/extra_spacing_spec.rb +0 -68
- data/spec/rubocop/cop/style/file_name_spec.rb +0 -84
- data/spec/rubocop/cop/style/first_parameter_indentation_spec.rb +0 -304
- data/spec/rubocop/cop/style/flip_flop_spec.rb +0 -23
- data/spec/rubocop/cop/style/for_spec.rb +0 -105
- data/spec/rubocop/cop/style/format_string_spec.rb +0 -184
- data/spec/rubocop/cop/style/global_vars_spec.rb +0 -34
- data/spec/rubocop/cop/style/guard_clause_spec.rb +0 -172
- data/spec/rubocop/cop/style/hash_syntax_spec.rb +0 -137
- data/spec/rubocop/cop/style/if_unless_modifier_spec.rb +0 -146
- data/spec/rubocop/cop/style/if_with_semicolon_spec.rb +0 -24
- data/spec/rubocop/cop/style/indent_array_spec.rb +0 -173
- data/spec/rubocop/cop/style/indent_hash_spec.rb +0 -367
- data/spec/rubocop/cop/style/indentation_consistency_spec.rb +0 -509
- data/spec/rubocop/cop/style/indentation_width_spec.rb +0 -885
- data/spec/rubocop/cop/style/infinite_loop_spec.rb +0 -48
- data/spec/rubocop/cop/style/inline_comment_spec.rb +0 -13
- data/spec/rubocop/cop/style/lambda_call_spec.rb +0 -65
- data/spec/rubocop/cop/style/lambda_spec.rb +0 -76
- data/spec/rubocop/cop/style/leading_comment_space_spec.rb +0 -64
- data/spec/rubocop/cop/style/line_end_concatenation_spec.rb +0 -184
- data/spec/rubocop/cop/style/method_call_parentheses_spec.rb +0 -59
- data/spec/rubocop/cop/style/method_called_on_do_end_block_spec.rb +0 -60
- data/spec/rubocop/cop/style/method_def_parentheses_spec.rb +0 -108
- data/spec/rubocop/cop/style/method_name_spec.rb +0 -125
- data/spec/rubocop/cop/style/module_function_spec.rb +0 -24
- data/spec/rubocop/cop/style/multiline_block_chain_spec.rb +0 -78
- data/spec/rubocop/cop/style/multiline_block_layout_spec.rb +0 -199
- data/spec/rubocop/cop/style/multiline_if_then_spec.rb +0 -134
- data/spec/rubocop/cop/style/multiline_operation_indentation_spec.rb +0 -464
- data/spec/rubocop/cop/style/multiline_ternary_operator_spec.rb +0 -18
- data/spec/rubocop/cop/style/negated_if_spec.rb +0 -102
- data/spec/rubocop/cop/style/negated_while_spec.rb +0 -64
- data/spec/rubocop/cop/style/nested_ternary_operator_spec.rb +0 -21
- data/spec/rubocop/cop/style/next_spec.rb +0 -301
- data/spec/rubocop/cop/style/nil_comparison_spec.rb +0 -29
- data/spec/rubocop/cop/style/non_nil_check_spec.rb +0 -132
- data/spec/rubocop/cop/style/not_spec.rb +0 -28
- data/spec/rubocop/cop/style/numeric_literals_spec.rb +0 -80
- data/spec/rubocop/cop/style/one_line_conditional_spec.rb +0 -13
- data/spec/rubocop/cop/style/op_method_spec.rb +0 -85
- data/spec/rubocop/cop/style/parentheses_around_condition_spec.rb +0 -161
- data/spec/rubocop/cop/style/percent_literal_delimiters_spec.rb +0 -316
- data/spec/rubocop/cop/style/percent_q_literals_spec.rb +0 -122
- data/spec/rubocop/cop/style/perl_backrefs_spec.rb +0 -22
- data/spec/rubocop/cop/style/predicate_name_spec.rb +0 -57
- data/spec/rubocop/cop/style/proc_spec.rb +0 -27
- data/spec/rubocop/cop/style/raise_args_spec.rb +0 -87
- data/spec/rubocop/cop/style/redundant_begin_spec.rb +0 -121
- data/spec/rubocop/cop/style/redundant_exception_spec.rb +0 -59
- data/spec/rubocop/cop/style/redundant_return_spec.rb +0 -171
- data/spec/rubocop/cop/style/redundant_self_spec.rb +0 -186
- data/spec/rubocop/cop/style/regexp_literal_spec.rb +0 -188
- data/spec/rubocop/cop/style/rescue_modifier_spec.rb +0 -116
- data/spec/rubocop/cop/style/self_assignment_spec.rb +0 -49
- data/spec/rubocop/cop/style/semicolon_spec.rb +0 -114
- data/spec/rubocop/cop/style/signal_exception_spec.rb +0 -289
- data/spec/rubocop/cop/style/single_line_block_params_spec.rb +0 -82
- data/spec/rubocop/cop/style/single_line_methods_spec.rb +0 -94
- data/spec/rubocop/cop/style/single_space_before_first_arg_spec.rb +0 -63
- data/spec/rubocop/cop/style/space_after_colon_spec.rb +0 -55
- data/spec/rubocop/cop/style/space_after_comma_spec.rb +0 -30
- data/spec/rubocop/cop/style/space_after_control_keyword_spec.rb +0 -84
- data/spec/rubocop/cop/style/space_after_method_name_spec.rb +0 -70
- data/spec/rubocop/cop/style/space_after_not_spec.rb +0 -22
- data/spec/rubocop/cop/style/space_after_semicolon_spec.rb +0 -23
- data/spec/rubocop/cop/style/space_around_block_parameters_spec.rb +0 -155
- data/spec/rubocop/cop/style/space_around_equals_in_parameter_default_spec.rb +0 -95
- data/spec/rubocop/cop/style/space_around_operators_spec.rb +0 -330
- data/spec/rubocop/cop/style/space_before_block_braces_spec.rb +0 -73
- data/spec/rubocop/cop/style/space_before_comma_spec.rb +0 -42
- data/spec/rubocop/cop/style/space_before_comment_spec.rb +0 -34
- data/spec/rubocop/cop/style/space_before_modifier_keyword_spec.rb +0 -70
- data/spec/rubocop/cop/style/space_before_semicolon_spec.rb +0 -28
- data/spec/rubocop/cop/style/space_inside_block_braces_spec.rb +0 -317
- data/spec/rubocop/cop/style/space_inside_brackets_spec.rb +0 -83
- data/spec/rubocop/cop/style/space_inside_hash_literal_braces_spec.rb +0 -147
- data/spec/rubocop/cop/style/space_inside_parens_spec.rb +0 -44
- data/spec/rubocop/cop/style/space_inside_range_literal_spec.rb +0 -64
- data/spec/rubocop/cop/style/special_global_vars_spec.rb +0 -62
- data/spec/rubocop/cop/style/string_literals_in_interpolation_spec.rb +0 -99
- data/spec/rubocop/cop/style/string_literals_spec.rb +0 -228
- data/spec/rubocop/cop/style/struct_inheritance_spec.rb +0 -44
- data/spec/rubocop/cop/style/symbol_array_spec.rb +0 -37
- data/spec/rubocop/cop/style/symbol_proc_spec.rb +0 -100
- data/spec/rubocop/cop/style/tab_spec.rb +0 -47
- data/spec/rubocop/cop/style/trailing_blank_lines_spec.rb +0 -83
- data/spec/rubocop/cop/style/trailing_comma_spec.rb +0 -390
- data/spec/rubocop/cop/style/trailing_whitespace_spec.rb +0 -31
- data/spec/rubocop/cop/style/trivial_accessors_spec.rb +0 -558
- data/spec/rubocop/cop/style/unless_else_spec.rb +0 -23
- data/spec/rubocop/cop/style/unneeded_capital_w_spec.rb +0 -90
- data/spec/rubocop/cop/style/unneeded_percent_q_spec.rb +0 -127
- data/spec/rubocop/cop/style/unneeded_percent_x_spec.rb +0 -34
- data/spec/rubocop/cop/style/variable_interpolation_spec.rb +0 -76
- data/spec/rubocop/cop/style/variable_name_spec.rb +0 -107
- data/spec/rubocop/cop/style/when_then_spec.rb +0 -42
- data/spec/rubocop/cop/style/while_until_do_spec.rb +0 -55
- data/spec/rubocop/cop/style/while_until_modifier_spec.rb +0 -93
- data/spec/rubocop/cop/style/word_array_spec.rb +0 -117
- data/spec/rubocop/cop/team_spec.rb +0 -190
- data/spec/rubocop/cop/util_spec.rb +0 -102
- data/spec/rubocop/cop/variable_force/assignment_spec.rb +0 -200
- data/spec/rubocop/cop/variable_force/locatable_spec.rb +0 -699
- data/spec/rubocop/cop/variable_force/reference_spec.rb +0 -19
- data/spec/rubocop/cop/variable_force/scope_spec.rb +0 -319
- data/spec/rubocop/cop/variable_force/variable_spec.rb +0 -59
- data/spec/rubocop/cop/variable_force/variable_table_spec.rb +0 -276
- data/spec/rubocop/cop/variable_force_spec.rb +0 -26
- data/spec/rubocop/formatter/base_formatter_spec.rb +0 -191
- data/spec/rubocop/formatter/clang_style_formatter_spec.rb +0 -114
- data/spec/rubocop/formatter/colorizable_spec.rb +0 -107
- data/spec/rubocop/formatter/disabled_config_formatter_spec.rb +0 -50
- data/spec/rubocop/formatter/disabled_lines_formatter_spec.rb +0 -67
- data/spec/rubocop/formatter/emacs_style_formatter_spec.rb +0 -63
- data/spec/rubocop/formatter/file_list_formatter_spec.rb +0 -33
- data/spec/rubocop/formatter/formatter_set_spec.rb +0 -141
- data/spec/rubocop/formatter/fuubar_style_formatter_spec.rb +0 -129
- data/spec/rubocop/formatter/html_formatter_spec.rb +0 -48
- data/spec/rubocop/formatter/json_formatter_spec.rb +0 -152
- data/spec/rubocop/formatter/offense_count_formatter_spec.rb +0 -75
- data/spec/rubocop/formatter/progress_formatter_spec.rb +0 -182
- data/spec/rubocop/formatter/simple_text_formatter_spec.rb +0 -135
- data/spec/rubocop/formatter/text_util_spec.rb +0 -55
- data/spec/rubocop/options_spec.rb +0 -181
- data/spec/rubocop/path_util_spec.rb +0 -77
- data/spec/rubocop/processed_source_spec.rb +0 -184
- data/spec/rubocop/rake_task_spec.rb +0 -122
- data/spec/rubocop/runner_spec.rb +0 -99
- data/spec/rubocop/string_util_spec.rb +0 -46
- data/spec/rubocop/target_finder_spec.rb +0 -245
- data/spec/rubocop/token_spec.rb +0 -29
- data/spec/spec_helper.rb +0 -39
- data/spec/support/cop_helper.rb +0 -75
- data/spec/support/cops/class_must_be_a_module_cop.rb +0 -19
- data/spec/support/cops/module_must_be_a_class_cop.rb +0 -19
- data/spec/support/coverage.rb +0 -15
- data/spec/support/custom_matchers.rb +0 -58
- data/spec/support/file_helper.rb +0 -23
- data/spec/support/jruby_workaround.rb +0 -15
- data/spec/support/mri_syntax_checker.rb +0 -73
- data/spec/support/shared_contexts.rb +0 -53
- data/spec/support/shared_examples.rb +0 -55
- data/spec/support/statement_modifier_helper.rb +0 -41
data/lib/rubocop/cop/util.rb
CHANGED
@@ -145,39 +145,44 @@ module RuboCop
|
|
145
145
|
buffer ||= @processed_source.buffer
|
146
146
|
src = buffer.source
|
147
147
|
|
148
|
-
|
149
|
-
go_left, go_right = true, true
|
150
|
-
else
|
151
|
-
go_left = side == :left
|
152
|
-
go_right = side == :right
|
153
|
-
end
|
148
|
+
go_left, go_right = directions(side)
|
154
149
|
|
155
150
|
begin_pos, end_pos = range.begin_pos, range.end_pos
|
156
|
-
begin_pos
|
157
|
-
end_pos
|
151
|
+
begin_pos = move_pos(src, begin_pos, -1, go_left, /,/)
|
152
|
+
end_pos = move_pos(src, end_pos, 1, go_right, /,/)
|
158
153
|
|
159
154
|
Parser::Source::Range.new(buffer, begin_pos, end_pos)
|
160
155
|
end
|
161
156
|
|
162
|
-
def range_with_surrounding_space(range, side = :both, buffer = nil
|
157
|
+
def range_with_surrounding_space(range, side = :both, buffer = nil,
|
158
|
+
with_newline = true)
|
163
159
|
buffer ||= @processed_source.buffer
|
164
160
|
src = buffer.source
|
165
161
|
|
166
|
-
|
167
|
-
go_left, go_right = true, true
|
168
|
-
else
|
169
|
-
go_left = side == :left
|
170
|
-
go_right = side == :right
|
171
|
-
end
|
162
|
+
go_left, go_right = directions(side)
|
172
163
|
|
173
164
|
begin_pos, end_pos = range.begin_pos, range.end_pos
|
174
|
-
begin_pos
|
175
|
-
begin_pos
|
176
|
-
end_pos
|
177
|
-
end_pos
|
165
|
+
begin_pos = move_pos(src, begin_pos, -1, go_left, /[ \t]/)
|
166
|
+
begin_pos = move_pos(src, begin_pos, -1, go_left && with_newline, /\n/)
|
167
|
+
end_pos = move_pos(src, end_pos, 1, go_right, /[ \t]/)
|
168
|
+
end_pos = move_pos(src, end_pos, 1, go_right && with_newline, /\n/)
|
178
169
|
Parser::Source::Range.new(buffer, begin_pos, end_pos)
|
179
170
|
end
|
180
171
|
|
172
|
+
def move_pos(src, pos, step, condition, regexp)
|
173
|
+
offset = step == -1 ? -1 : 0
|
174
|
+
pos += step while condition && src[pos + offset] =~ regexp
|
175
|
+
pos
|
176
|
+
end
|
177
|
+
|
178
|
+
def directions(side)
|
179
|
+
if side == :both
|
180
|
+
[true, true]
|
181
|
+
else
|
182
|
+
[side == :left, side == :right]
|
183
|
+
end
|
184
|
+
end
|
185
|
+
|
181
186
|
def begins_its_line?(range)
|
182
187
|
source_before_end = range.source_buffer.source[0...range.begin_pos]
|
183
188
|
source_before_end =~ /\n\s*\Z/
|
@@ -53,6 +53,8 @@ module RuboCop
|
|
53
53
|
TWISTED_SCOPE_TYPES = [:block, :class, :sclass, :defs].freeze
|
54
54
|
SCOPE_TYPES = (TWISTED_SCOPE_TYPES + [:module, :def]).freeze
|
55
55
|
|
56
|
+
SEND_TYPE = :send
|
57
|
+
|
56
58
|
def self.wrap_with_top_level_scope_node(root_node)
|
57
59
|
if root_node.begin_type?
|
58
60
|
root_node
|
@@ -124,6 +126,8 @@ module RuboCop
|
|
124
126
|
process_zero_arity_super(node)
|
125
127
|
when *SCOPE_TYPES
|
126
128
|
process_scope(node)
|
129
|
+
when SEND_TYPE
|
130
|
+
process_send(node)
|
127
131
|
end
|
128
132
|
end
|
129
133
|
# rubocop:enable Metrics/MethodLength, Metrics/CyclomaticComplexity
|
@@ -281,6 +285,16 @@ module RuboCop
|
|
281
285
|
skip_children!
|
282
286
|
end
|
283
287
|
|
288
|
+
def process_send(node)
|
289
|
+
_receiver, method_name, args = *node
|
290
|
+
return unless method_name == :binding
|
291
|
+
return if args && !args.children.empty?
|
292
|
+
|
293
|
+
variable_table.accessible_variables.each do |variable|
|
294
|
+
variable.reference!(node)
|
295
|
+
end
|
296
|
+
end
|
297
|
+
|
284
298
|
# Mark all assignments which are referenced in the same loop
|
285
299
|
# as referenced by ignoring AST order since they would be referenced
|
286
300
|
# in next iteration.
|
@@ -10,7 +10,7 @@ module RuboCop
|
|
10
10
|
VARIABLE_REFERENCE_TYPES = (
|
11
11
|
[VARIABLE_REFERENCE_TYPE] +
|
12
12
|
OPERATOR_ASSIGNMENT_TYPES +
|
13
|
-
[ZERO_ARITY_SUPER_TYPE]
|
13
|
+
[ZERO_ARITY_SUPER_TYPE, SEND_TYPE]
|
14
14
|
).freeze
|
15
15
|
|
16
16
|
attr_reader :node, :scope
|
@@ -32,10 +32,16 @@ module RuboCop
|
|
32
32
|
# super
|
33
33
|
# end
|
34
34
|
#
|
35
|
-
#
|
36
|
-
#
|
35
|
+
# Another case is `binding`:
|
36
|
+
#
|
37
|
+
# def some_method(foo)
|
38
|
+
# do_something(binding)
|
39
|
+
# end
|
40
|
+
#
|
41
|
+
# In these cases, the variable `foo` is not explicitly referenced,
|
42
|
+
# but it can be considered used implicitly by the `super` or `binding`.
|
37
43
|
def explicit?
|
38
|
-
@node.type
|
44
|
+
![ZERO_ARITY_SUPER_TYPE, SEND_TYPE].include?(@node.type)
|
39
45
|
end
|
40
46
|
end
|
41
47
|
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
|
+
require 'cgi'
|
3
4
|
require 'erb'
|
4
5
|
require 'ostruct'
|
5
6
|
require 'base64'
|
@@ -38,7 +39,7 @@ module RuboCop
|
|
38
39
|
def render_html
|
39
40
|
context = ERBContext.new(files, summary)
|
40
41
|
|
41
|
-
template = File.read(TEMPLATE_PATH)
|
42
|
+
template = File.read(TEMPLATE_PATH, encoding: Encoding::UTF_8)
|
42
43
|
erb = ERB.new(template, nil, '-')
|
43
44
|
html = erb.result(context.binding)
|
44
45
|
|
@@ -101,11 +102,16 @@ module RuboCop
|
|
101
102
|
|
102
103
|
source_line = location.source_line
|
103
104
|
|
104
|
-
source_line[0...column_range.begin] +
|
105
|
+
escape(source_line[0...column_range.begin]) +
|
105
106
|
"<span class=\"highlight #{offense.severity}\">" +
|
106
|
-
source_line[column_range] +
|
107
|
+
escape(source_line[column_range]) +
|
107
108
|
'</span>' +
|
108
|
-
source_line[column_range.end..-1]
|
109
|
+
escape(source_line[column_range.end..-1])
|
110
|
+
end
|
111
|
+
|
112
|
+
def escape(s)
|
113
|
+
# Single quotes not escaped in Ruby 1.9, so add extra substitution.
|
114
|
+
CGI.escapeHTML(s).gsub(/'/, ''')
|
109
115
|
end
|
110
116
|
|
111
117
|
def base64_encoded_logo_image
|
@@ -7,13 +7,11 @@ module RuboCop
|
|
7
7
|
module_function
|
8
8
|
|
9
9
|
def pluralize(number, thing, options = {})
|
10
|
-
text =
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
text << number.to_s
|
16
|
-
end
|
10
|
+
text = if number == 0 && options[:no_for_zero]
|
11
|
+
'no'
|
12
|
+
else
|
13
|
+
number.to_s
|
14
|
+
end
|
17
15
|
|
18
16
|
text << " #{thing}"
|
19
17
|
text << 's' unless number == 1
|
data/lib/rubocop/options.rb
CHANGED
@@ -6,51 +6,52 @@ module RuboCop
|
|
6
6
|
# This module contains help texts for command line options.
|
7
7
|
module OptionsHelp
|
8
8
|
TEXT = {
|
9
|
-
only:
|
10
|
-
only_guide_cops:
|
11
|
-
|
12
|
-
except:
|
13
|
-
require:
|
14
|
-
config:
|
15
|
-
auto_gen_config:
|
16
|
-
|
17
|
-
force_exclusion:
|
18
|
-
|
19
|
-
|
20
|
-
format:
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
out:
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
fail_level:
|
39
|
-
|
40
|
-
show_cops:
|
41
|
-
|
42
|
-
|
43
|
-
fail_fast:
|
44
|
-
|
45
|
-
|
46
|
-
debug:
|
47
|
-
display_cop_names:
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
9
|
+
only: 'Run only the given cop(s).',
|
10
|
+
only_guide_cops: ['Run only cops for rules that link to a',
|
11
|
+
'style guide.'],
|
12
|
+
except: 'Disable the given cop(s).',
|
13
|
+
require: 'Require Ruby file.',
|
14
|
+
config: 'Specify configuration file.',
|
15
|
+
auto_gen_config: ['Generate a configuration file acting as a',
|
16
|
+
'TODO list.'],
|
17
|
+
force_exclusion: ['Force excluding files specified in the',
|
18
|
+
'configuration `Exclude` even if they are',
|
19
|
+
'explicitly passed as arguments.'],
|
20
|
+
format: ['Choose an output formatter. This option',
|
21
|
+
'can be specified multiple times to enable',
|
22
|
+
'multiple formatters at the same time.',
|
23
|
+
' [p]rogress (default)',
|
24
|
+
' [s]imple',
|
25
|
+
' [c]lang',
|
26
|
+
' [d]isabled cops via inline comments',
|
27
|
+
' [fu]ubar',
|
28
|
+
' [e]macs',
|
29
|
+
' [j]son',
|
30
|
+
' [h]tml',
|
31
|
+
' [fi]les',
|
32
|
+
' [o]ffenses',
|
33
|
+
' custom formatter class name'],
|
34
|
+
out: ['Write output to a file instead of STDOUT.',
|
35
|
+
'This option applies to the previously',
|
36
|
+
'specified --format, or the default format',
|
37
|
+
'if no format is specified.'],
|
38
|
+
fail_level: ['Minimum severity (A/R/C/W/E/F) for exit',
|
39
|
+
'with error code.'],
|
40
|
+
show_cops: ['Shows the given cops, or all cops by',
|
41
|
+
'default, and their configurations for the',
|
42
|
+
'current directory.'],
|
43
|
+
fail_fast: ['Inspect files in order of modification',
|
44
|
+
'time and stop after the first file',
|
45
|
+
'containing offenses.'],
|
46
|
+
debug: 'Display debug info.',
|
47
|
+
display_cop_names: 'Display cop names in offense messages.',
|
48
|
+
display_style_guide: 'Display style guide URLs in offense messages.',
|
49
|
+
rails: 'Run extra Rails cops.',
|
50
|
+
lint: 'Run only lint cops.',
|
51
|
+
auto_correct: 'Auto-correct offenses.',
|
52
|
+
no_color: 'Disable color output.',
|
53
|
+
version: 'Display version.',
|
54
|
+
verbose_version: 'Display verbose version.'
|
54
55
|
}
|
55
56
|
end
|
56
57
|
|
@@ -165,6 +166,7 @@ module RuboCop
|
|
165
166
|
option(opts, '-F', '--fail-fast')
|
166
167
|
option(opts, '-d', '--debug')
|
167
168
|
option(opts, '-D', '--display-cop-names')
|
169
|
+
option(opts, '-S', '--display-style-guide')
|
168
170
|
option(opts, '-R', '--rails')
|
169
171
|
option(opts, '-l', '--lint')
|
170
172
|
option(opts, '-a', '--auto-correct')
|
data/lib/rubocop/path_util.rb
CHANGED
@@ -6,6 +6,10 @@ module RuboCop
|
|
6
6
|
module_function
|
7
7
|
|
8
8
|
def relative_path(path, base_dir = Dir.pwd)
|
9
|
+
# Optimization for the common case where path begins with the base
|
10
|
+
# dir. Just cut off the first part.
|
11
|
+
return path[(base_dir.length + 1)..-1] if path.start_with?(base_dir)
|
12
|
+
|
9
13
|
path_name = Pathname.new(File.expand_path(path))
|
10
14
|
path_name.relative_path_from(Pathname.new(base_dir)).to_s
|
11
15
|
end
|
@@ -25,15 +29,11 @@ module RuboCop
|
|
25
29
|
# beginning with dot, but not a new match. That's a special case,
|
26
30
|
# though. Not what we want to handle here. And this is a match that
|
27
31
|
# we overrule. Only patterns like dir/**/.* can be used to match dot
|
28
|
-
# files.
|
29
|
-
|
32
|
+
# files. Hidden directories (starting with a dot) will also produce
|
33
|
+
# an old match, just like hidden files.
|
34
|
+
return false if path.split(File::SEPARATOR).any? { |s| hidden?(s) }
|
30
35
|
|
31
|
-
|
32
|
-
# match, just like hidden files. A deprecation warning would be wrong
|
33
|
-
# for these.
|
34
|
-
if path.split(File::SEPARATOR).none? { |s| s.start_with?('.') }
|
35
|
-
issue_deprecation_warning(basename, pattern, config_path)
|
36
|
-
end
|
36
|
+
issue_deprecation_warning(basename, pattern, config_path)
|
37
37
|
end
|
38
38
|
old_match || new_match
|
39
39
|
when Regexp
|
@@ -50,5 +50,9 @@ module RuboCop
|
|
50
50
|
warn("Warning: Deprecated pattern style '#{pattern}' in " \
|
51
51
|
"#{config_path}#{instruction}")
|
52
52
|
end
|
53
|
+
|
54
|
+
def hidden?(path_component)
|
55
|
+
path_component =~ /^\.[^.]/
|
56
|
+
end
|
53
57
|
end
|
54
58
|
end
|
@@ -36,8 +36,19 @@ module RuboCop
|
|
36
36
|
comment_config.cop_disabled_line_ranges
|
37
37
|
end
|
38
38
|
|
39
|
+
# Returns the source lines, line break characters removed, excluding a
|
40
|
+
# possible __END__ and everything that comes after.
|
39
41
|
def lines
|
40
|
-
@lines ||=
|
42
|
+
@lines ||= begin
|
43
|
+
all_lines = raw_source.lines.map(&:chomp)
|
44
|
+
last_token_line = tokens.any? ? tokens.last.pos.line : all_lines.count
|
45
|
+
result = []
|
46
|
+
all_lines.each_with_index do |line, ix|
|
47
|
+
break if ix >= last_token_line && line == '__END__'
|
48
|
+
result << line
|
49
|
+
end
|
50
|
+
result
|
51
|
+
end
|
41
52
|
end
|
42
53
|
|
43
54
|
def [](*args)
|
data/lib/rubocop/rake_task.rb
CHANGED
@@ -53,8 +53,8 @@ module RuboCop
|
|
53
53
|
|
54
54
|
def full_options
|
55
55
|
[].tap do |result|
|
56
|
-
result.concat(formatters.
|
57
|
-
result.concat(requires.
|
56
|
+
result.concat(formatters.flat_map { |f| ['--format', f] })
|
57
|
+
result.concat(requires.flat_map { |r| ['--require', r] })
|
58
58
|
result.concat(options)
|
59
59
|
result.concat(patterns)
|
60
60
|
end
|
data/lib/rubocop/version.rb
CHANGED
data/relnotes/v0.30.0.md
ADDED
@@ -0,0 +1,145 @@
|
|
1
|
+
Nothing ground-breaking this time around, but the release is pretty exciting non-the-less.
|
2
|
+
It packs a whole new category of cops (`Performance`) and a bunch of new Rails cops.
|
3
|
+
A lot of the existing cops got new customization options and we squashed a ton of bugs.
|
4
|
+
|
5
|
+
Thanks to everyone who contributed to this release!
|
6
|
+
|
7
|
+
### New features
|
8
|
+
|
9
|
+
* [#1600](https://github.com/bbatsov/rubocop/issues/1600): Add `line_count_based` and `semantic` styles to the `BlockDelimiters` (formerly `Blocks`) cop. ([@clowder][], [@mudge][])
|
10
|
+
* [#1712](https://github.com/bbatsov/rubocop/pull/1712): Set `Offense#corrected?` to `true`, `false`, or `nil` when it was, wasn't, or can't be auto-corrected, respectively. ([@vassilevsky][])
|
11
|
+
* [#1669](https://github.com/bbatsov/rubocop/pull/1669): Add command-line switch `--display-style-guide`. ([@marxarelli][])
|
12
|
+
* [#1405](https://github.com/bbatsov/rubocop/issues/1405): Add Rails TimeZone and Date cops. ([@palkan][])
|
13
|
+
* [#1641](https://github.com/bbatsov/rubocop/pull/1641): Add ruby19_no_mixed_keys style to `HashStyle` cop. ([@iainbeeston][])
|
14
|
+
* [#1604](https://github.com/bbatsov/rubocop/issues/1604): Add `IgnoreClassMethods` option to `TrivialAccessors` cop. ([@bbatsov][])
|
15
|
+
* [#1651](https://github.com/bbatsov/rubocop/issues/1651): The `Style/SpaceAroundOperators` cop now also detects extra spaces around operators. A list of operators that *may* be surrounded by multiple spaces is configurable. ([@bquorning][])
|
16
|
+
* Add auto-correct to `Encoding` cop. ([@rrosenblum][])
|
17
|
+
* [#1621](https://github.com/bbatsov/rubocop/issues/1621): `TrailingComma` has a new style `consistent_comma`. ([@tamird][])
|
18
|
+
* [#1611](https://github.com/bbatsov/rubocop/issues/1611): Add `empty`, `nil`, and `both` `SupportedStyles` to `EmptyElse` cop. Default is `both`. ([@rrosenblum][])
|
19
|
+
* [#1611](https://github.com/bbatsov/rubocop/issues/1611): Add new `MissingElse` cop. Default is to have this cop be disabled. ([@rrosenblum][])
|
20
|
+
* [#1602](https://github.com/bbatsov/rubocop/issues/1602): Add support for `# :nodoc` in `Documentation`. ([@lumeet][])
|
21
|
+
* [#1437](https://github.com/bbatsov/rubocop/issues/1437): Modify `HashSyntax` cop to allow the use of hash rockets for hashes that have symbol values when using ruby19 syntax. ([@rrosenblum][])
|
22
|
+
* New cop `Style/SymbolLiteral` makes sure you're not using the string within symbol syntax unless it's needed. ([@bbatsov][])
|
23
|
+
* [#1657](https://github.com/bbatsov/rubocop/issues/1657): Autocorrect can be turned off on a specific cop via the configuration. ([@jdoconnor][])
|
24
|
+
* New cop `Style/AutoResourceCleanup` suggests the use of block taking versions of methods that do resource cleanup. ([@bbatsov][])
|
25
|
+
* [#1275](https://github.com/bbatsov/rubocop/issues/1275): `WhileUntilModifier` cop does auto-correction. ([@lumeet][])
|
26
|
+
* New cop `Performance/ReverseEach` to convert `reverse.each` to `reverse_each`. ([@rrosenblum][])
|
27
|
+
* [#1281](https://github.com/bbatsov/rubocop/issues/1281): `IfUnlessModifier` cop does auto-correction. ([@lumeet][])
|
28
|
+
* New cop `Performance/Detect` to detect usage of `select.first`, `select.last`, `find_all.first`, and `find_all.last` and convert them to use `detect` instead. ([@palkan][], [@rrosenblum][])
|
29
|
+
* [#1728](https://github.com/bbatsov/rubocop/pull/1728): New cop `NonLocalExitFromIterator` checks for misused `return` in block. ([@ypresto][])
|
30
|
+
* New cop `Performance/Size` to convert calls to `count` on `Array` and `Hash` to `size`. ([@rrosenblum][])
|
31
|
+
* New cop `Performance/Sample` to convert usages of `shuffle.first`, `shuffle.last`, and `shuffle[Fixnum]` to `sample`. ([@rrosenblum][])
|
32
|
+
* New cop `Performance/FlatMap` to convert `Enumerable#map...Array#flatten` and `Enumerable#collect...Array#flatten` to `Enumerable#flat_map`. ([@rrosenblum][])
|
33
|
+
* [#1144](https://github.com/bbatsov/rubocop/issues/1144): New cop `ClosingParenthesisIndentation` checks the indentation of hanging closing parentheses. ([@jonas054][])
|
34
|
+
* New Rails cop `FindBy` identifies usages of `where.first` and `where.take`. ([@bbatsov][])
|
35
|
+
* New Rails cop `FindEach` identifies usages of `all.each`. ([@bbatsov][])
|
36
|
+
* [#1342](https://github.com/bbatsov/rubocop/issues/1342): `IndentationConsistency` is now configurable with the styles `normal` and `rails`. ([@jonas054][])
|
37
|
+
|
38
|
+
### Bugs fixed
|
39
|
+
|
40
|
+
* [#1705](https://github.com/bbatsov/rubocop/issues/1705): Fix crash when reporting offenses of `MissingElse` cop. ([@gerry3][])
|
41
|
+
* [#1659](https://github.com/bbatsov/rubocop/pull/1659): Fix stack overflow with JRuby and Windows 8, during initial config validation. ([@pimterry][])
|
42
|
+
* [#1694](https://github.com/bbatsov/rubocop/issues/1694): Ignore methods with a `blockarg` in `TrivialAccessors`. ([@bbatsov][])
|
43
|
+
* [#1617](https://github.com/bbatsov/rubocop/issues/1617): Always read the html output template using utf-8. ([@bbatsov][])
|
44
|
+
* [#1684](https://github.com/bbatsov/rubocop/issues/1684): Ignore symbol keys like `:"string"` in `HashSyntax`. ([@bbatsov][])
|
45
|
+
* Handle explicit `begin` blocks in `Lint/Void`. ([@bbatsov][])
|
46
|
+
* Handle symbols in `Lint/Void`. ([@bbatsov][])
|
47
|
+
* [#1695](https://github.com/bbatsov/rubocop/pull/1695): Fix bug with `--auto-gen-config` and `SpaceInsideBlockBraces`. ([@meganemura][])
|
48
|
+
* Correct issues with whitespace around multi-line lambda arguments. ([@zvkemp][])
|
49
|
+
* [#1579](https://github.com/bbatsov/rubocop/issues/1579): Fix handling of similar-looking blocks in `BlockAlignment`. ([@lumeet][])
|
50
|
+
* [#1676](https://github.com/bbatsov/rubocop/pull/1676): Fix auto-correct in `Lambda` when a new multi-line lambda is used as an argument. ([@lumeet][])
|
51
|
+
* [#1656](https://github.com/bbatsov/rubocop/issues/1656): Fix bug that would include hidden directories implicitly. ([@jonas054][])
|
52
|
+
* [#1728](https://github.com/bbatsov/rubocop/pull/1728): Fix bug in `LiteralInInterpolation` and `AssignmentInCondition`. ([@ypresto][])
|
53
|
+
* [#1735](https://github.com/bbatsov/rubocop/issues/1735): Handle trailing space in `LineEndConcatenation` autocorrect. ([@jonas054][])
|
54
|
+
* [#1750](https://github.com/bbatsov/rubocop/issues/1750): Escape offending code lines output by the HTML formatter in case they contain markup. ([@jonas054][])
|
55
|
+
* [#1541](https://github.com/bbatsov/rubocop/issues/1541): No inspection of text that follows `__END__`. ([@jonas054][])
|
56
|
+
* Fix comment detection in `Style/Documentation`. ([@lumeet][])
|
57
|
+
* [#1637](https://github.com/bbatsov/rubocop/issues/1637): Fix handling of `binding` calls in `UnusedBlockArgument` and `UnusedMethodArgument`. ([@lumeet][])
|
58
|
+
|
59
|
+
### Changes
|
60
|
+
|
61
|
+
* [#1397](https://github.com/bbatsov/rubocop/issues/1397): `UnneededPercentX` renamed to `CommandLiteral`. The cop can be configured to enforce using either `%x` or backticks around command literals, or using `%x` around multi-line commands and backticks around single-line commands. The cop ignores heredoc commands. ([@bquorning][])
|
62
|
+
* [#1020](https://github.com/bbatsov/rubocop/issues/1020): Removed the `MaxSlashes` configuration option for `RegexpLiteral`. Instead, the cop can be configured to enforce using either `%r` or slashes around regular expressions, or using `%r` around multi-line regexes and slashes around single-line regexes. ([@bquorning][])
|
63
|
+
* [#1734](https://github.com/bbatsov/rubocop/issues/1734): The default exclusion of hidden directories has been optimized for speed. ([@jonas054][])
|
64
|
+
* [#1673](https://github.com/bbatsov/rubocop/issues/1673): `Style/TrivialAccessors` now requires matching names by default. ([@bbatsov][])
|
65
|
+
|
66
|
+
[@bbatsov]: https://github.com/bbatsov
|
67
|
+
[@jonas054]: https://github.com/jonas054
|
68
|
+
[@yujinakayama]: https://github.com/yujinakayama
|
69
|
+
[@dblock]: https://github.com/dblock
|
70
|
+
[@nevir]: https://github.com/nevir
|
71
|
+
[@daviddavis]: https://github.com/daviddavis
|
72
|
+
[@sds]: https://github.com/sds
|
73
|
+
[@fancyremarker]: https://github.com/fancyremarker
|
74
|
+
[@sinisterchipmunk]: https://github.com/sinisterchipmunk
|
75
|
+
[@vonTronje]: https://github.com/vonTronje
|
76
|
+
[@agrimm]: https://github.com/agrimm
|
77
|
+
[@pmenglund]: https://github.com/pmenglund
|
78
|
+
[@chulkilee]: https://github.com/chulkilee
|
79
|
+
[@codez]: https://github.com/codez
|
80
|
+
[@emou]: https://github.com/emou
|
81
|
+
[@skanev]: http://github.com/skanev
|
82
|
+
[@claco]: http://github.com/claco
|
83
|
+
[@rifraf]: http://github.com/rifraf
|
84
|
+
[@scottmatthewman]: https://github.com/scottmatthewman
|
85
|
+
[@ma2gedev]: http://github.com/ma2gedev
|
86
|
+
[@jeremyolliver]: https://github.com/jeremyolliver
|
87
|
+
[@hannestyden]: https://github.com/hannestyden
|
88
|
+
[@geniou]: https://github.com/geniou
|
89
|
+
[@jkogara]: https://github.com/jkogara
|
90
|
+
[@tmorris-fiksu]: https://github.com/tmorris-fiksu
|
91
|
+
[@mockdeep]: https://github.com/mockdeep
|
92
|
+
[@hiroponz]: https://github.com/hiroponz
|
93
|
+
[@tamird]: https://github.com/tamird
|
94
|
+
[@fshowalter]: https://github.com/fshowalter
|
95
|
+
[@cschramm]: https://github.com/cschramm
|
96
|
+
[@bquorning]: https://github.com/bquorning
|
97
|
+
[@bcobb]: https://github.com/bcobb
|
98
|
+
[@irrationalfab]: https://github.com/irrationalfab
|
99
|
+
[@tommeier]: https://github.com/tommeier
|
100
|
+
[@sfeldon]: https://github.com/sfeldon
|
101
|
+
[@biinari]: https://github.com/biinari
|
102
|
+
[@barunio]: https://github.com/barunio
|
103
|
+
[@molawson]: https://github.com/molawson
|
104
|
+
[@wndhydrnt]: https://github.com/wndhydrnt
|
105
|
+
[@ggilder]: https://github.com/ggilder
|
106
|
+
[@salbertson]: https://github.com/salbertson
|
107
|
+
[@camilleldn]: https://github.com/camilleldn
|
108
|
+
[@mcls]: https://github.com/mcls
|
109
|
+
[@yous]: https://github.com/yous
|
110
|
+
[@vrthra]: https://github.com/vrthra
|
111
|
+
[@SkuliOskarsson]: https://github.com/SkuliOskarsson
|
112
|
+
[@jspanjers]: https://github.com/jspanjers
|
113
|
+
[@sch1zo]: https://github.com/sch1zo
|
114
|
+
[@smangelsdorf]: https://github.com/smangelsdorf
|
115
|
+
[@mvz]: https://github.com/mvz
|
116
|
+
[@jfelchner]: https://github.com/jfelchner
|
117
|
+
[@janraasch]: https://github.com/janraasch
|
118
|
+
[@jcarbo]: https://github.com/jcarbo
|
119
|
+
[@oneamtu]: https://github.com/oneamtu
|
120
|
+
[@toy]: https://github.com/toy
|
121
|
+
[@Koronen]: https://github.com/Koronen
|
122
|
+
[@blainesch]: https://github.com/blainesch
|
123
|
+
[@marxarelli]: https://github.com/marxarelli
|
124
|
+
[@katieschilling]: https://github.com/katieschilling
|
125
|
+
[@kakutani]: https://github.com/kakutani
|
126
|
+
[@rrosenblum]: https://github.com/rrosenblum
|
127
|
+
[@mattjmcnaughton]: https://github.com/mattjmcnaughton
|
128
|
+
[@huerlisi]: https://github.com/huerlisi
|
129
|
+
[@volkert]: https://github.com/volkert
|
130
|
+
[@lumeet]: https://github.com/lumeet
|
131
|
+
[@mmozuras]: https://github.com/mmozuras
|
132
|
+
[@d4rk5eed]: https://github.com/d4rk5eed
|
133
|
+
[@cshaffer]: https://github.com/cshaffer
|
134
|
+
[@eitoball]: https://github.com/eitoball
|
135
|
+
[@iainbeeston]: https://github.com/iainbeeston
|
136
|
+
[@pimterry]: https://github.com/pimterry
|
137
|
+
[@palkan]: https://github.com/palkan
|
138
|
+
[@jdoconnor]: https://github.com/jdoconnor
|
139
|
+
[@meganemura]: https://github.com/meganemura
|
140
|
+
[@zvkemp]: https://github.com/zvkemp
|
141
|
+
[@vassilevsky]: https://github.com/vassilevsky
|
142
|
+
[@gerry3]: https://github.com/gerry3
|
143
|
+
[@ypresto]: https://github.com/ypresto
|
144
|
+
[@clowder]: https://github.com/clowder
|
145
|
+
[@mudge]: https://github.com/mudge
|