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,58 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
module Rubocop
|
6
|
-
module Cop
|
7
|
-
describe StringLiterals do
|
8
|
-
let(:sl) { StringLiterals.new }
|
9
|
-
|
10
|
-
it 'registers an offence for double quotes when single quotes suffice' do
|
11
|
-
inspect_source(sl, ['s = "abc"'])
|
12
|
-
expect(sl.offences.size).to eq(1)
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'accepts double quotes when they are needed' do
|
16
|
-
src = ['a = "\n"',
|
17
|
-
'b = "#{encode_severity}:#{sprintf("%3d", line_number)}: #{m}"',
|
18
|
-
'c = "\'"',
|
19
|
-
'd = "#@test"',
|
20
|
-
'e = "#$test"',
|
21
|
-
'f = "#@@test"']
|
22
|
-
inspect_source(sl, src)
|
23
|
-
expect(sl.offences).to be_empty
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'accepts double quotes at the start of regexp literals' do
|
27
|
-
inspect_source(sl, ['s = /"((?:[^\\"]|\\.)*)"/'])
|
28
|
-
expect(sl.offences).to be_empty
|
29
|
-
end
|
30
|
-
|
31
|
-
it 'accepts double quotes with some other special symbols' do
|
32
|
-
pending
|
33
|
-
# "Substitutions in double-quoted strings"
|
34
|
-
# http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html
|
35
|
-
src = ['g = "\xf9"']
|
36
|
-
inspect_source(sl, src)
|
37
|
-
expect(sl.offences).to be_empty
|
38
|
-
end
|
39
|
-
|
40
|
-
it 'can handle double quotes within embedded expression' do
|
41
|
-
# This seems to be a Parser bug
|
42
|
-
pending do
|
43
|
-
src = ['"#{"A"}"']
|
44
|
-
inspect_source(sl, src)
|
45
|
-
expect(sl.offences).to be_empty
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
it 'can handle a built-in constant parsed as string' do
|
50
|
-
# Parser will produce str nodes for constants such as __FILE__.
|
51
|
-
src = ['if __FILE__ == $PROGRAM_NAME',
|
52
|
-
'end']
|
53
|
-
inspect_source(sl, src)
|
54
|
-
expect(sl.offences).to be_empty
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
module Rubocop
|
6
|
-
module Cop
|
7
|
-
describe SymbolArray do
|
8
|
-
let(:sa) { SymbolArray.new }
|
9
|
-
|
10
|
-
it 'registers an offence for arrays of symbols', { ruby: 2.0 } do
|
11
|
-
inspect_source(sa,
|
12
|
-
['[:one, :two, :three]'])
|
13
|
-
expect(sa.offences.size).to eq(1)
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'does not reg an offence for array with non-syms', { ruby: 2.0 } do
|
17
|
-
inspect_source(sa,
|
18
|
-
['[:one, :two, "three"]'])
|
19
|
-
expect(sa.offences).to be_empty
|
20
|
-
end
|
21
|
-
|
22
|
-
it 'does not reg an offence for array starting with %i', { ruby: 2.0 } do
|
23
|
-
inspect_source(sa,
|
24
|
-
['%i(one two three)'])
|
25
|
-
expect(sa.offences).to be_empty
|
26
|
-
end
|
27
|
-
|
28
|
-
it 'does not reg an offence for array with one element', { ruby: 2.0 } do
|
29
|
-
inspect_source(sa,
|
30
|
-
['[:three]'])
|
31
|
-
expect(sa.offences).to be_empty
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'does nothing on Ruby 1.9', { ruby: 1.9 } do
|
35
|
-
inspect_source(sa,
|
36
|
-
['[:one, :two, :three]'])
|
37
|
-
expect(sa.offences).to be_empty
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
@@ -1,119 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
module Rubocop
|
6
|
-
module Cop
|
7
|
-
describe SymbolName do
|
8
|
-
let(:symbol_name) { SymbolName.new }
|
9
|
-
|
10
|
-
before do
|
11
|
-
SymbolName.config = Config.default_configuration.for_cop('SymbolName')
|
12
|
-
end
|
13
|
-
|
14
|
-
context 'when AllowCamelCase is true' do
|
15
|
-
before do
|
16
|
-
SymbolName.config = {
|
17
|
-
'AllowCamelCase' => true
|
18
|
-
}
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'does not register an offence for camel case in names' do
|
22
|
-
inspect_source(symbol_name,
|
23
|
-
['test = :BadIdea'])
|
24
|
-
expect(symbol_name.offences).to be_empty
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
context 'when AllowCamelCase is false' do
|
29
|
-
before do
|
30
|
-
SymbolName.config = {
|
31
|
-
'AllowCamelCase' => false
|
32
|
-
}
|
33
|
-
end
|
34
|
-
|
35
|
-
it 'registers an offence for camel case in names' do
|
36
|
-
inspect_source(symbol_name,
|
37
|
-
['test = :BadIdea'])
|
38
|
-
expect(symbol_name.offences.map(&:message)).to eq(
|
39
|
-
['Use snake_case for symbols.'])
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
it 'registers an offence for symbol used as hash label' do
|
44
|
-
inspect_source(symbol_name,
|
45
|
-
['{ KEY_ONE: 1, KEY_TWO: 2 }'])
|
46
|
-
expect(symbol_name.offences.map(&:message)).to eq(
|
47
|
-
['Use snake_case for symbols.'] * 2)
|
48
|
-
end
|
49
|
-
|
50
|
-
it 'accepts snake case in names' do
|
51
|
-
inspect_source(symbol_name,
|
52
|
-
['test = :good_idea'])
|
53
|
-
expect(symbol_name.offences).to be_empty
|
54
|
-
end
|
55
|
-
|
56
|
-
it 'accepts snake case in hash label names' do
|
57
|
-
inspect_source(symbol_name,
|
58
|
-
['{ one: 1, one_more_3: 2 }'])
|
59
|
-
expect(symbol_name.offences).to be_empty
|
60
|
-
end
|
61
|
-
|
62
|
-
it 'accepts snake case with a prefix @ in names' do
|
63
|
-
inspect_source(symbol_name,
|
64
|
-
['test = :@good_idea'])
|
65
|
-
expect(symbol_name.offences).to be_empty
|
66
|
-
end
|
67
|
-
|
68
|
-
it 'accepts snake case with ? suffix' do
|
69
|
-
inspect_source(symbol_name,
|
70
|
-
['test = :good_idea?'])
|
71
|
-
expect(symbol_name.offences).to be_empty
|
72
|
-
end
|
73
|
-
|
74
|
-
it 'accepts snake case with ! suffix' do
|
75
|
-
inspect_source(symbol_name,
|
76
|
-
['test = :good_idea!'])
|
77
|
-
expect(symbol_name.offences).to be_empty
|
78
|
-
end
|
79
|
-
|
80
|
-
it 'accepts snake case with = suffix' do
|
81
|
-
inspect_source(symbol_name,
|
82
|
-
['test = :good_idea='])
|
83
|
-
expect(symbol_name.offences).to be_empty
|
84
|
-
end
|
85
|
-
|
86
|
-
it 'accepts special cases - !, [] and **' do
|
87
|
-
inspect_source(symbol_name,
|
88
|
-
['test = :**',
|
89
|
-
'test = :!',
|
90
|
-
'test = :[]',
|
91
|
-
'test = :[]='])
|
92
|
-
expect(symbol_name.offences).to be_empty
|
93
|
-
end
|
94
|
-
|
95
|
-
it 'accepts special cases - ==, <=>, >, <, >=, <=' do
|
96
|
-
inspect_source(symbol_name,
|
97
|
-
['test = :==',
|
98
|
-
'test = :<=>',
|
99
|
-
'test = :>',
|
100
|
-
'test = :<',
|
101
|
-
'test = :>=',
|
102
|
-
'test = :<='])
|
103
|
-
expect(symbol_name.offences).to be_empty
|
104
|
-
end
|
105
|
-
|
106
|
-
it 'can handle an alias of and operator without crashing' do
|
107
|
-
inspect_source(symbol_name,
|
108
|
-
['alias + add'])
|
109
|
-
expect(symbol_name.offences).to be_empty
|
110
|
-
end
|
111
|
-
|
112
|
-
it 'registers an offence for SCREAMING_symbol_name' do
|
113
|
-
inspect_source(symbol_name,
|
114
|
-
['test = :BAD_IDEA'])
|
115
|
-
expect(symbol_name.offences.size).to eq(1)
|
116
|
-
end
|
117
|
-
end
|
118
|
-
end
|
119
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
module Rubocop
|
6
|
-
module Cop
|
7
|
-
describe Syntax do
|
8
|
-
let(:sc) { Syntax.new }
|
9
|
-
|
10
|
-
if RUBY_ENGINE == 'ruby'
|
11
|
-
it 'registers an offence for unused variables', ruby: 2.0 do
|
12
|
-
source = "x = 5\nputs 10"
|
13
|
-
Dir.mktmpdir do |tmpdir|
|
14
|
-
path = File.join(tmpdir, 'file.rb')
|
15
|
-
File.open(path, 'w') { |f| f.write(source) }
|
16
|
-
sc.inspect_file(path)
|
17
|
-
end
|
18
|
-
expect(sc.offences.size).to eq(1)
|
19
|
-
expect(sc.offences.first.message)
|
20
|
-
.to eq('Assigned but unused variable - x')
|
21
|
-
end
|
22
|
-
|
23
|
-
describe '#process_line' do
|
24
|
-
it 'processes warnings correctly' do
|
25
|
-
l, s, m = sc.process_line('admin.rb:1: warning: possibly useless')
|
26
|
-
expect(l).to eq(1)
|
27
|
-
expect(s).to eq(:warning)
|
28
|
-
expect(m).to eq('Possibly useless')
|
29
|
-
end
|
30
|
-
|
31
|
-
it 'processes errors correctly' do
|
32
|
-
l, s, m = sc.process_line('admin.rb:1: unterminated string meets')
|
33
|
-
expect(l).to eq(1)
|
34
|
-
expect(s).to eq(:error)
|
35
|
-
expect(m).to eq('Unterminated string meets')
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
module Rubocop
|
6
|
-
module Cop
|
7
|
-
describe Tab do
|
8
|
-
let(:tab) { Tab.new }
|
9
|
-
|
10
|
-
it 'registers an offence for a line indented with tab' do
|
11
|
-
tab.inspect(["\tx = 0"], nil, nil, nil)
|
12
|
-
expect(tab.offences.size).to eq(1)
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'accepts a line with tab in a string' do
|
16
|
-
tab.inspect(["(x = \"\t\")"], nil, nil, nil)
|
17
|
-
expect(tab.offences).to be_empty
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,40 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
module Rubocop
|
6
|
-
module Cop
|
7
|
-
describe MultilineTernaryOperator do
|
8
|
-
let(:op) { MultilineTernaryOperator.new }
|
9
|
-
|
10
|
-
it 'registers an offence for a multiline ternary operator expression' do
|
11
|
-
inspect_source(op, ['a = cond ?',
|
12
|
-
' b : c'])
|
13
|
-
expect(op.offences.size).to eq(1)
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'accepts a single line ternary operator expression' do
|
17
|
-
inspect_source(op, ['a = cond ? b : c'])
|
18
|
-
expect(op.offences).to be_empty
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
describe NestedTernaryOperator do
|
23
|
-
let(:op) { NestedTernaryOperator.new }
|
24
|
-
|
25
|
-
it 'registers an offence for a nested ternary operator expression' do
|
26
|
-
inspect_source(op, ['a ? (b ? b1 : b2) : a2'])
|
27
|
-
expect(op.offences.size).to eq(1)
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'accepts a non-nested ternary operator within an if' do
|
31
|
-
inspect_source(op, ['a = if x',
|
32
|
-
' cond ? b : c',
|
33
|
-
'else',
|
34
|
-
' d',
|
35
|
-
'end'])
|
36
|
-
expect(op.offences).to be_empty
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
module Rubocop
|
6
|
-
module Cop
|
7
|
-
describe TrailingWhitespace do
|
8
|
-
let(:tws) { TrailingWhitespace.new }
|
9
|
-
|
10
|
-
it 'registers an offence for a line ending with space' do
|
11
|
-
source = ['x = 0 ']
|
12
|
-
tws.inspect(source, nil, nil, nil)
|
13
|
-
expect(tws.offences.size).to eq(1)
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'registers an offence for a line ending with tab' do
|
17
|
-
tws.inspect(["x = 0\t"], nil, nil, nil)
|
18
|
-
expect(tws.offences.size).to eq(1)
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'accepts a line without trailing whitespace' do
|
22
|
-
tws.inspect(["x = 0\n"], nil, nil, nil)
|
23
|
-
expect(tws.offences).to be_empty
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,337 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
module Rubocop
|
6
|
-
module Cop
|
7
|
-
describe TrivialAccessors do
|
8
|
-
let(:trivial_accessors_finder) { TrivialAccessors.new }
|
9
|
-
|
10
|
-
before :each do
|
11
|
-
trivial_accessors_finder.offences.clear
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'finds trivial reader' do
|
15
|
-
inspect_source(trivial_accessors_finder,
|
16
|
-
['def foo',
|
17
|
-
' @foo',
|
18
|
-
'end',
|
19
|
-
'',
|
20
|
-
'def Foo',
|
21
|
-
' @Foo',
|
22
|
-
'end'])
|
23
|
-
expect(trivial_accessors_finder.offences.size).to eq(2)
|
24
|
-
expect(trivial_accessors_finder.offences
|
25
|
-
.map(&:line_number).sort).to eq([1, 5])
|
26
|
-
end
|
27
|
-
|
28
|
-
it 'finds trivial reader in a class' do
|
29
|
-
inspect_source(trivial_accessors_finder,
|
30
|
-
['class TrivialFoo',
|
31
|
-
' def foo',
|
32
|
-
' @foo',
|
33
|
-
' end',
|
34
|
-
' def bar',
|
35
|
-
' !foo',
|
36
|
-
' end',
|
37
|
-
'end'])
|
38
|
-
expect(trivial_accessors_finder.offences.size).to eq(1)
|
39
|
-
expect(trivial_accessors_finder.offences
|
40
|
-
.map(&:line_number).sort).to eq([2])
|
41
|
-
end
|
42
|
-
|
43
|
-
it 'finds trivial reader in a nested class' do
|
44
|
-
inspect_source(trivial_accessors_finder,
|
45
|
-
['class TrivialFoo',
|
46
|
-
' class Nested',
|
47
|
-
' def foo',
|
48
|
-
' @foo',
|
49
|
-
' end',
|
50
|
-
' end',
|
51
|
-
'end'])
|
52
|
-
expect(trivial_accessors_finder.offences.size).to eq(1)
|
53
|
-
expect(trivial_accessors_finder.offences
|
54
|
-
.map(&:line_number).sort).to eq([3])
|
55
|
-
end
|
56
|
-
|
57
|
-
it 'finds trivial readers in a little less trivial class' do
|
58
|
-
inspect_source(trivial_accessors_finder,
|
59
|
-
['class TrivialFoo',
|
60
|
-
' def foo',
|
61
|
-
' @foo',
|
62
|
-
' end',
|
63
|
-
' def foo_and_bar',
|
64
|
-
' @foo_bar = @foo + @bar',
|
65
|
-
' end',
|
66
|
-
' def foo_bar',
|
67
|
-
' @foo_bar',
|
68
|
-
' end',
|
69
|
-
' def foo?',
|
70
|
-
' foo.present?',
|
71
|
-
' end',
|
72
|
-
' def bar?',
|
73
|
-
' !bar',
|
74
|
-
' end',
|
75
|
-
' def foobar',
|
76
|
-
' foo? ? foo.value : "bar"',
|
77
|
-
' end',
|
78
|
-
' def bar',
|
79
|
-
' foo.bar',
|
80
|
-
' end',
|
81
|
-
' def foo_required?',
|
82
|
-
' super && !bar_required?',
|
83
|
-
' end',
|
84
|
-
' def self.from_omniauth(auth)',
|
85
|
-
' foobars.each do |f|',
|
86
|
-
' # do stuff',
|
87
|
-
' end',
|
88
|
-
' end',
|
89
|
-
' def regex',
|
90
|
-
' %r{\A#{visit node}\Z}',
|
91
|
-
' end',
|
92
|
-
' def array',
|
93
|
-
' [foo, bar].join',
|
94
|
-
' end',
|
95
|
-
' def string',
|
96
|
-
' "string"',
|
97
|
-
' end',
|
98
|
-
' def class',
|
99
|
-
' Foo.class',
|
100
|
-
' end',
|
101
|
-
' def with_return',
|
102
|
-
' return foo',
|
103
|
-
' end',
|
104
|
-
' def captures',
|
105
|
-
' (length - 1).times.map { |i| self[i + 1] }',
|
106
|
-
' end',
|
107
|
-
' def foo val',
|
108
|
-
' super',
|
109
|
-
' @val',
|
110
|
-
' end',
|
111
|
-
'end'])
|
112
|
-
expect(trivial_accessors_finder.offences.size).to eq(2)
|
113
|
-
expect(trivial_accessors_finder.offences
|
114
|
-
.map(&:line_number).sort).to eq([2, 8])
|
115
|
-
end
|
116
|
-
|
117
|
-
it 'finds trivial reader with braces' do
|
118
|
-
inspect_source(trivial_accessors_finder,
|
119
|
-
['class Test',
|
120
|
-
' # trivial reader with braces',
|
121
|
-
' def name()',
|
122
|
-
' @name',
|
123
|
-
' end',
|
124
|
-
'end'])
|
125
|
-
expect(trivial_accessors_finder.offences.size).to eq(1)
|
126
|
-
expect(trivial_accessors_finder.offences
|
127
|
-
.map(&:line_number).sort).to eq([3])
|
128
|
-
end
|
129
|
-
|
130
|
-
it 'finds trivial writer without braces' do
|
131
|
-
inspect_source(trivial_accessors_finder,
|
132
|
-
['class Test',
|
133
|
-
' # trivial writer without braces',
|
134
|
-
' def name= name',
|
135
|
-
' @name = name',
|
136
|
-
' end',
|
137
|
-
'end'])
|
138
|
-
expect(trivial_accessors_finder.offences.size).to eq(1)
|
139
|
-
expect(trivial_accessors_finder.offences
|
140
|
-
.map(&:line_number).sort).to eq([3])
|
141
|
-
end
|
142
|
-
|
143
|
-
it 'does not find trivial writer with function calls' do
|
144
|
-
inspect_source(trivial_accessors_finder,
|
145
|
-
['class TrivialTest',
|
146
|
-
' def test=(val)',
|
147
|
-
' @test = val',
|
148
|
-
' some_function_call',
|
149
|
-
' or_more_of_them',
|
150
|
-
' end',
|
151
|
-
'end'])
|
152
|
-
expect(trivial_accessors_finder.offences).to be_empty
|
153
|
-
end
|
154
|
-
|
155
|
-
it 'finds trivials with less peculiar methods' do
|
156
|
-
inspect_source(trivial_accessors_finder,
|
157
|
-
['class NilStats',
|
158
|
-
'def most_traded_pair',
|
159
|
-
'end',
|
160
|
-
'def win_ratio',
|
161
|
-
'end',
|
162
|
-
'def win_ratio_percentage()',
|
163
|
-
'end',
|
164
|
-
'def pips_won',
|
165
|
-
' 0.0',
|
166
|
-
'end',
|
167
|
-
'def gain_at(date)',
|
168
|
-
' 1',
|
169
|
-
'end',
|
170
|
-
'def gain_percentage',
|
171
|
-
' 0',
|
172
|
-
'end',
|
173
|
-
'def gain_breakdown(options = {})',
|
174
|
-
' []',
|
175
|
-
'end',
|
176
|
-
'def copy_to_all_ratio',
|
177
|
-
' nil',
|
178
|
-
'end',
|
179
|
-
'def trade_population',
|
180
|
-
' {}',
|
181
|
-
'end',
|
182
|
-
'def average_leverage',
|
183
|
-
' 1',
|
184
|
-
'end',
|
185
|
-
'def with_yield',
|
186
|
-
' yield',
|
187
|
-
'rescue Error => e',
|
188
|
-
' #do stuff',
|
189
|
-
'end',
|
190
|
-
'end'])
|
191
|
-
expect(trivial_accessors_finder.offences).to be_empty
|
192
|
-
end
|
193
|
-
|
194
|
-
it 'finds oneliner trivials' do
|
195
|
-
inspect_source(trivial_accessors_finder,
|
196
|
-
['class Oneliner',
|
197
|
-
' def foo; @foo; end',
|
198
|
-
' def foo= foo; @foo = foo; end',
|
199
|
-
'end'])
|
200
|
-
expect(trivial_accessors_finder.offences.size).to eq(2)
|
201
|
-
expect(trivial_accessors_finder.offences
|
202
|
-
.map(&:line_number).sort).to eq([2, 3])
|
203
|
-
end
|
204
|
-
|
205
|
-
it 'does not find a trivial reader' do
|
206
|
-
inspect_source(trivial_accessors_finder,
|
207
|
-
['def bar',
|
208
|
-
' @bar + foo',
|
209
|
-
'end'])
|
210
|
-
expect(trivial_accessors_finder.offences).to be_empty
|
211
|
-
end
|
212
|
-
|
213
|
-
it 'finds trivial writer' do
|
214
|
-
inspect_source(trivial_accessors_finder,
|
215
|
-
['def foo=(val)',
|
216
|
-
' @foo = val',
|
217
|
-
'end'])
|
218
|
-
expect(trivial_accessors_finder.offences.size).to eq(1)
|
219
|
-
expect(trivial_accessors_finder.offences
|
220
|
-
.map(&:line_number).sort).to eq([1])
|
221
|
-
end
|
222
|
-
|
223
|
-
it 'finds trivial writer in a class' do
|
224
|
-
inspect_source(trivial_accessors_finder,
|
225
|
-
['class TrivialFoo',
|
226
|
-
' def foo=(val)',
|
227
|
-
' @foo = val',
|
228
|
-
' end',
|
229
|
-
' def void(no_value)',
|
230
|
-
' end',
|
231
|
-
' def inspect(sexp)',
|
232
|
-
' each(:def, sexp) do |item|',
|
233
|
-
' #do stuff',
|
234
|
-
' end',
|
235
|
-
' end',
|
236
|
-
' def if_method(foo)',
|
237
|
-
' if true',
|
238
|
-
' unless false',
|
239
|
-
' #do stuff',
|
240
|
-
' end',
|
241
|
-
' end',
|
242
|
-
' end',
|
243
|
-
'end'])
|
244
|
-
expect(trivial_accessors_finder.offences.size).to eq(1)
|
245
|
-
expect(trivial_accessors_finder.offences
|
246
|
-
.map(&:line_number).sort).to eq([2])
|
247
|
-
end
|
248
|
-
|
249
|
-
it 'finds trivial accessors in a little less trivial class' do
|
250
|
-
inspect_source(trivial_accessors_finder,
|
251
|
-
['class TrivialFoo',
|
252
|
-
' def foo',
|
253
|
-
' @foo',
|
254
|
-
' end',
|
255
|
-
' def foo_and_bar',
|
256
|
-
' @foo_bar = @foo + @bar',
|
257
|
-
' end',
|
258
|
-
' def foo_bar',
|
259
|
-
' @foo_bar',
|
260
|
-
' end',
|
261
|
-
' def bar=(bar_value)',
|
262
|
-
' @bar = bar_value',
|
263
|
-
' end',
|
264
|
-
'end'])
|
265
|
-
expect(trivial_accessors_finder.offences.size).to eq(3)
|
266
|
-
expect(trivial_accessors_finder.offences
|
267
|
-
.map(&:line_number).sort).to eq([2, 8, 11])
|
268
|
-
end
|
269
|
-
|
270
|
-
it 'does not find a trivial writer' do
|
271
|
-
inspect_source(trivial_accessors_finder,
|
272
|
-
['def bar=(value)',
|
273
|
-
' @bar = value + 42',
|
274
|
-
'end'])
|
275
|
-
expect(trivial_accessors_finder.offences).to be_empty
|
276
|
-
end
|
277
|
-
|
278
|
-
it 'finds trivial writers in a little less trivial class' do
|
279
|
-
inspect_source(trivial_accessors_finder,
|
280
|
-
['class TrivialFoo',
|
281
|
-
' def foo_bar=(foo, bar)',
|
282
|
-
' @foo_bar = foo + bar',
|
283
|
-
' end',
|
284
|
-
' def universal=(answer=42)',
|
285
|
-
' @universal = answer',
|
286
|
-
' end',
|
287
|
-
' def bar=(bar_value)',
|
288
|
-
' @bar = bar_value',
|
289
|
-
' end',
|
290
|
-
'end'])
|
291
|
-
expect(trivial_accessors_finder.offences.size).to eq(2)
|
292
|
-
expect(trivial_accessors_finder.offences
|
293
|
-
.map(&:line_number).sort).to eq([5, 8])
|
294
|
-
end
|
295
|
-
|
296
|
-
it 'does not find trivial accessors with method calls' do
|
297
|
-
inspect_source(trivial_accessors_finder,
|
298
|
-
['class TrivialFoo',
|
299
|
-
' def foo_bar(foo)',
|
300
|
-
' foo_bar = foo + 42',
|
301
|
-
' end',
|
302
|
-
' def foo(value)',
|
303
|
-
' foo = []',
|
304
|
-
' # do stuff',
|
305
|
-
' foo',
|
306
|
-
' end',
|
307
|
-
' def bar',
|
308
|
-
' foo_method',
|
309
|
-
' end',
|
310
|
-
'end'])
|
311
|
-
expect(trivial_accessors_finder.offences).to be_empty
|
312
|
-
end
|
313
|
-
|
314
|
-
it 'does not find trivial writer with exceptions' do
|
315
|
-
inspect_source(trivial_accessors_finder,
|
316
|
-
[' def expiration_formatted=(value)',
|
317
|
-
' begin',
|
318
|
-
' @expiration = foo_stuff',
|
319
|
-
' rescue ArgumentError',
|
320
|
-
' @expiration = nil',
|
321
|
-
' end',
|
322
|
-
' self[:expiration] = @expiration',
|
323
|
-
' end'])
|
324
|
-
expect(trivial_accessors_finder.offences).to be_empty
|
325
|
-
end
|
326
|
-
|
327
|
-
it 'accepts an initialize method looking like a writer' do
|
328
|
-
inspect_source(trivial_accessors_finder,
|
329
|
-
[' def initialize(value)',
|
330
|
-
' @top = value',
|
331
|
-
' end'])
|
332
|
-
expect(trivial_accessors_finder.offences).to be_empty
|
333
|
-
end
|
334
|
-
|
335
|
-
end
|
336
|
-
end
|
337
|
-
end
|