rubocop 0.8.3 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of rubocop might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.travis.yml +0 -4
- data/.yardopts +2 -0
- data/CHANGELOG.md +70 -1
- data/README.md +101 -11
- data/config/default.yml +10 -2
- data/config/enabled.yml +85 -11
- data/lib/rubocop.rb +97 -73
- data/lib/rubocop/cli.rb +177 -92
- data/lib/rubocop/config.rb +56 -11
- data/lib/rubocop/config_store.rb +2 -0
- data/lib/rubocop/cop/cop.rb +52 -8
- data/lib/rubocop/cop/lint/assignment_in_condition.rb +54 -0
- data/lib/rubocop/cop/lint/end_alignment.rb +180 -0
- data/lib/rubocop/cop/lint/end_in_method.rb +30 -0
- data/lib/rubocop/cop/lint/ensure_return.rb +22 -0
- data/lib/rubocop/cop/lint/eval.rb +22 -0
- data/lib/rubocop/cop/lint/handle_exceptions.rb +20 -0
- data/lib/rubocop/cop/lint/literal_in_condition.rb +63 -0
- data/lib/rubocop/cop/lint/loop.rb +29 -0
- data/lib/rubocop/cop/lint/rescue_exception.rb +29 -0
- data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +33 -0
- data/lib/rubocop/cop/lint/unreachable_code.rb +35 -0
- data/lib/rubocop/cop/lint/unused_local_variable.rb +32 -0
- data/lib/rubocop/cop/lint/void.rb +58 -0
- data/lib/rubocop/cop/offence.rb +112 -12
- data/lib/rubocop/cop/rails/validation.rb +34 -0
- data/lib/rubocop/cop/style/access_control.rb +58 -0
- data/lib/rubocop/cop/style/alias.rb +28 -0
- data/lib/rubocop/cop/style/align_parameters.rb +39 -0
- data/lib/rubocop/cop/style/and_or.rb +45 -0
- data/lib/rubocop/cop/style/ascii_comments.rb +21 -0
- data/lib/rubocop/cop/style/ascii_identifiers.rb +22 -0
- data/lib/rubocop/cop/style/attr.rb +20 -0
- data/lib/rubocop/cop/style/avoid_class_vars.rb +20 -0
- data/lib/rubocop/cop/style/avoid_for.rb +18 -0
- data/lib/rubocop/cop/style/avoid_global_vars.rb +65 -0
- data/lib/rubocop/cop/style/avoid_perl_backrefs.rb +21 -0
- data/lib/rubocop/cop/style/avoid_perlisms.rb +50 -0
- data/lib/rubocop/cop/style/begin_block.rb +18 -0
- data/lib/rubocop/cop/style/block_comments.rb +20 -0
- data/lib/rubocop/cop/style/block_nesting.rb +47 -0
- data/lib/rubocop/cop/style/blocks.rb +27 -0
- data/lib/rubocop/cop/style/case_equality.rb +22 -0
- data/lib/rubocop/cop/style/case_indentation.rb +28 -0
- data/lib/rubocop/cop/style/character_literal.rb +37 -0
- data/lib/rubocop/cop/style/class_and_module_camel_case.rb +33 -0
- data/lib/rubocop/cop/style/class_methods.rb +22 -0
- data/lib/rubocop/cop/style/collection_methods.rb +37 -0
- data/lib/rubocop/cop/style/colon_method_call.rb +29 -0
- data/lib/rubocop/cop/style/constant_name.rb +31 -0
- data/lib/rubocop/cop/style/def_parentheses.rb +70 -0
- data/lib/rubocop/cop/style/documentation.rb +58 -0
- data/lib/rubocop/cop/style/dot_position.rb +25 -0
- data/lib/rubocop/cop/style/empty_line_between_defs.rb +26 -0
- data/lib/rubocop/cop/style/empty_lines.rb +40 -0
- data/lib/rubocop/cop/style/empty_literal.rb +53 -0
- data/lib/rubocop/cop/style/encoding.rb +29 -0
- data/lib/rubocop/cop/style/end_block.rb +18 -0
- data/lib/rubocop/cop/style/end_of_line.rb +23 -0
- data/lib/rubocop/cop/style/favor_join.rb +29 -0
- data/lib/rubocop/cop/style/favor_modifier.rb +118 -0
- data/lib/rubocop/cop/style/favor_sprintf.rb +28 -0
- data/lib/rubocop/cop/style/favor_unless_over_negated_if.rb +54 -0
- data/lib/rubocop/cop/style/hash_syntax.rb +47 -0
- data/lib/rubocop/cop/style/if_then_else.rb +80 -0
- data/lib/rubocop/cop/style/lambda.rb +47 -0
- data/lib/rubocop/cop/style/leading_comment_space.rb +25 -0
- data/lib/rubocop/cop/style/line_continuation.rb +26 -0
- data/lib/rubocop/cop/style/line_length.rb +30 -0
- data/lib/rubocop/cop/style/method_and_variable_snake_case.rb +61 -0
- data/lib/rubocop/cop/style/method_call_parentheses.rb +22 -0
- data/lib/rubocop/cop/style/method_length.rb +57 -0
- data/lib/rubocop/cop/style/not.rb +24 -0
- data/lib/rubocop/cop/style/numeric_literals.rb +25 -0
- data/lib/rubocop/cop/{op_method.rb → style/op_method.rb} +4 -3
- data/lib/rubocop/cop/style/parameter_lists.rb +42 -0
- data/lib/rubocop/cop/style/parentheses_around_condition.rb +42 -0
- data/lib/rubocop/cop/style/proc.rb +30 -0
- data/lib/rubocop/cop/style/reduce_arguments.rb +34 -0
- data/lib/rubocop/cop/style/regexp_literal.rb +39 -0
- data/lib/rubocop/cop/style/rescue_modifier.rb +55 -0
- data/lib/rubocop/cop/style/semicolon.rb +51 -0
- data/lib/rubocop/cop/style/single_line_methods.rb +48 -0
- data/lib/rubocop/cop/style/space_after_comma_etc.rb +69 -0
- data/lib/rubocop/cop/style/space_after_control_keyword.rb +32 -0
- data/lib/rubocop/cop/style/string_literals.rb +36 -0
- data/lib/rubocop/cop/style/surrounding_space.rb +314 -0
- data/lib/rubocop/cop/style/symbol_array.rb +31 -0
- data/lib/rubocop/cop/style/symbol_name.rb +27 -0
- data/lib/rubocop/cop/style/tab.rb +25 -0
- data/lib/rubocop/cop/style/ternary_operator.rb +49 -0
- data/lib/rubocop/cop/style/trailing_whitespace.rb +24 -0
- data/lib/rubocop/cop/style/trivial_accessors.rb +32 -0
- data/lib/rubocop/cop/style/unless_else.rb +26 -0
- data/lib/rubocop/cop/style/variable_interpolation.rb +32 -0
- data/lib/rubocop/cop/style/when_then.rb +25 -0
- data/lib/rubocop/cop/style/while_until_do.rb +45 -0
- data/lib/rubocop/cop/style/word_array.rb +44 -0
- data/lib/rubocop/cop/util.rb +1 -0
- data/lib/rubocop/cop/variable_inspector.rb +280 -0
- data/lib/rubocop/formatter/base_formatter.rb +119 -0
- data/lib/rubocop/formatter/clang_style_formatter.rb +21 -0
- data/lib/rubocop/formatter/emacs_style_formatter.rb +17 -0
- data/lib/rubocop/formatter/formatter_set.rb +77 -0
- data/lib/rubocop/formatter/json_formatter.rb +76 -0
- data/lib/rubocop/formatter/progress_formatter.rb +63 -0
- data/lib/rubocop/formatter/simple_text_formatter.rb +62 -0
- data/lib/rubocop/version.rb +15 -1
- data/rubocop.gemspec +1 -2
- data/spec/.rubocop.yml +5 -0
- data/spec/project_spec.rb +4 -7
- data/spec/rubocop/cli_spec.rb +383 -146
- data/spec/rubocop/config_spec.rb +61 -0
- data/spec/rubocop/config_store_spec.rb +2 -2
- data/spec/rubocop/cops/cop_spec.rb +14 -7
- data/spec/rubocop/cops/lint/assignment_in_condition_spec.rb +111 -0
- data/spec/rubocop/cops/lint/end_alignment_spec.rb +426 -0
- data/spec/rubocop/cops/lint/end_in_method_spec.rb +35 -0
- data/spec/rubocop/cops/lint/ensure_return_spec.rb +37 -0
- data/spec/rubocop/cops/lint/eval_spec.rb +41 -0
- data/spec/rubocop/cops/lint/handle_exceptions_spec.rb +36 -0
- data/spec/rubocop/cops/lint/literal_in_condition_spec.rb +35 -0
- data/spec/rubocop/cops/lint/loop_spec.rb +33 -0
- data/spec/rubocop/cops/lint/rescue_exception_spec.rb +127 -0
- data/spec/rubocop/cops/lint/shadowing_outer_local_variable_spec.rb +180 -0
- data/spec/rubocop/cops/lint/unreachable_code_spec.rb +69 -0
- data/spec/rubocop/cops/lint/unused_local_variable_spec.rb +484 -0
- data/spec/rubocop/cops/lint/void_spec.rb +63 -0
- data/spec/rubocop/cops/offence_spec.rb +107 -10
- data/spec/rubocop/cops/rails/validation_spec.rb +27 -0
- data/spec/rubocop/cops/style/access_control_spec.rb +142 -0
- data/spec/rubocop/cops/style/alias_spec.rb +47 -0
- data/spec/rubocop/cops/style/align_parameters_spec.rb +199 -0
- data/spec/rubocop/cops/style/and_or_spec.rb +39 -0
- data/spec/rubocop/cops/style/ascii_comments_spec.rb +28 -0
- data/spec/rubocop/cops/style/ascii_identifiers_spec.rb +28 -0
- data/spec/rubocop/cops/style/attr_spec.rb +20 -0
- data/spec/rubocop/cops/style/avoid_class_vars_spec.rb +27 -0
- data/spec/rubocop/cops/style/avoid_for_spec.rb +37 -0
- data/spec/rubocop/cops/style/avoid_global_vars_spec.rb +34 -0
- data/spec/rubocop/cops/style/avoid_perl_backrefs_spec.rb +20 -0
- data/spec/rubocop/cops/style/avoid_perlisms_spec.rb +47 -0
- data/spec/rubocop/cops/style/begin_block_spec.rb +19 -0
- data/spec/rubocop/cops/style/block_comments_spec.rb +27 -0
- data/spec/rubocop/cops/style/block_nesting_spec.rb +159 -0
- data/spec/rubocop/cops/style/blocks_spec.rb +35 -0
- data/spec/rubocop/cops/style/case_equality_spec.rb +18 -0
- data/spec/rubocop/cops/style/case_indentation_spec.rb +88 -0
- data/spec/rubocop/cops/style/character_literal_spec.rb +28 -0
- data/spec/rubocop/cops/style/class_and_module_camel_case_spec.rb +46 -0
- data/spec/rubocop/cops/style/class_methods_spec.rb +51 -0
- data/spec/rubocop/cops/style/collection_methods_spec.rb +46 -0
- data/spec/rubocop/cops/style/colon_method_call_spec.rb +55 -0
- data/spec/rubocop/cops/style/constant_name_spec.rb +56 -0
- data/spec/rubocop/cops/style/def_with_parentheses_spec.rb +40 -0
- data/spec/rubocop/cops/style/def_without_parentheses_spec.rb +34 -0
- data/spec/rubocop/cops/style/documentation_spec.rb +79 -0
- data/spec/rubocop/cops/style/dot_position_spec.rb +30 -0
- data/spec/rubocop/cops/style/empty_line_between_defs_spec.rb +85 -0
- data/spec/rubocop/cops/style/empty_lines_spec.rb +40 -0
- data/spec/rubocop/cops/style/empty_literal_spec.rb +91 -0
- data/spec/rubocop/cops/style/encoding_spec.rb +49 -0
- data/spec/rubocop/cops/style/end_block_spec.rb +19 -0
- data/spec/rubocop/cops/style/end_of_line_spec.rb +25 -0
- data/spec/rubocop/cops/style/favor_join_spec.rb +37 -0
- data/spec/rubocop/cops/style/favor_modifier_spec.rb +160 -0
- data/spec/rubocop/cops/style/favor_sprintf_spec.rb +53 -0
- data/spec/rubocop/cops/style/favor_unless_over_negated_if_spec.rb +64 -0
- data/spec/rubocop/cops/style/favor_until_over_negated_while_spec.rb +47 -0
- data/spec/rubocop/cops/style/hash_syntax_spec.rb +51 -0
- data/spec/rubocop/cops/style/if_with_semicolon_spec.rb +25 -0
- data/spec/rubocop/cops/style/lambda_spec.rb +45 -0
- data/spec/rubocop/cops/style/leading_comment_space_spec.rb +65 -0
- data/spec/rubocop/cops/style/line_continuation_spec.rb +26 -0
- data/spec/rubocop/cops/style/line_length_spec.rb +25 -0
- data/spec/rubocop/cops/style/method_and_variable_snake_case_spec.rb +95 -0
- data/spec/rubocop/cops/style/method_call_parentheses_spec.rb +25 -0
- data/spec/rubocop/cops/style/method_length_spec.rb +151 -0
- data/spec/rubocop/cops/style/multiline_if_then_spec.rb +81 -0
- data/spec/rubocop/cops/style/not_spec.rb +28 -0
- data/spec/rubocop/cops/style/numeric_literals_spec.rb +51 -0
- data/spec/rubocop/cops/style/one_line_conditional_spec.rb +18 -0
- data/spec/rubocop/cops/style/op_method_spec.rb +80 -0
- data/spec/rubocop/cops/style/parameter_lists_spec.rb +49 -0
- data/spec/rubocop/cops/style/parentheses_around_condition_spec.rb +59 -0
- data/spec/rubocop/cops/style/proc_spec.rb +28 -0
- data/spec/rubocop/cops/style/reduce_arguments_spec.rb +59 -0
- data/spec/rubocop/cops/style/regexp_literal_spec.rb +83 -0
- data/spec/rubocop/cops/style/rescue_modifier_spec.rb +122 -0
- data/spec/rubocop/cops/style/semicolon_spec.rb +95 -0
- data/spec/rubocop/cops/style/single_line_methods_spec.rb +54 -0
- data/spec/rubocop/cops/style/space_after_colon_spec.rb +29 -0
- data/spec/rubocop/cops/style/space_after_comma_spec.rb +31 -0
- data/spec/rubocop/cops/style/space_after_control_keyword_spec.rb +69 -0
- data/spec/rubocop/cops/style/space_after_semicolon_spec.rb +24 -0
- data/spec/rubocop/cops/style/space_around_braces_spec.rb +49 -0
- data/spec/rubocop/cops/style/space_around_equals_in_default_parameter_spec.rb +34 -0
- data/spec/rubocop/cops/style/space_around_operators_spec.rb +216 -0
- data/spec/rubocop/cops/style/space_inside_brackets_spec.rb +51 -0
- data/spec/rubocop/cops/style/space_inside_hash_literal_braces_spec.rb +99 -0
- data/spec/rubocop/cops/style/space_inside_parens_spec.rb +33 -0
- data/spec/rubocop/cops/style/string_literals_spec.rb +62 -0
- data/spec/rubocop/cops/style/symbol_array_spec.rb +45 -0
- data/spec/rubocop/cops/style/symbol_name_spec.rb +122 -0
- data/spec/rubocop/cops/style/tab_spec.rb +23 -0
- data/spec/rubocop/cops/style/ternary_operator_spec.rb +42 -0
- data/spec/rubocop/cops/style/trailing_whitespace_spec.rb +29 -0
- data/spec/rubocop/cops/style/trivial_accessors_spec.rb +338 -0
- data/spec/rubocop/cops/style/unless_else_spec.rb +31 -0
- data/spec/rubocop/cops/style/variable_interpolation_spec.rb +53 -0
- data/spec/rubocop/cops/style/when_then_spec.rb +40 -0
- data/spec/rubocop/cops/style/while_until_do_spec.rb +47 -0
- data/spec/rubocop/cops/style/word_array_spec.rb +61 -0
- data/spec/rubocop/cops/variable_inspector_spec.rb +374 -0
- data/spec/rubocop/formatter/base_formatter_spec.rb +190 -0
- data/spec/rubocop/formatter/clang_style_formatter_spec.rb +70 -0
- data/spec/rubocop/formatter/emacs_style_formatter_spec.rb +32 -0
- data/spec/rubocop/formatter/formatter_set_spec.rb +132 -0
- data/spec/rubocop/formatter/json_formatter_spec.rb +142 -0
- data/spec/rubocop/formatter/progress_formatter_spec.rb +196 -0
- data/spec/rubocop/formatter/simple_text_formatter_spec.rb +74 -0
- data/spec/spec_helper.rb +23 -8
- data/spec/support/mri_syntax_checker.rb +69 -0
- data/spec/support/shared_examples.rb +33 -0
- metadata +315 -243
- data/lib/rubocop/cop/access_control.rb +0 -41
- data/lib/rubocop/cop/alias.rb +0 -17
- data/lib/rubocop/cop/align_parameters.rb +0 -37
- data/lib/rubocop/cop/and_or.rb +0 -36
- data/lib/rubocop/cop/ascii_comments.rb +0 -17
- data/lib/rubocop/cop/ascii_identifiers.rb +0 -19
- data/lib/rubocop/cop/avoid_class_vars.rb +0 -15
- data/lib/rubocop/cop/avoid_for.rb +0 -17
- data/lib/rubocop/cop/avoid_global_vars.rb +0 -61
- data/lib/rubocop/cop/avoid_perl_backrefs.rb +0 -17
- data/lib/rubocop/cop/avoid_perlisms.rb +0 -47
- data/lib/rubocop/cop/block_comments.rb +0 -17
- data/lib/rubocop/cop/block_nesting.rb +0 -35
- data/lib/rubocop/cop/blocks.rb +0 -23
- data/lib/rubocop/cop/case_indentation.rb +0 -22
- data/lib/rubocop/cop/class_and_module_camel_case.rb +0 -29
- data/lib/rubocop/cop/class_methods.rb +0 -15
- data/lib/rubocop/cop/collection_methods.rb +0 -29
- data/lib/rubocop/cop/colon_method_call.rb +0 -20
- data/lib/rubocop/cop/constant_name.rb +0 -24
- data/lib/rubocop/cop/def_parentheses.rb +0 -62
- data/lib/rubocop/cop/empty_line_between_defs.rb +0 -22
- data/lib/rubocop/cop/empty_lines.rb +0 -34
- data/lib/rubocop/cop/empty_literal.rb +0 -49
- data/lib/rubocop/cop/encoding.rb +0 -19
- data/lib/rubocop/cop/end_of_line.rb +0 -15
- data/lib/rubocop/cop/ensure_return.rb +0 -19
- data/lib/rubocop/cop/eval.rb +0 -19
- data/lib/rubocop/cop/favor_join.rb +0 -22
- data/lib/rubocop/cop/favor_modifier.rb +0 -92
- data/lib/rubocop/cop/favor_percent_r.rb +0 -19
- data/lib/rubocop/cop/favor_sprintf.rb +0 -21
- data/lib/rubocop/cop/favor_unless_over_negated_if.rb +0 -49
- data/lib/rubocop/cop/handle_exceptions.rb +0 -17
- data/lib/rubocop/cop/hash_syntax.rb +0 -41
- data/lib/rubocop/cop/if_then_else.rb +0 -75
- data/lib/rubocop/cop/lambda.rb +0 -42
- data/lib/rubocop/cop/leading_comment_space.rb +0 -19
- data/lib/rubocop/cop/line_continuation.rb +0 -15
- data/lib/rubocop/cop/line_length.rb +0 -23
- data/lib/rubocop/cop/loop.rb +0 -33
- data/lib/rubocop/cop/method_and_variable_snake_case.rb +0 -55
- data/lib/rubocop/cop/method_length.rb +0 -52
- data/lib/rubocop/cop/not.rb +0 -21
- data/lib/rubocop/cop/numeric_literals.rb +0 -21
- data/lib/rubocop/cop/parameter_lists.rb +0 -23
- data/lib/rubocop/cop/parentheses_around_condition.rb +0 -40
- data/lib/rubocop/cop/percent_r.rb +0 -19
- data/lib/rubocop/cop/proc.rb +0 -26
- data/lib/rubocop/cop/reduce_arguments.rb +0 -29
- data/lib/rubocop/cop/rescue_exception.rb +0 -26
- data/lib/rubocop/cop/rescue_modifier.rb +0 -15
- data/lib/rubocop/cop/semicolon.rb +0 -31
- data/lib/rubocop/cop/single_line_methods.rb +0 -44
- data/lib/rubocop/cop/space_after_comma_etc.rb +0 -62
- data/lib/rubocop/cop/space_after_control_keyword.rb +0 -29
- data/lib/rubocop/cop/string_literals.rb +0 -25
- data/lib/rubocop/cop/surrounding_space.rb +0 -285
- data/lib/rubocop/cop/symbol_array.rb +0 -31
- data/lib/rubocop/cop/symbol_name.rb +0 -23
- data/lib/rubocop/cop/syntax.rb +0 -49
- data/lib/rubocop/cop/tab.rb +0 -15
- data/lib/rubocop/cop/ternary_operator.rb +0 -43
- data/lib/rubocop/cop/trailing_whitespace.rb +0 -15
- data/lib/rubocop/cop/trivial_accessors.rb +0 -26
- data/lib/rubocop/cop/unless_else.rb +0 -23
- data/lib/rubocop/cop/variable_interpolation.rb +0 -29
- data/lib/rubocop/cop/when_then.rb +0 -17
- data/lib/rubocop/cop/word_array.rb +0 -37
- data/lib/rubocop/report/emacs_style.rb +0 -17
- data/lib/rubocop/report/plain_text.rb +0 -18
- data/lib/rubocop/report/report.rb +0 -44
- data/spec/rubocop/cops/access_control_spec.rb +0 -129
- data/spec/rubocop/cops/alias_spec.rb +0 -39
- data/spec/rubocop/cops/align_parameters_spec.rb +0 -197
- data/spec/rubocop/cops/and_or_spec.rb +0 -37
- data/spec/rubocop/cops/ascii_comments_spec.rb +0 -26
- data/spec/rubocop/cops/ascii_identifiers_spec.rb +0 -26
- data/spec/rubocop/cops/avoid_class_vars_spec.rb +0 -25
- data/spec/rubocop/cops/avoid_for_spec.rb +0 -35
- data/spec/rubocop/cops/avoid_global_vars_spec.rb +0 -32
- data/spec/rubocop/cops/avoid_perl_backrefs_spec.rb +0 -18
- data/spec/rubocop/cops/avoid_perlisms_spec.rb +0 -44
- data/spec/rubocop/cops/block_comments_spec.rb +0 -25
- data/spec/rubocop/cops/block_nesting_spec.rb +0 -148
- data/spec/rubocop/cops/blocks_spec.rb +0 -33
- data/spec/rubocop/cops/case_indentation_spec.rb +0 -86
- data/spec/rubocop/cops/class_and_module_camel_case_spec.rb +0 -44
- data/spec/rubocop/cops/class_methods_spec.rb +0 -49
- data/spec/rubocop/cops/collection_methods_spec.rb +0 -44
- data/spec/rubocop/cops/colon_method_call_spec.rb +0 -53
- data/spec/rubocop/cops/constant_name_spec.rb +0 -42
- data/spec/rubocop/cops/def_with_parentheses_spec.rb +0 -38
- data/spec/rubocop/cops/def_without_parentheses_spec.rb +0 -32
- data/spec/rubocop/cops/empty_line_between_defs_spec.rb +0 -83
- data/spec/rubocop/cops/empty_lines_spec.rb +0 -38
- data/spec/rubocop/cops/empty_literal_spec.rb +0 -90
- data/spec/rubocop/cops/encoding_spec.rb +0 -47
- data/spec/rubocop/cops/end_of_line_spec.rb +0 -23
- data/spec/rubocop/cops/ensure_return_spec.rb +0 -35
- data/spec/rubocop/cops/eval_spec.rb +0 -39
- data/spec/rubocop/cops/favor_join_spec.rb +0 -35
- data/spec/rubocop/cops/favor_modifier_spec.rb +0 -146
- data/spec/rubocop/cops/favor_percent_r_spec.rb +0 -29
- data/spec/rubocop/cops/favor_sprintf_spec.rb +0 -51
- data/spec/rubocop/cops/favor_unless_over_negated_if_spec.rb +0 -62
- data/spec/rubocop/cops/favor_until_over_negated_while_spec.rb +0 -45
- data/spec/rubocop/cops/handle_exceptions_spec.rb +0 -34
- data/spec/rubocop/cops/hash_syntax_spec.rb +0 -49
- data/spec/rubocop/cops/if_with_semicolon_spec.rb +0 -23
- data/spec/rubocop/cops/lambda_spec.rb +0 -43
- data/spec/rubocop/cops/leading_comment_space_spec.rb +0 -54
- data/spec/rubocop/cops/line_continuation_spec.rb +0 -24
- data/spec/rubocop/cops/line_length_spec.rb +0 -23
- data/spec/rubocop/cops/loop_spec.rb +0 -31
- data/spec/rubocop/cops/method_and_variable_snake_case_spec.rb +0 -93
- data/spec/rubocop/cops/method_length_spec.rb +0 -147
- data/spec/rubocop/cops/multiline_if_then_spec.rb +0 -79
- data/spec/rubocop/cops/not_spec.rb +0 -26
- data/spec/rubocop/cops/numeric_literals_spec.rb +0 -49
- data/spec/rubocop/cops/one_line_conditional_spec.rb +0 -16
- data/spec/rubocop/cops/op_method_spec.rb +0 -78
- data/spec/rubocop/cops/parameter_lists_spec.rb +0 -24
- data/spec/rubocop/cops/parentheses_around_condition_spec.rb +0 -61
- data/spec/rubocop/cops/percent_r_spec.rb +0 -29
- data/spec/rubocop/cops/proc_spec.rb +0 -26
- data/spec/rubocop/cops/reduce_arguments_spec.rb +0 -57
- data/spec/rubocop/cops/rescue_exception_spec.rb +0 -125
- data/spec/rubocop/cops/rescue_modifier_spec.rb +0 -37
- data/spec/rubocop/cops/semicolon_spec.rb +0 -88
- data/spec/rubocop/cops/single_line_methods_spec.rb +0 -50
- data/spec/rubocop/cops/space_after_colon_spec.rb +0 -27
- data/spec/rubocop/cops/space_after_comma_spec.rb +0 -29
- data/spec/rubocop/cops/space_after_control_keyword_spec.rb +0 -67
- data/spec/rubocop/cops/space_after_semicolon_spec.rb +0 -22
- data/spec/rubocop/cops/space_around_braces_spec.rb +0 -47
- data/spec/rubocop/cops/space_around_equals_in_default_parameter_spec.rb +0 -32
- data/spec/rubocop/cops/space_around_operators_spec.rb +0 -209
- data/spec/rubocop/cops/space_inside_brackets_spec.rb +0 -49
- data/spec/rubocop/cops/space_inside_hash_literal_braces_spec.rb +0 -86
- data/spec/rubocop/cops/space_inside_parens_spec.rb +0 -31
- data/spec/rubocop/cops/string_literals_spec.rb +0 -58
- data/spec/rubocop/cops/symbol_array_spec.rb +0 -41
- data/spec/rubocop/cops/symbol_name_spec.rb +0 -119
- data/spec/rubocop/cops/syntax_spec.rb +0 -41
- data/spec/rubocop/cops/tab_spec.rb +0 -21
- data/spec/rubocop/cops/ternary_operator_spec.rb +0 -40
- data/spec/rubocop/cops/trailing_whitespace_spec.rb +0 -27
- data/spec/rubocop/cops/trivial_accessors_spec.rb +0 -337
- data/spec/rubocop/cops/unless_else_spec.rb +0 -29
- data/spec/rubocop/cops/variable_interpolation_spec.rb +0 -49
- data/spec/rubocop/cops/when_then_spec.rb +0 -38
- data/spec/rubocop/cops/word_array_spec.rb +0 -47
- data/spec/rubocop/reports/emacs_style_spec.rb +0 -25
- data/spec/rubocop/reports/report_spec.rb +0 -29
@@ -1,31 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Rubocop
|
4
|
-
module Cop
|
5
|
-
class SymbolArray < Cop
|
6
|
-
MSG = 'Use %i or %I for array of symbols.'
|
7
|
-
|
8
|
-
def inspect(source, tokens, ast, comments)
|
9
|
-
# %i and %I were introduced in Ruby 2.0
|
10
|
-
unless RUBY_VERSION < '2.0.0'
|
11
|
-
on_node(:array, ast) do |s|
|
12
|
-
next unless s.loc.begin && s.loc.begin.source == '['
|
13
|
-
|
14
|
-
array_elems = s.children
|
15
|
-
|
16
|
-
# no need to check empty arrays
|
17
|
-
next unless array_elems && array_elems.size > 1
|
18
|
-
|
19
|
-
symbol_array = array_elems.all? { |e| e.type == :sym }
|
20
|
-
|
21
|
-
if symbol_array
|
22
|
-
add_offence(:convention,
|
23
|
-
s.loc.line,
|
24
|
-
MSG)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Rubocop
|
4
|
-
module Cop
|
5
|
-
class SymbolName < Cop
|
6
|
-
MSG = 'Use snake_case for symbols.'
|
7
|
-
SNAKE_CASE = /^[\da-z_]+[!?=]?$/
|
8
|
-
CAMEL_CASE = /^[A-Z][A-Za-z\d]*$/
|
9
|
-
|
10
|
-
def allow_camel_case?
|
11
|
-
self.class.config['AllowCamelCase']
|
12
|
-
end
|
13
|
-
|
14
|
-
def on_sym(node)
|
15
|
-
sym_name = node.to_a[0]
|
16
|
-
return unless sym_name =~ /^[a-zA-Z]/
|
17
|
-
return if sym_name =~ SNAKE_CASE
|
18
|
-
return if allow_camel_case? && sym_name =~ CAMEL_CASE
|
19
|
-
add_offence(:convention, node.loc.line, MSG)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
data/lib/rubocop/cop/syntax.rb
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'open3'
|
4
|
-
|
5
|
-
module Rubocop
|
6
|
-
module Cop
|
7
|
-
class Syntax < Cop
|
8
|
-
def inspect_file(file)
|
9
|
-
# Starting JRuby processes would be extremely slow
|
10
|
-
# We need to check if rbx returns nice warning messages
|
11
|
-
return unless RUBY_ENGINE == 'ruby'
|
12
|
-
|
13
|
-
stderr = nil
|
14
|
-
|
15
|
-
# it's extremely important to run the syntax check in a
|
16
|
-
# clean environment - otherwise it will be extremely slow
|
17
|
-
if defined? Bundler
|
18
|
-
Bundler.with_clean_env do
|
19
|
-
_, stderr, _ = Open3.capture3("ruby -wc #{file}")
|
20
|
-
end
|
21
|
-
else
|
22
|
-
_, stderr, _ = Open3.capture3("ruby -wc #{file}")
|
23
|
-
end
|
24
|
-
|
25
|
-
stderr.each_line do |line|
|
26
|
-
# discard lines that are not containing relevant info
|
27
|
-
if line =~ /.+:(\d+): (.+)/
|
28
|
-
# Assignment to unused variables beginning with underscore
|
29
|
-
# is reported by Ruby 1.9, but not 2.0. Make 1.9 behave
|
30
|
-
# like 2.0.
|
31
|
-
unless line =~ /assigned but unused variable - _\w+/
|
32
|
-
line_no, severity, message = process_line(line)
|
33
|
-
add_offence(severity, line_no, message)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
def process_line(line)
|
40
|
-
line_no, message = line.match(/.+:(\d+): (.+)/).captures
|
41
|
-
if message.start_with?('warning: ')
|
42
|
-
[line_no.to_i, :warning, message.sub(/warning: /, '').capitalize]
|
43
|
-
else
|
44
|
-
[line_no.to_i, :error, message.capitalize]
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
data/lib/rubocop/cop/tab.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Rubocop
|
4
|
-
module Cop
|
5
|
-
class Tab < Cop
|
6
|
-
MSG = 'Tab detected.'
|
7
|
-
|
8
|
-
def inspect(source, tokens, ast, comments)
|
9
|
-
source.each_with_index do |line, index|
|
10
|
-
add_offence(:convention, index + 1, MSG) if line =~ /^ *\t/
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Rubocop
|
4
|
-
module Cop
|
5
|
-
class MultilineTernaryOperator < Cop
|
6
|
-
MSG =
|
7
|
-
'Avoid multi-line ?: (the ternary operator); use if/unless instead.'
|
8
|
-
|
9
|
-
def on_if(node)
|
10
|
-
loc = node.loc
|
11
|
-
|
12
|
-
# discard non-ternary ops
|
13
|
-
return unless loc.respond_to?(:question)
|
14
|
-
|
15
|
-
add_offence(:convention, loc.line, MSG) if loc.line != loc.colon.line
|
16
|
-
|
17
|
-
super
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
class NestedTernaryOperator < Cop
|
22
|
-
MSG = 'Ternary operators must not be nested. Prefer if/else ' +
|
23
|
-
'constructs instead.'
|
24
|
-
|
25
|
-
def on_if(node)
|
26
|
-
loc = node.loc
|
27
|
-
|
28
|
-
# discard non-ternary ops
|
29
|
-
return unless loc.respond_to?(:question)
|
30
|
-
|
31
|
-
node.children.each do |child|
|
32
|
-
on_node(:if, child) do |c|
|
33
|
-
if c.loc.respond_to?(:question)
|
34
|
-
add_offence(:convention, c.loc.line, MSG)
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
super
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Rubocop
|
4
|
-
module Cop
|
5
|
-
class TrailingWhitespace < Cop
|
6
|
-
MSG = 'Trailing whitespace detected.'
|
7
|
-
|
8
|
-
def inspect(source, tokens, ast, comments)
|
9
|
-
source.each_with_index do |line, index|
|
10
|
-
add_offence(:convention, index + 1, MSG) if line =~ /.*[ \t]+$/
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Rubocop
|
4
|
-
module Cop
|
5
|
-
class TrivialAccessors < Cop
|
6
|
-
MSG = 'Use attr_%s to define trivial %s methods.'
|
7
|
-
|
8
|
-
def on_def(node)
|
9
|
-
method_name, args, body = *node
|
10
|
-
|
11
|
-
kind = if body.type == :ivar
|
12
|
-
'reader'
|
13
|
-
elsif args.children.size == 1 && body.type == :ivasgn &&
|
14
|
-
body.children[1].type == :lvar && method_name != :initialize
|
15
|
-
'writer'
|
16
|
-
end
|
17
|
-
if kind
|
18
|
-
add_offence(:convention, node.loc.keyword.line,
|
19
|
-
sprintf(MSG, kind, kind))
|
20
|
-
end
|
21
|
-
|
22
|
-
super
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Rubocop
|
4
|
-
module Cop
|
5
|
-
class UnlessElse < Cop
|
6
|
-
MSG = 'Never use unless with else. Rewrite these with the ' +
|
7
|
-
'positive case first.'
|
8
|
-
|
9
|
-
def on_if(node)
|
10
|
-
loc = node.loc
|
11
|
-
|
12
|
-
# discard ternary ops and modifier if/unless nodes
|
13
|
-
return unless loc.respond_to?(:keyword) && loc.respond_to?(:else)
|
14
|
-
|
15
|
-
if loc.keyword.source == 'unless' && loc.else
|
16
|
-
add_offence(:convention, loc.line, MSG)
|
17
|
-
end
|
18
|
-
|
19
|
-
super
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Rubocop
|
4
|
-
module Cop
|
5
|
-
class VariableInterpolation < Cop
|
6
|
-
MSG = 'Replace interpolated var %s with expression #{%s}.'
|
7
|
-
|
8
|
-
def on_dstr(node)
|
9
|
-
var_nodes(node.children).each do |v|
|
10
|
-
var = (v.type == :nth_ref ? '$' : '') + v.to_a[0].to_s
|
11
|
-
|
12
|
-
if node.loc.expression.source.include?("##{var}")
|
13
|
-
add_offence(:convention,
|
14
|
-
v.loc.line,
|
15
|
-
sprintf(MSG, var, var))
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
super
|
20
|
-
end
|
21
|
-
|
22
|
-
private
|
23
|
-
|
24
|
-
def var_nodes(nodes)
|
25
|
-
nodes.select { |n| [:ivar, :cvar, :gvar, :nth_ref].include?(n.type) }
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Rubocop
|
4
|
-
module Cop
|
5
|
-
class WhenThen < Cop
|
6
|
-
MSG = 'Never use "when x;". Use "when x then" instead.'
|
7
|
-
|
8
|
-
def on_when(node)
|
9
|
-
if node.loc.begin && node.loc.begin.source == ';'
|
10
|
-
add_offence(:convention, node.loc.line, MSG)
|
11
|
-
end
|
12
|
-
|
13
|
-
super
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Rubocop
|
4
|
-
module Cop
|
5
|
-
class WordArray < Cop
|
6
|
-
MSG = 'Use %w or %W for array of words.'
|
7
|
-
|
8
|
-
def on_array(node)
|
9
|
-
return unless node.loc.begin && node.loc.begin.source == '['
|
10
|
-
|
11
|
-
array_elems = node.children
|
12
|
-
|
13
|
-
# no need to check empty arrays
|
14
|
-
return unless array_elems && array_elems.size > 1
|
15
|
-
|
16
|
-
string_array = array_elems.all? { |e| e.type == :str }
|
17
|
-
|
18
|
-
if string_array && !complex_content?(array_elems)
|
19
|
-
add_offence(:convention, node.loc.line, MSG)
|
20
|
-
end
|
21
|
-
|
22
|
-
super
|
23
|
-
end
|
24
|
-
|
25
|
-
private
|
26
|
-
|
27
|
-
def complex_content?(arr_sexp)
|
28
|
-
arr_sexp.each do |s|
|
29
|
-
str_content = Util.strip_quotes(s.loc.expression.source)
|
30
|
-
return true unless str_content =~ /\A[\w-]+\z/
|
31
|
-
end
|
32
|
-
|
33
|
-
false
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Rubocop
|
4
|
-
module Report
|
5
|
-
# Plain text report, suitable for display in Emacs *compilation* buffers.
|
6
|
-
class EmacsStyle < PlainText
|
7
|
-
# Generates a string representation of the report
|
8
|
-
def generate
|
9
|
-
report = entries.map do |e|
|
10
|
-
sprintf('%s:%d: %s: %s', @filename,
|
11
|
-
e.line_number, e.encode_severity, e.message)
|
12
|
-
end
|
13
|
-
report.join("\n")
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Rubocop
|
4
|
-
module Report
|
5
|
-
# Plain text report, suitable for display in terminals.
|
6
|
-
class PlainText < Report
|
7
|
-
# Generates a string representation of the report
|
8
|
-
def generate
|
9
|
-
report = "== #{filename} ==\n".color(:yellow)
|
10
|
-
report << entries.join("\n")
|
11
|
-
end
|
12
|
-
|
13
|
-
def display(stream = $stdout)
|
14
|
-
stream.puts generate
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Rubocop
|
4
|
-
module Report
|
5
|
-
# Creates a Report object, based on the current settings
|
6
|
-
#
|
7
|
-
# @param [String] the filename for the report
|
8
|
-
# @return [Report] a report object
|
9
|
-
def create(file, output_mode = :default)
|
10
|
-
case output_mode
|
11
|
-
when :default then PlainText.new(file)
|
12
|
-
when :emacs_style then EmacsStyle.new(file)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
module_function :create
|
17
|
-
|
18
|
-
class Report
|
19
|
-
attr_reader :filename
|
20
|
-
|
21
|
-
# @param [String] the filename for this report
|
22
|
-
def initialize(filename)
|
23
|
-
@filename = filename
|
24
|
-
@entries = []
|
25
|
-
end
|
26
|
-
|
27
|
-
# Appends offences registered by cops to the report.
|
28
|
-
# @param [Cop] a cop with something to report
|
29
|
-
def <<(cop)
|
30
|
-
cop.offences.each do |entry|
|
31
|
-
@entries << entry
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
def entries
|
36
|
-
@entries.sort_by(&:line_number)
|
37
|
-
end
|
38
|
-
|
39
|
-
def empty?
|
40
|
-
entries.empty?
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
@@ -1,129 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
module Rubocop
|
6
|
-
module Cop
|
7
|
-
describe AccessControl do
|
8
|
-
let(:a) { AccessControl.new }
|
9
|
-
|
10
|
-
it 'registers an offence for misaligned private' do
|
11
|
-
inspect_source(a,
|
12
|
-
['class Test',
|
13
|
-
'',
|
14
|
-
'private',
|
15
|
-
'',
|
16
|
-
' def test; end',
|
17
|
-
'end'])
|
18
|
-
expect(a.offences.size).to eq(1)
|
19
|
-
expect(a.offences.map(&:message))
|
20
|
-
.to eq([AccessControl::INDENT_MSG])
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'registers an offence for misaligned private in module' do
|
24
|
-
inspect_source(a,
|
25
|
-
['module Test',
|
26
|
-
'',
|
27
|
-
'private',
|
28
|
-
'',
|
29
|
-
' def test; end',
|
30
|
-
'end'])
|
31
|
-
expect(a.offences.size).to eq(1)
|
32
|
-
expect(a.offences.map(&:message))
|
33
|
-
.to eq([AccessControl::INDENT_MSG])
|
34
|
-
end
|
35
|
-
|
36
|
-
it 'registers an offence for misaligned private in singleton class' do
|
37
|
-
inspect_source(a,
|
38
|
-
['class << self',
|
39
|
-
'',
|
40
|
-
'private',
|
41
|
-
'',
|
42
|
-
' def test; end',
|
43
|
-
'end'])
|
44
|
-
expect(a.offences.size).to eq(1)
|
45
|
-
expect(a.offences.map(&:message))
|
46
|
-
.to eq([AccessControl::INDENT_MSG])
|
47
|
-
end
|
48
|
-
|
49
|
-
it 'registers an offence for misaligned protected' do
|
50
|
-
inspect_source(a,
|
51
|
-
['class Test',
|
52
|
-
'',
|
53
|
-
'protected',
|
54
|
-
'',
|
55
|
-
' def test; end',
|
56
|
-
'end'])
|
57
|
-
expect(a.offences.size).to eq(1)
|
58
|
-
expect(a.offences.map(&:message))
|
59
|
-
.to eq([AccessControl::INDENT_MSG])
|
60
|
-
end
|
61
|
-
|
62
|
-
it 'accepts properly indented private' do
|
63
|
-
inspect_source(a,
|
64
|
-
['class Test',
|
65
|
-
'',
|
66
|
-
' private',
|
67
|
-
'',
|
68
|
-
' def test; end',
|
69
|
-
'end'])
|
70
|
-
expect(a.offences).to be_empty
|
71
|
-
end
|
72
|
-
|
73
|
-
it 'accepts properly indented protected' do
|
74
|
-
inspect_source(a,
|
75
|
-
['class Test',
|
76
|
-
'',
|
77
|
-
' protected',
|
78
|
-
'',
|
79
|
-
' def test; end',
|
80
|
-
'end'])
|
81
|
-
expect(a.offences).to be_empty
|
82
|
-
end
|
83
|
-
|
84
|
-
it 'handles properly nested classes' do
|
85
|
-
inspect_source(a,
|
86
|
-
['class Test',
|
87
|
-
'',
|
88
|
-
' class Nested',
|
89
|
-
'',
|
90
|
-
' private',
|
91
|
-
'',
|
92
|
-
' def a; end',
|
93
|
-
' end',
|
94
|
-
'',
|
95
|
-
' protected',
|
96
|
-
'',
|
97
|
-
' def test; end',
|
98
|
-
'end'])
|
99
|
-
expect(a.offences.size).to eq(1)
|
100
|
-
expect(a.offences.map(&:message))
|
101
|
-
.to eq([AccessControl::INDENT_MSG])
|
102
|
-
end
|
103
|
-
|
104
|
-
it 'requires blank line before private/protected' do
|
105
|
-
inspect_source(a,
|
106
|
-
['class Test',
|
107
|
-
' protected',
|
108
|
-
'',
|
109
|
-
' def test; end',
|
110
|
-
'end'])
|
111
|
-
expect(a.offences.size).to eq(1)
|
112
|
-
expect(a.offences.map(&:message))
|
113
|
-
.to eq([AccessControl::BLANK_MSG])
|
114
|
-
end
|
115
|
-
|
116
|
-
it 'requires blank line after private/protected' do
|
117
|
-
inspect_source(a,
|
118
|
-
['class Test',
|
119
|
-
'',
|
120
|
-
' protected',
|
121
|
-
' def test; end',
|
122
|
-
'end'])
|
123
|
-
expect(a.offences.size).to eq(1)
|
124
|
-
expect(a.offences.map(&:message))
|
125
|
-
.to eq([AccessControl::BLANK_MSG])
|
126
|
-
end
|
127
|
-
end
|
128
|
-
end
|
129
|
-
end
|