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
@@ -1,73 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::SpaceBeforeBlockBraces do
|
6
|
-
subject(:cop) { described_class.new(config) }
|
7
|
-
let(:config) do
|
8
|
-
merged = RuboCop::ConfigLoader
|
9
|
-
.default_configuration['Style/SpaceBeforeBlockBraces']
|
10
|
-
.merge(cop_config)
|
11
|
-
RuboCop::Config.new('Style/Blocks' => { 'Enabled' => false },
|
12
|
-
'Style/SpaceBeforeBlockBraces' => merged)
|
13
|
-
end
|
14
|
-
let(:cop_config) { { 'EnforcedStyle' => 'space' } }
|
15
|
-
|
16
|
-
context 'when EnforcedStyle is space' do
|
17
|
-
it 'accepts braces surrounded by spaces' do
|
18
|
-
inspect_source(cop, 'each { puts }')
|
19
|
-
expect(cop.messages).to be_empty
|
20
|
-
expect(cop.highlights).to be_empty
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'registers an offense for left brace without outer space' do
|
24
|
-
inspect_source(cop, 'each{ puts }')
|
25
|
-
expect(cop.messages).to eq(['Space missing to the left of {.'])
|
26
|
-
expect(cop.highlights).to eq(['{'])
|
27
|
-
expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' => 'no_space')
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'registers an offense for opposite + correct style' do
|
31
|
-
inspect_source(cop,
|
32
|
-
['each{ puts }',
|
33
|
-
'each { puts }'])
|
34
|
-
expect(cop.messages).to eq(['Space missing to the left of {.'])
|
35
|
-
expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
|
36
|
-
end
|
37
|
-
|
38
|
-
it 'auto-corrects missing space' do
|
39
|
-
new_source = autocorrect_source(cop, 'each{}')
|
40
|
-
expect(new_source).to eq('each {}')
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
context 'when EnforcedStyle is no_space' do
|
45
|
-
let(:cop_config) { { 'EnforcedStyle' => 'no_space' } }
|
46
|
-
|
47
|
-
it 'registers an offense for braces surrounded by spaces' do
|
48
|
-
inspect_source(cop, 'each { puts }')
|
49
|
-
expect(cop.messages).to eq(['Space detected to the left of {.'])
|
50
|
-
expect(cop.highlights).to eq([' '])
|
51
|
-
expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' => 'space')
|
52
|
-
end
|
53
|
-
|
54
|
-
it 'registers an offense for correct + opposite style' do
|
55
|
-
inspect_source(cop,
|
56
|
-
['each{ puts }',
|
57
|
-
'each { puts }'])
|
58
|
-
expect(cop.messages).to eq(['Space detected to the left of {.'])
|
59
|
-
expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
|
60
|
-
end
|
61
|
-
|
62
|
-
it 'auto-corrects unwanted space' do
|
63
|
-
new_source = autocorrect_source(cop, 'each {}')
|
64
|
-
expect(new_source).to eq('each{}')
|
65
|
-
end
|
66
|
-
|
67
|
-
it 'accepts left brace without outer space' do
|
68
|
-
inspect_source(cop, 'each{ puts }')
|
69
|
-
expect(cop.messages).to be_empty
|
70
|
-
expect(cop.highlights).to be_empty
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::SpaceBeforeComma do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
it 'registers an offense for block argument with space before comma' do
|
9
|
-
inspect_source(cop, 'each { |s , t| }')
|
10
|
-
expect(cop.messages).to eq(
|
11
|
-
['Space found before comma.'])
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'registers an offense for array index with space before comma' do
|
15
|
-
inspect_source(cop, 'formats[0 , 1]')
|
16
|
-
expect(cop.messages).to eq(
|
17
|
-
['Space found before comma.'])
|
18
|
-
end
|
19
|
-
|
20
|
-
it 'registers an offense for method call arg with space before comma' do
|
21
|
-
inspect_source(cop, 'a(1 , 2)')
|
22
|
-
expect(cop.messages).to eq(
|
23
|
-
['Space found before comma.'])
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'does not register an offense for no spaces before comma' do
|
27
|
-
inspect_source(cop, 'a(1, 2)')
|
28
|
-
expect(cop.messages).to be_empty
|
29
|
-
end
|
30
|
-
|
31
|
-
it 'auto-corrects space before comma' do
|
32
|
-
new_source = autocorrect_source(cop,
|
33
|
-
'each { |s , t| a(1 , formats[0 , 1])}')
|
34
|
-
expect(new_source).to eq('each { |s, t| a(1, formats[0, 1])}')
|
35
|
-
end
|
36
|
-
|
37
|
-
it 'handles more than one space before a comma' do
|
38
|
-
new_source = autocorrect_source(cop,
|
39
|
-
'each { |s , t| a(1 , formats[0 , 1])}')
|
40
|
-
expect(new_source).to eq('each { |s, t| a(1, formats[0, 1])}')
|
41
|
-
end
|
42
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::SpaceBeforeComment do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
it 'registers an offense for missing space before an EOL comment' do
|
9
|
-
inspect_source(cop, 'a += 1# increment')
|
10
|
-
expect(cop.highlights).to eq(['# increment'])
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'accepts an EOL comment with a preceding space' do
|
14
|
-
inspect_source(cop, 'a += 1 # increment')
|
15
|
-
expect(cop.offenses).to be_empty
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'accepts a comment that begins a line' do
|
19
|
-
inspect_source(cop, '# comment')
|
20
|
-
expect(cop.offenses).to be_empty
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'accepts a doc comment' do
|
24
|
-
inspect_source(cop, ['=begin',
|
25
|
-
'Doc comment',
|
26
|
-
'=end'])
|
27
|
-
expect(cop.offenses).to be_empty
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'auto-corrects missing space' do
|
31
|
-
new_source = autocorrect_source(cop, 'a += 1# increment')
|
32
|
-
expect(new_source).to eq('a += 1 # increment')
|
33
|
-
end
|
34
|
-
end
|
@@ -1,70 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::SpaceBeforeModifierKeyword do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
it 'registers an offense for missing space before if/unless' do
|
9
|
-
inspect_source(cop, ['(a = 3)if a == 2',
|
10
|
-
'a = "test"if a == 2',
|
11
|
-
'a = 42unless a == 2',
|
12
|
-
'a = [1,2,3]unless a == 2',
|
13
|
-
'a = {:a => "b"}if a == 2'])
|
14
|
-
expect(cop.highlights).to eq([')', '"', '2', ']', '}'])
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'registers an offense for missing space before while/until' do
|
18
|
-
inspect_source(cop, ['(a = 3)while b',
|
19
|
-
'a = "test"until b',
|
20
|
-
'a = 42while b',
|
21
|
-
'a = [1,2,3]until b',
|
22
|
-
'a = {:a => "b"}while b'])
|
23
|
-
expect(cop.highlights).to eq([')', '"', '2', ']', '}'])
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'accepts modifiers with preceding space' do
|
27
|
-
inspect_source(cop, ['(a = 3) if b',
|
28
|
-
'a = "test" unless b',
|
29
|
-
'a = 42 while b',
|
30
|
-
'a = [1,2,3] until b'])
|
31
|
-
expect(cop.offenses).to be_empty
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'accepts elsif at beginning of line' do
|
35
|
-
inspect_source(cop, ["if RUBY_VERSION.between?('1.9.2', '2.0.0')",
|
36
|
-
" require 'testing/performance/ruby/yarv'",
|
37
|
-
'elsif RUBY_VERSION.between?("1.8.6", "1.9")',
|
38
|
-
" require 'testing/performance/ruby/mri'",
|
39
|
-
'end'])
|
40
|
-
expect(cop.highlights).to eq([])
|
41
|
-
end
|
42
|
-
|
43
|
-
it 'does not crash on ternary conditionals' do
|
44
|
-
inspect_source(cop, 'a ? b : c')
|
45
|
-
expect(cop.offenses).to be_empty
|
46
|
-
end
|
47
|
-
|
48
|
-
it 'auto-corrects missing space' do
|
49
|
-
new_source = autocorrect_source(cop, ['(a = 3)if a == 2',
|
50
|
-
'a = "test"if a == 2',
|
51
|
-
'a = 42unless a == 2',
|
52
|
-
'a = [1,2,3]unless a == 2',
|
53
|
-
'a = {:a => "b"}if a == 2',
|
54
|
-
'(a = 3)while b',
|
55
|
-
'a = "test"until b',
|
56
|
-
'a = 42while b',
|
57
|
-
'a = [1,2,3]until b',
|
58
|
-
'a = {:a => "b"}while b'])
|
59
|
-
expect(new_source).to eq(['(a = 3) if a == 2',
|
60
|
-
'a = "test" if a == 2',
|
61
|
-
'a = 42 unless a == 2',
|
62
|
-
'a = [1,2,3] unless a == 2',
|
63
|
-
'a = {:a => "b"} if a == 2',
|
64
|
-
'(a = 3) while b',
|
65
|
-
'a = "test" until b',
|
66
|
-
'a = 42 while b',
|
67
|
-
'a = [1,2,3] until b',
|
68
|
-
'a = {:a => "b"} while b'].join("\n"))
|
69
|
-
end
|
70
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::SpaceBeforeSemicolon do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
it 'registers an offense for space before semicolon' do
|
9
|
-
inspect_source(cop, 'x = 1 ; y = 2')
|
10
|
-
expect(cop.messages).to eq(
|
11
|
-
['Space found before semicolon.'])
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'does not register an offense for no space before semicolons' do
|
15
|
-
inspect_source(cop, 'x = 1; y = 2')
|
16
|
-
expect(cop.messages).to be_empty
|
17
|
-
end
|
18
|
-
|
19
|
-
it 'auto-corrects space before semicolon' do
|
20
|
-
new_source = autocorrect_source(cop, 'x = 1 ; y = 2')
|
21
|
-
expect(new_source).to eq('x = 1; y = 2')
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'handles more than one space before a semicolon' do
|
25
|
-
new_source = autocorrect_source(cop, 'x = 1 ; y = 2')
|
26
|
-
expect(new_source).to eq('x = 1; y = 2')
|
27
|
-
end
|
28
|
-
end
|
@@ -1,317 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe RuboCop::Cop::Style::SpaceInsideBlockBraces do
|
6
|
-
SUPPORTED_STYLES = %w(space no_space)
|
7
|
-
|
8
|
-
subject(:cop) { described_class.new(config) }
|
9
|
-
let(:config) do
|
10
|
-
merged = RuboCop::ConfigLoader
|
11
|
-
.default_configuration['Style/SpaceInsideBlockBraces']
|
12
|
-
.merge(cop_config)
|
13
|
-
RuboCop::Config.new('Style/Blocks' => { 'Enabled' => false },
|
14
|
-
'Style/SpaceInsideBlockBraces' => merged)
|
15
|
-
end
|
16
|
-
let(:cop_config) do
|
17
|
-
{
|
18
|
-
'EnforcedStyle' => 'space',
|
19
|
-
'SupportedStyles' => SUPPORTED_STYLES,
|
20
|
-
'SpaceBeforeBlockParameters' => true
|
21
|
-
}
|
22
|
-
end
|
23
|
-
|
24
|
-
context 'with space inside empty braces not allowed' do
|
25
|
-
let(:cop_config) { { 'EnforcedStyleForEmptyBraces' => 'no_space' } }
|
26
|
-
|
27
|
-
it 'accepts empty braces with no space inside' do
|
28
|
-
inspect_source(cop, 'each {}')
|
29
|
-
expect(cop.messages).to be_empty
|
30
|
-
end
|
31
|
-
|
32
|
-
it 'accepts empty braces with line break inside' do
|
33
|
-
inspect_source(cop, [' each {',
|
34
|
-
' }'])
|
35
|
-
expect(cop.messages).to be_empty
|
36
|
-
end
|
37
|
-
|
38
|
-
it 'accepts empty braces with comment and line break inside' do
|
39
|
-
inspect_source(cop, [' each { # Comment',
|
40
|
-
' }'])
|
41
|
-
expect(cop.messages).to be_empty
|
42
|
-
end
|
43
|
-
|
44
|
-
it 'registers an offense for empty braces with space inside' do
|
45
|
-
inspect_source(cop, 'each { }')
|
46
|
-
expect(cop.messages).to eq(['Space inside empty braces detected.'])
|
47
|
-
expect(cop.highlights).to eq([' '])
|
48
|
-
end
|
49
|
-
|
50
|
-
it 'auto-corrects unwanted space' do
|
51
|
-
new_source = autocorrect_source(cop, 'each { }')
|
52
|
-
expect(new_source).to eq('each {}')
|
53
|
-
end
|
54
|
-
|
55
|
-
it 'does not auto-correct when braces are not empty' do
|
56
|
-
old_source = <<-END
|
57
|
-
a {
|
58
|
-
b
|
59
|
-
}
|
60
|
-
END
|
61
|
-
new_source = autocorrect_source(cop, old_source)
|
62
|
-
expect(new_source).to eq(old_source)
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
context 'with space inside empty braces allowed' do
|
67
|
-
let(:cop_config) { { 'EnforcedStyleForEmptyBraces' => 'space' } }
|
68
|
-
|
69
|
-
it 'accepts empty braces with space inside' do
|
70
|
-
inspect_source(cop, 'each { }')
|
71
|
-
expect(cop.messages).to be_empty
|
72
|
-
end
|
73
|
-
|
74
|
-
it 'registers an offense for empty braces with no space inside' do
|
75
|
-
inspect_source(cop, 'each {}')
|
76
|
-
expect(cop.messages).to eq(['Space missing inside empty braces.'])
|
77
|
-
expect(cop.highlights).to eq(['{}'])
|
78
|
-
end
|
79
|
-
|
80
|
-
it 'auto-corrects missing space' do
|
81
|
-
new_source = autocorrect_source(cop, 'each {}')
|
82
|
-
expect(new_source).to eq('each { }')
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
context 'with invalid value for EnforcedStyleForEmptyBraces' do
|
87
|
-
let(:cop_config) { { 'EnforcedStyleForEmptyBraces' => 'unknown' } }
|
88
|
-
|
89
|
-
it 'fails with an error' do
|
90
|
-
expect { inspect_source(cop, 'each { }') }
|
91
|
-
.to raise_error('Unknown EnforcedStyleForEmptyBraces selected!')
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
it 'accepts braces surrounded by spaces' do
|
96
|
-
inspect_source(cop, 'each { puts }')
|
97
|
-
expect(cop.messages).to be_empty
|
98
|
-
expect(cop.highlights).to be_empty
|
99
|
-
end
|
100
|
-
|
101
|
-
it 'accepts left brace without outer space' do
|
102
|
-
inspect_source(cop, 'each{ puts }')
|
103
|
-
expect(cop.highlights).to be_empty
|
104
|
-
end
|
105
|
-
|
106
|
-
it 'registers an offense for left brace without inner space' do
|
107
|
-
inspect_source(cop, 'each {puts }')
|
108
|
-
expect(cop.messages).to eq(['Space missing inside {.'])
|
109
|
-
expect(cop.highlights).to eq(['p'])
|
110
|
-
end
|
111
|
-
|
112
|
-
it 'registers an offense for right brace without inner space' do
|
113
|
-
inspect_source(cop, 'each { puts}')
|
114
|
-
expect(cop.messages).to eq(['Space missing inside }.'])
|
115
|
-
expect(cop.highlights).to eq(['}'])
|
116
|
-
expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
|
117
|
-
end
|
118
|
-
|
119
|
-
it 'registers offenses for both braces without inner space' do
|
120
|
-
inspect_source(cop, ['a {}',
|
121
|
-
'b { }',
|
122
|
-
'each {puts}'])
|
123
|
-
expect(cop.messages).to eq(['Space inside empty braces detected.',
|
124
|
-
'Space missing inside {.',
|
125
|
-
'Space missing inside }.'])
|
126
|
-
expect(cop.highlights).to eq([' ', 'p', '}'])
|
127
|
-
|
128
|
-
# Both correct and incorrect code has been found in relation to
|
129
|
-
# EnforcedStyleForEmptyBraces, but that doesn't matter. EnforcedStyle can
|
130
|
-
# be changed to get rid of the EnforcedStyle offenses.
|
131
|
-
expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' =>
|
132
|
-
'no_space')
|
133
|
-
end
|
134
|
-
|
135
|
-
it 'auto-corrects missing space' do
|
136
|
-
new_source = autocorrect_source(cop, 'each {puts}')
|
137
|
-
expect(new_source).to eq('each { puts }')
|
138
|
-
end
|
139
|
-
|
140
|
-
context 'with passed in parameters' do
|
141
|
-
it 'accepts left brace with inner space' do
|
142
|
-
inspect_source(cop, 'each { |x| puts }')
|
143
|
-
expect(cop.messages).to be_empty
|
144
|
-
expect(cop.highlights).to be_empty
|
145
|
-
end
|
146
|
-
|
147
|
-
it 'registers an offense for left brace without inner space' do
|
148
|
-
inspect_source(cop, 'each {|x| puts }')
|
149
|
-
expect(cop.messages).to eq(['Space between { and | missing.'])
|
150
|
-
expect(cop.highlights).to eq(['{|'])
|
151
|
-
end
|
152
|
-
|
153
|
-
it 'accepts new lambda syntax' do
|
154
|
-
inspect_source(cop, '->(x) { x }')
|
155
|
-
expect(cop.messages).to be_empty
|
156
|
-
end
|
157
|
-
|
158
|
-
it 'auto-corrects missing space' do
|
159
|
-
new_source = autocorrect_source(cop, 'each {|x| puts }')
|
160
|
-
expect(new_source).to eq('each { |x| puts }')
|
161
|
-
end
|
162
|
-
|
163
|
-
context 'and Blocks cop enabled' do
|
164
|
-
let(:config) do
|
165
|
-
RuboCop::Config.new('Style/Blocks' => { 'Enabled' => true },
|
166
|
-
'Style/SpaceInsideBlockBraces' => cop_config)
|
167
|
-
end
|
168
|
-
|
169
|
-
it 'does auto-correction for single-line blocks' do
|
170
|
-
new_source = autocorrect_source(cop, 'each {|x| puts}')
|
171
|
-
expect(new_source).to eq('each { |x| puts }')
|
172
|
-
end
|
173
|
-
|
174
|
-
it 'does not do auto-correction for multi-line blocks' do
|
175
|
-
# {} will be changed to do..end by the Blocks cop, and then this cop is
|
176
|
-
# not relevant anymore.
|
177
|
-
old_source = ['each {|x|',
|
178
|
-
' puts',
|
179
|
-
'}']
|
180
|
-
new_source = autocorrect_source(cop, old_source)
|
181
|
-
expect(new_source).to eq(old_source.join("\n"))
|
182
|
-
end
|
183
|
-
end
|
184
|
-
|
185
|
-
context 'and space before block parameters not allowed' do
|
186
|
-
let(:cop_config) do
|
187
|
-
{
|
188
|
-
'EnforcedStyle' => 'space',
|
189
|
-
'SupportedStyles' => SUPPORTED_STYLES,
|
190
|
-
'SpaceBeforeBlockParameters' => false
|
191
|
-
}
|
192
|
-
end
|
193
|
-
|
194
|
-
it 'registers an offense for left brace with inner space' do
|
195
|
-
inspect_source(cop, 'each { |x| puts }')
|
196
|
-
expect(cop.messages).to eq(['Space between { and | detected.'])
|
197
|
-
expect(cop.highlights).to eq([' '])
|
198
|
-
end
|
199
|
-
|
200
|
-
it 'accepts new lambda syntax' do
|
201
|
-
inspect_source(cop, '->(x) { x }')
|
202
|
-
expect(cop.messages).to be_empty
|
203
|
-
end
|
204
|
-
|
205
|
-
it 'auto-corrects unwanted space' do
|
206
|
-
new_source = autocorrect_source(cop, 'each { |x| puts }')
|
207
|
-
expect(new_source).to eq('each {|x| puts }')
|
208
|
-
end
|
209
|
-
|
210
|
-
it 'accepts left brace without inner space' do
|
211
|
-
inspect_source(cop, 'each {|x| puts }')
|
212
|
-
expect(cop.messages).to be_empty
|
213
|
-
expect(cop.highlights).to be_empty
|
214
|
-
end
|
215
|
-
end
|
216
|
-
end
|
217
|
-
|
218
|
-
context 'configured with no_space' do
|
219
|
-
let(:cop_config) do
|
220
|
-
{
|
221
|
-
'EnforcedStyle' => 'no_space',
|
222
|
-
'SupportedStyles' => SUPPORTED_STYLES,
|
223
|
-
'SpaceBeforeBlockParameters' => true
|
224
|
-
}
|
225
|
-
end
|
226
|
-
|
227
|
-
it 'accepts braces without spaces inside' do
|
228
|
-
inspect_source(cop, 'each {puts}')
|
229
|
-
expect(cop.messages).to be_empty
|
230
|
-
expect(cop.highlights).to be_empty
|
231
|
-
end
|
232
|
-
|
233
|
-
it 'registers an offense for left brace with inner space' do
|
234
|
-
inspect_source(cop, 'each { puts}')
|
235
|
-
expect(cop.messages).to eq(['Space inside { detected.'])
|
236
|
-
expect(cop.highlights).to eq([' '])
|
237
|
-
expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
|
238
|
-
end
|
239
|
-
|
240
|
-
it 'registers an offense for right brace with inner space' do
|
241
|
-
inspect_source(cop, 'each {puts }')
|
242
|
-
expect(cop.messages).to eq(['Space inside } detected.'])
|
243
|
-
expect(cop.highlights).to eq([' '])
|
244
|
-
end
|
245
|
-
|
246
|
-
it 'registers offenses for both braces with inner space' do
|
247
|
-
inspect_source(cop, 'each { puts }')
|
248
|
-
expect(cop.messages).to eq(['Space inside { detected.',
|
249
|
-
'Space inside } detected.'])
|
250
|
-
expect(cop.highlights).to eq([' ', ' '])
|
251
|
-
expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' =>
|
252
|
-
'space')
|
253
|
-
end
|
254
|
-
|
255
|
-
it 'accepts left brace without outer space' do
|
256
|
-
inspect_source(cop, 'each {puts}')
|
257
|
-
expect(cop.highlights).to be_empty
|
258
|
-
end
|
259
|
-
|
260
|
-
it 'auto-corrects unwanted space' do
|
261
|
-
new_source = autocorrect_source(cop, 'each{ puts }')
|
262
|
-
expect(new_source).to eq('each{puts}')
|
263
|
-
end
|
264
|
-
|
265
|
-
context 'with passed in parameters' do
|
266
|
-
context 'and space before block parameters allowed' do
|
267
|
-
it 'accepts left brace with inner space' do
|
268
|
-
inspect_source(cop, 'each { |x| puts}')
|
269
|
-
expect(cop.messages).to eq([])
|
270
|
-
expect(cop.highlights).to eq([])
|
271
|
-
end
|
272
|
-
|
273
|
-
it 'registers an offense for left brace without inner space' do
|
274
|
-
inspect_source(cop, 'each {|x| puts}')
|
275
|
-
expect(cop.messages).to eq(['Space between { and | missing.'])
|
276
|
-
expect(cop.highlights).to eq(['{|'])
|
277
|
-
end
|
278
|
-
|
279
|
-
it 'accepts new lambda syntax' do
|
280
|
-
inspect_source(cop, '->(x) {x}')
|
281
|
-
expect(cop.messages).to be_empty
|
282
|
-
end
|
283
|
-
|
284
|
-
it 'auto-corrects missing space' do
|
285
|
-
new_source = autocorrect_source(cop, 'each {|x| puts}')
|
286
|
-
expect(new_source).to eq('each { |x| puts}')
|
287
|
-
end
|
288
|
-
end
|
289
|
-
|
290
|
-
context 'and space before block parameters not allowed' do
|
291
|
-
let(:cop_config) do
|
292
|
-
{
|
293
|
-
'EnforcedStyle' => 'no_space',
|
294
|
-
'SupportedStyles' => SUPPORTED_STYLES,
|
295
|
-
'SpaceBeforeBlockParameters' => false
|
296
|
-
}
|
297
|
-
end
|
298
|
-
|
299
|
-
it 'registers an offense for left brace with inner space' do
|
300
|
-
inspect_source(cop, 'each { |x| puts}')
|
301
|
-
expect(cop.messages).to eq(['Space between { and | detected.'])
|
302
|
-
expect(cop.highlights).to eq([' '])
|
303
|
-
end
|
304
|
-
|
305
|
-
it 'accepts new lambda syntax' do
|
306
|
-
inspect_source(cop, '->(x) {x}')
|
307
|
-
expect(cop.messages).to be_empty
|
308
|
-
end
|
309
|
-
|
310
|
-
it 'auto-corrects unwanted space' do
|
311
|
-
new_source = autocorrect_source(cop, 'each { |x| puts}')
|
312
|
-
expect(new_source).to eq('each {|x| puts}')
|
313
|
-
end
|
314
|
-
end
|
315
|
-
end
|
316
|
-
end
|
317
|
-
end
|