rubocop 0.13.1 → 0.14.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/.rubocop.yml +3 -0
- data/CHANGELOG.md +42 -0
- data/README.md +59 -54
- data/config/default.yml +124 -95
- data/config/disabled.yml +4 -0
- data/config/enabled.yml +286 -264
- data/lib/rubocop.rb +10 -3
- data/lib/rubocop/cli.rb +10 -171
- data/lib/rubocop/cop/cop.rb +14 -11
- data/lib/rubocop/cop/lint/debugger.rb +35 -0
- data/lib/rubocop/cop/lint/syntax.rb +34 -0
- data/lib/rubocop/cop/offence.rb +15 -23
- data/lib/rubocop/cop/style/align_array.rb +1 -10
- data/lib/rubocop/cop/style/align_hash.rb +14 -2
- data/lib/rubocop/cop/style/align_parameters.rb +1 -11
- data/lib/rubocop/cop/style/and_or.rb +13 -11
- data/lib/rubocop/cop/style/attr.rb +1 -1
- data/lib/rubocop/cop/style/autocorrect_alignment.rb +31 -6
- data/lib/rubocop/cop/style/blocks.rb +14 -6
- data/lib/rubocop/cop/style/character_literal.rb +1 -1
- data/lib/rubocop/cop/style/class_length.rb +38 -0
- data/lib/rubocop/cop/style/collection_methods.rb +1 -1
- data/lib/rubocop/cop/style/colon_method_call.rb +1 -1
- data/lib/rubocop/cop/style/configurable_naming.rb +47 -0
- data/lib/rubocop/cop/style/def_parentheses.rb +2 -2
- data/lib/rubocop/cop/style/empty_literal.rb +1 -1
- data/lib/rubocop/cop/style/even_odd.rb +7 -3
- data/lib/rubocop/cop/style/hash_methods.rb +1 -1
- data/lib/rubocop/cop/style/hash_syntax.rb +36 -7
- data/lib/rubocop/cop/style/lambda_call.rb +36 -11
- data/lib/rubocop/cop/style/method_call_parentheses.rb +1 -1
- data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +41 -0
- data/lib/rubocop/cop/style/method_length.rb +2 -13
- data/lib/rubocop/cop/style/method_name.rb +42 -0
- data/lib/rubocop/cop/style/numeric_literals.rb +4 -0
- data/lib/rubocop/cop/style/perl_backrefs.rb +1 -1
- data/lib/rubocop/cop/style/raise_args.rb +60 -0
- data/lib/rubocop/cop/style/redundant_exception.rb +32 -0
- data/lib/rubocop/cop/style/redundant_return.rb +14 -5
- data/lib/rubocop/cop/style/redundant_self.rb +1 -1
- data/lib/rubocop/cop/style/semicolon.rb +13 -4
- data/lib/rubocop/cop/style/signal_exception.rb +63 -14
- data/lib/rubocop/cop/style/special_global_vars.rb +1 -1
- data/lib/rubocop/cop/style/string_help.rb +4 -1
- data/lib/rubocop/cop/style/string_literals.rb +34 -11
- data/lib/rubocop/cop/style/surrounding_space.rb +64 -17
- data/lib/rubocop/cop/style/tab.rb +1 -1
- data/lib/rubocop/cop/style/variable_name.rb +44 -0
- data/lib/rubocop/cop/style/when_then.rb +1 -1
- data/lib/rubocop/cop/style/while_until_do.rb +1 -1
- data/lib/rubocop/cop/team.rb +4 -7
- data/lib/rubocop/cop/util.rb +12 -0
- data/lib/rubocop/formatter/clang_style_formatter.rb +1 -1
- data/lib/rubocop/formatter/emacs_style_formatter.rb +5 -2
- data/lib/rubocop/formatter/json_formatter.rb +1 -0
- data/lib/rubocop/formatter/progress_formatter.rb +9 -13
- data/lib/rubocop/formatter/simple_text_formatter.rb +63 -15
- data/lib/rubocop/options.rb +184 -0
- data/lib/rubocop/processed_source.rb +4 -0
- data/lib/rubocop/version.rb +1 -1
- data/rubocop.gemspec +1 -1
- data/spec/rubocop/cli_spec.rb +870 -1001
- data/spec/rubocop/config_spec.rb +13 -13
- data/spec/rubocop/config_store_spec.rb +38 -37
- data/spec/rubocop/cop/commissioner_spec.rb +42 -46
- data/spec/rubocop/cop/cop_spec.rb +72 -77
- data/spec/rubocop/cop/corrector_spec.rb +51 -55
- data/spec/rubocop/cop/lint/assignment_in_condition_spec.rb +100 -106
- data/spec/rubocop/cop/lint/block_alignment_spec.rb +403 -409
- data/spec/rubocop/cop/lint/debugger_spec.rb +39 -0
- data/spec/rubocop/cop/lint/empty_ensure_spec.rb +19 -25
- data/spec/rubocop/cop/lint/end_alignment_spec.rb +50 -56
- data/spec/rubocop/cop/lint/end_in_method_spec.rb +20 -26
- data/spec/rubocop/cop/lint/ensure_return_spec.rb +30 -36
- data/spec/rubocop/cop/lint/eval_spec.rb +25 -31
- data/spec/rubocop/cop/lint/handle_exceptions_spec.rb +22 -28
- data/spec/rubocop/cop/lint/literal_in_condition_spec.rb +51 -57
- data/spec/rubocop/cop/lint/loop_spec.rb +17 -23
- data/spec/rubocop/cop/lint/parentheses_as_grouped_expression_spec.rb +51 -57
- data/spec/rubocop/cop/lint/rescue_exception_spec.rb +105 -111
- data/spec/rubocop/cop/lint/shadowing_outer_local_variable_spec.rb +230 -236
- data/spec/rubocop/cop/lint/syntax_spec.rb +33 -0
- data/spec/rubocop/cop/lint/unreachable_code_spec.rb +51 -57
- data/spec/rubocop/cop/lint/useless_assignment_spec.rb +1544 -1550
- data/spec/rubocop/cop/lint/useless_comparison_spec.rb +21 -27
- data/spec/rubocop/cop/lint/useless_setter_call_spec.rb +119 -125
- data/spec/rubocop/cop/lint/void_spec.rb +50 -56
- data/spec/rubocop/cop/offence_spec.rb +101 -131
- data/spec/rubocop/cop/rails/has_and_belongs_to_many_spec.rb +6 -12
- data/spec/rubocop/cop/rails/read_attribute_spec.rb +6 -12
- data/spec/rubocop/cop/rails/validation_spec.rb +13 -19
- data/spec/rubocop/cop/style/access_control_spec.rb +146 -152
- data/spec/rubocop/cop/style/alias_spec.rb +30 -36
- data/spec/rubocop/cop/style/align_array_spec.rb +57 -56
- data/spec/rubocop/cop/style/align_hash_spec.rb +256 -237
- data/spec/rubocop/cop/style/align_parameters_spec.rb +216 -202
- data/spec/rubocop/cop/style/and_or_spec.rb +51 -55
- data/spec/rubocop/cop/style/ascii_comments_spec.rb +14 -20
- data/spec/rubocop/cop/style/ascii_identifiers_spec.rb +26 -32
- data/spec/rubocop/cop/style/attr_spec.rb +11 -17
- data/spec/rubocop/cop/style/begin_block_spec.rb +6 -12
- data/spec/rubocop/cop/style/block_comments_spec.rb +13 -19
- data/spec/rubocop/cop/style/block_nesting_spec.rb +134 -140
- data/spec/rubocop/cop/style/blocks_spec.rb +81 -84
- data/spec/rubocop/cop/style/case_equality_spec.rb +5 -11
- data/spec/rubocop/cop/style/case_indentation_spec.rb +71 -77
- data/spec/rubocop/cop/style/character_literal_spec.rb +31 -37
- data/spec/rubocop/cop/style/class_and_module_camel_case_spec.rb +31 -37
- data/spec/rubocop/cop/style/class_length_spec.rb +65 -0
- data/spec/rubocop/cop/style/class_methods_spec.rb +35 -41
- data/spec/rubocop/cop/style/class_vars_spec.rb +11 -17
- data/spec/rubocop/cop/style/collection_methods_spec.rb +41 -47
- data/spec/rubocop/cop/style/colon_method_call_spec.rb +45 -51
- data/spec/rubocop/cop/style/comment_annotation_spec.rb +79 -85
- data/spec/rubocop/cop/style/constant_name_spec.rb +45 -51
- data/spec/rubocop/cop/style/def_with_parentheses_spec.rb +28 -34
- data/spec/rubocop/cop/style/def_without_parentheses_spec.rb +23 -29
- data/spec/rubocop/cop/style/documentation_spec.rb +60 -66
- data/spec/rubocop/cop/style/dot_position_spec.rb +50 -56
- data/spec/rubocop/cop/style/empty_line_between_defs_spec.rb +109 -110
- data/spec/rubocop/cop/style/empty_lines_spec.rb +28 -34
- data/spec/rubocop/cop/style/empty_literal_spec.rb +80 -86
- data/spec/rubocop/cop/style/encoding_spec.rb +50 -56
- data/spec/rubocop/cop/style/end_block_spec.rb +6 -12
- data/spec/rubocop/cop/style/end_of_line_spec.rb +13 -19
- data/spec/rubocop/cop/style/even_odd_spec.rb +69 -41
- data/spec/rubocop/cop/style/favor_join_spec.rb +21 -27
- data/spec/rubocop/cop/style/favor_modifier_spec.rb +180 -176
- data/spec/rubocop/cop/style/favor_sprintf_spec.rb +41 -47
- data/spec/rubocop/cop/style/favor_unless_over_negated_if_spec.rb +63 -69
- data/spec/rubocop/cop/style/favor_until_over_negated_while_spec.rb +32 -38
- data/spec/rubocop/cop/style/final_newline_spec.rb +16 -22
- data/spec/rubocop/cop/style/for_spec.rb +18 -24
- data/spec/rubocop/cop/style/global_vars_spec.rb +23 -29
- data/spec/rubocop/cop/style/hash_methods_spec.rb +39 -45
- data/spec/rubocop/cop/style/hash_syntax_spec.rb +93 -65
- data/spec/rubocop/cop/style/if_with_semicolon_spec.rb +11 -17
- data/spec/rubocop/cop/style/indentation_width_spec.rb +377 -383
- data/spec/rubocop/cop/style/lambda_call_spec.rb +40 -22
- data/spec/rubocop/cop/style/lambda_spec.rb +30 -34
- data/spec/rubocop/cop/style/leading_comment_space_spec.rb +44 -50
- data/spec/rubocop/cop/style/line_length_spec.rb +11 -17
- data/spec/rubocop/cop/style/method_call_parentheses_spec.rb +14 -20
- data/spec/rubocop/cop/style/method_called_on_do_end_block_spec.rb +60 -0
- data/spec/rubocop/cop/style/method_length_spec.rb +127 -133
- data/spec/rubocop/cop/style/method_name_spec.rb +103 -0
- data/spec/rubocop/cop/style/module_function_spec.rb +16 -22
- data/spec/rubocop/cop/style/multiline_block_chain_spec.rb +64 -70
- data/spec/rubocop/cop/style/multiline_if_then_spec.rb +74 -80
- data/spec/rubocop/cop/style/nil_comparison_spec.rb +20 -26
- data/spec/rubocop/cop/style/not_spec.rb +13 -19
- data/spec/rubocop/cop/style/numeric_literals_spec.rb +36 -35
- data/spec/rubocop/cop/style/one_line_conditional_spec.rb +5 -11
- data/spec/rubocop/cop/style/op_method_spec.rb +61 -67
- data/spec/rubocop/cop/style/parameter_lists_spec.rb +31 -37
- data/spec/rubocop/cop/style/parentheses_around_condition_spec.rb +62 -68
- data/spec/rubocop/cop/style/perl_backrefs_spec.rb +9 -15
- data/spec/rubocop/cop/style/proc_spec.rb +13 -19
- data/spec/rubocop/cop/style/raise_args_spec.rb +55 -0
- data/spec/rubocop/cop/style/reduce_arguments_spec.rb +49 -55
- data/spec/rubocop/cop/style/redundant_begin_spec.rb +47 -53
- data/spec/rubocop/cop/style/redundant_exception_spec.rb +27 -0
- data/spec/rubocop/cop/style/redundant_return_spec.rb +164 -72
- data/spec/rubocop/cop/style/redundant_self_spec.rb +109 -115
- data/spec/rubocop/cop/style/regexp_literal_spec.rb +57 -63
- data/spec/rubocop/cop/style/rescue_modifier_spec.rb +99 -105
- data/spec/rubocop/cop/style/semicolon_spec.rb +95 -90
- data/spec/rubocop/cop/style/signal_exception_spec.rb +248 -95
- data/spec/rubocop/cop/style/single_line_methods_spec.rb +45 -51
- data/spec/rubocop/cop/style/space_after_colon_spec.rb +14 -20
- data/spec/rubocop/cop/style/space_after_comma_spec.rb +16 -22
- data/spec/rubocop/cop/style/space_after_control_keyword_spec.rb +48 -54
- data/spec/rubocop/cop/style/space_after_method_name_spec.rb +49 -55
- data/spec/rubocop/cop/style/space_after_semicolon_spec.rb +10 -16
- data/spec/rubocop/cop/style/space_around_block_braces_spec.rb +118 -50
- data/spec/rubocop/cop/style/space_around_equals_in_default_parameter_spec.rb +18 -24
- data/spec/rubocop/cop/style/space_around_operators_spec.rb +204 -210
- data/spec/rubocop/cop/style/space_before_modifier_keyword_spec.rb +36 -42
- data/spec/rubocop/cop/style/space_inside_brackets_spec.rb +39 -45
- data/spec/rubocop/cop/style/space_inside_hash_literal_braces_spec.rb +62 -68
- data/spec/rubocop/cop/style/space_inside_parens_spec.rb +18 -24
- data/spec/rubocop/cop/style/special_global_vars_spec.rb +40 -46
- data/spec/rubocop/cop/style/string_literals_spec.rb +148 -70
- data/spec/rubocop/cop/style/symbol_array_spec.rb +28 -34
- data/spec/rubocop/cop/style/symbol_name_spec.rb +132 -138
- data/spec/rubocop/cop/style/tab_spec.rb +9 -15
- data/spec/rubocop/cop/style/ternary_operator_spec.rb +25 -31
- data/spec/rubocop/cop/style/trailing_blank_lines_spec.rb +10 -16
- data/spec/rubocop/cop/style/trailing_whitespace_spec.rb +14 -20
- data/spec/rubocop/cop/style/trivial_accessors_spec.rb +374 -380
- data/spec/rubocop/cop/style/unless_else_spec.rb +17 -23
- data/spec/rubocop/cop/style/variable_interpolation_spec.rb +36 -42
- data/spec/rubocop/cop/style/variable_name_spec.rb +83 -0
- data/spec/rubocop/cop/style/when_then_spec.rb +31 -37
- data/spec/rubocop/cop/style/while_until_do_spec.rb +47 -53
- data/spec/rubocop/cop/style/word_array_spec.rb +49 -55
- data/spec/rubocop/cop/team_spec.rb +125 -127
- data/spec/rubocop/cop/variable_inspector/assignment_spec.rb +176 -180
- data/spec/rubocop/cop/variable_inspector/locatable_spec.rb +580 -586
- data/spec/rubocop/cop/variable_inspector/scope_spec.rb +140 -146
- data/spec/rubocop/cop/variable_inspector/variable_spec.rb +52 -58
- data/spec/rubocop/cop/variable_inspector/variable_table_spec.rb +217 -223
- data/spec/rubocop/cop/variable_inspector_spec.rb +15 -19
- data/spec/rubocop/formatter/clang_style_formatter_spec.rb +35 -36
- data/spec/rubocop/formatter/disabled_config_formatter_spec.rb +2 -2
- data/spec/rubocop/formatter/emacs_style_formatter_spec.rb +24 -1
- data/spec/rubocop/formatter/file_list_formatter_spec.rb +1 -1
- data/spec/rubocop/formatter/formatter_set_spec.rb +3 -3
- data/spec/rubocop/formatter/json_formatter_spec.rb +7 -2
- data/spec/rubocop/formatter/offence_count_formatter_spec.rb +1 -1
- data/spec/rubocop/formatter/progress_formatter_spec.rb +1 -1
- data/spec/rubocop/formatter/simple_text_formatter_spec.rb +55 -6
- data/spec/rubocop/options_spec.rb +233 -0
- data/spec/rubocop/processed_source_spec.rb +85 -42
- data/spec/rubocop/source_parser_spec.rb +108 -110
- data/spec/rubocop/target_finder_spec.rb +125 -127
- data/spec/rubocop/token_spec.rb +15 -17
- metadata +32 -8
- data/lib/rubocop/backports/bsearch.rb +0 -39
- data/lib/rubocop/cop/style/method_and_variable_snake_case.rb +0 -77
- data/spec/rubocop/cop/style/method_and_variable_snake_case_spec.rb +0 -102
@@ -2,132 +2,126 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
module Style
|
8
|
-
describe RedundantSelf do
|
9
|
-
subject(:cop) { RedundantSelf.new }
|
5
|
+
describe Rubocop::Cop::Style::RedundantSelf do
|
6
|
+
subject(:cop) { described_class.new }
|
10
7
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
8
|
+
it 'reports an offence a self receiver on an rvalue' do
|
9
|
+
src = ['a = self.b']
|
10
|
+
inspect_source(cop, src)
|
11
|
+
expect(cop.offences.size).to eq(1)
|
12
|
+
end
|
16
13
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
14
|
+
it 'accepts a self receiver on an lvalue of an assignment' do
|
15
|
+
src = ['self.a = b']
|
16
|
+
inspect_source(cop, src)
|
17
|
+
expect(cop.offences).to be_empty
|
18
|
+
end
|
22
19
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
20
|
+
it 'accepts a self receiver on an lvalue of an or-assignment' do
|
21
|
+
src = ['self.logger ||= Rails.logger']
|
22
|
+
inspect_source(cop, src)
|
23
|
+
expect(cop.offences).to be_empty
|
24
|
+
end
|
28
25
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
26
|
+
it 'accepts a self receiver on an lvalue of an and-assignment' do
|
27
|
+
src = ['self.flag &&= value']
|
28
|
+
inspect_source(cop, src)
|
29
|
+
expect(cop.offences).to be_empty
|
30
|
+
end
|
34
31
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
32
|
+
it 'accepts a self receiver on an lvalue of a plus-assignment' do
|
33
|
+
src = ['self.sum += 10']
|
34
|
+
inspect_source(cop, src)
|
35
|
+
expect(cop.offences).to be_empty
|
36
|
+
end
|
40
37
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
38
|
+
it 'accepts a self receiver with the square bracket operator' do
|
39
|
+
src = ['self[a]']
|
40
|
+
inspect_source(cop, src)
|
41
|
+
expect(cop.offences).to be_empty
|
42
|
+
end
|
46
43
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
44
|
+
it 'accepts a self receiver with the double less-than operator' do
|
45
|
+
src = ['self << a']
|
46
|
+
inspect_source(cop, src)
|
47
|
+
expect(cop.offences).to be_empty
|
48
|
+
end
|
52
49
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
50
|
+
it 'accepts a self receiver for methods named like ruby keywords' do
|
51
|
+
src = ['a = self.class',
|
52
|
+
'self.for(deps, [], true)',
|
53
|
+
'self.and(other)',
|
54
|
+
'self.or(other)',
|
55
|
+
'self.alias',
|
56
|
+
'self.begin',
|
57
|
+
'self.break',
|
58
|
+
'self.case',
|
59
|
+
'self.def',
|
60
|
+
'self.defined',
|
61
|
+
'self.do',
|
62
|
+
'self.else',
|
63
|
+
'self.elsif',
|
64
|
+
'self.end',
|
65
|
+
'self.ensure',
|
66
|
+
'self.false',
|
67
|
+
'self.if',
|
68
|
+
'self.in',
|
69
|
+
'self.module',
|
70
|
+
'self.next',
|
71
|
+
'self.nil',
|
72
|
+
'self.not',
|
73
|
+
'self.redo',
|
74
|
+
'self.rescue',
|
75
|
+
'self.retry',
|
76
|
+
'self.return',
|
77
|
+
'self.self',
|
78
|
+
'self.super',
|
79
|
+
'self.then',
|
80
|
+
'self.true',
|
81
|
+
'self.undef',
|
82
|
+
'self.unless',
|
83
|
+
'self.until',
|
84
|
+
'self.when',
|
85
|
+
'self.while',
|
86
|
+
'self.yield'
|
87
|
+
]
|
88
|
+
inspect_source(cop, src)
|
89
|
+
expect(cop.offences).to be_empty
|
90
|
+
end
|
94
91
|
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
92
|
+
it 'accepts a self receiver used to distinguish from blockarg' do
|
93
|
+
src = ['def requested_specs(&groups)',
|
94
|
+
' some_method(self.groups)',
|
95
|
+
'end',
|
96
|
+
]
|
97
|
+
inspect_source(cop, src)
|
98
|
+
expect(cop.offences).to be_empty
|
99
|
+
end
|
103
100
|
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
101
|
+
it 'accepts a self receiver used to distinguish from argument' do
|
102
|
+
src = ['def requested_specs(groups)',
|
103
|
+
' some_method(self.groups)',
|
104
|
+
'end',
|
105
|
+
]
|
106
|
+
inspect_source(cop, src)
|
107
|
+
expect(cop.offences).to be_empty
|
108
|
+
end
|
112
109
|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
110
|
+
it 'accepts a self receiver used to distinguish from local variable' do
|
111
|
+
src = ['def requested_specs',
|
112
|
+
' @requested_specs ||= begin',
|
113
|
+
' groups = self.groups - Bundler.settings.without',
|
114
|
+
' groups.map! { |g| g.to_sym }',
|
115
|
+
' specs_for(groups)',
|
116
|
+
' end',
|
117
|
+
'end',
|
118
|
+
]
|
119
|
+
inspect_source(cop, src)
|
120
|
+
expect(cop.offences).to be_empty
|
121
|
+
end
|
125
122
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
end
|
130
|
-
end
|
131
|
-
end
|
123
|
+
it 'auto-corrects by removing redundant self' do
|
124
|
+
new_source = autocorrect_source(cop, ['self.x'])
|
125
|
+
expect(new_source).to eq('x')
|
132
126
|
end
|
133
127
|
end
|
@@ -2,78 +2,72 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
describe RegexpLiteral, :config do
|
9
|
-
subject(:rl) { RegexpLiteral.new(config) }
|
10
|
-
let(:cop_config) { { 'MaxSlashes' => 1 } }
|
5
|
+
describe Rubocop::Cop::Style::RegexpLiteral, :config do
|
6
|
+
subject(:cop) { described_class.new(config) }
|
7
|
+
let(:cop_config) { { 'MaxSlashes' => 1 } }
|
11
8
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
9
|
+
context 'when a regexp uses // delimiters' do
|
10
|
+
context 'when MaxSlashes is 1' do
|
11
|
+
it 'registers an offence for two slashes in regexp' do
|
12
|
+
inspect_source(cop, ['x =~ /home\/\//',
|
13
|
+
'y =~ /etc\/top\//'])
|
14
|
+
expect(cop.messages)
|
15
|
+
.to eq(['Use %r for regular expressions matching more ' +
|
16
|
+
"than 1 '/' character."] * 2)
|
17
|
+
end
|
21
18
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
19
|
+
it 'accepts zero or one slash in regexp' do
|
20
|
+
inspect_source(cop, ['x =~ /\/home/',
|
21
|
+
'y =~ /\//',
|
22
|
+
'w =~ /\//m',
|
23
|
+
'z =~ /a/'])
|
24
|
+
expect(cop.offences).to be_empty
|
25
|
+
end
|
26
|
+
end
|
30
27
|
|
31
|
-
|
32
|
-
|
28
|
+
context 'when MaxSlashes is 0' do
|
29
|
+
let(:cop_config) { { 'MaxSlashes' => 0 } }
|
33
30
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
31
|
+
it 'registers an offence for one slash in regexp' do
|
32
|
+
inspect_source(cop, ['x =~ /home\//'])
|
33
|
+
expect(cop.messages)
|
34
|
+
.to eq(['Use %r for regular expressions matching more ' +
|
35
|
+
"than 0 '/' characters."])
|
36
|
+
end
|
40
37
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
38
|
+
it 'accepts zero slashes in regexp' do
|
39
|
+
inspect_source(cop, ['z =~ /a/'])
|
40
|
+
expect(cop.offences).to be_empty
|
41
|
+
end
|
45
42
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
43
|
+
it 'registers an offence for zero slashes in regexp' do
|
44
|
+
inspect_source(cop, ['y =~ %r(etc)'])
|
45
|
+
expect(cop.messages)
|
46
|
+
.to eq(['Use %r only for regular expressions matching more ' +
|
47
|
+
"than 0 '/' characters."])
|
48
|
+
end
|
52
49
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
50
|
+
it 'accepts regexp with one slash' do
|
51
|
+
inspect_source(cop, ['x =~ %r(/home)'])
|
52
|
+
expect(cop.offences).to be_empty
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
59
56
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
57
|
+
context 'when a regexp uses %r delimiters' do
|
58
|
+
context 'when MaxSlashes is 1' do
|
59
|
+
it 'registers an offence for zero or one slash in regexp' do
|
60
|
+
inspect_source(cop, ['x =~ %r(/home)',
|
61
|
+
'y =~ %r(etc)'])
|
62
|
+
expect(cop.messages)
|
63
|
+
.to eq(['Use %r only for regular expressions matching more ' +
|
64
|
+
"than 1 '/' character."] * 2)
|
65
|
+
end
|
69
66
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
67
|
+
it 'accepts regexp with two or more slashes' do
|
68
|
+
inspect_source(cop, ['x =~ %r(/home/)',
|
69
|
+
'y =~ %r(/////)'])
|
70
|
+
expect(cop.offences).to be_empty
|
77
71
|
end
|
78
72
|
end
|
79
73
|
end
|
@@ -2,121 +2,115 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
module Style
|
8
|
-
describe RescueModifier do
|
9
|
-
subject(:rm) { RescueModifier.new }
|
5
|
+
describe Rubocop::Cop::Style::RescueModifier do
|
6
|
+
subject(:cop) { described_class.new }
|
10
7
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
8
|
+
it 'registers an offence for modifier rescue' do
|
9
|
+
inspect_source(cop,
|
10
|
+
['method rescue handle'])
|
11
|
+
expect(cop.offences.size).to eq(1)
|
12
|
+
expect(cop.messages)
|
13
|
+
.to eq(['Avoid using rescue in its modifier form.'])
|
14
|
+
end
|
18
15
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
16
|
+
it 'handles more complex expression with modifier rescue' do
|
17
|
+
inspect_source(cop,
|
18
|
+
['method1 or method2 rescue handle'])
|
19
|
+
expect(cop.offences.size).to eq(1)
|
20
|
+
expect(cop.messages)
|
21
|
+
.to eq(['Avoid using rescue in its modifier form.'])
|
22
|
+
end
|
26
23
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
24
|
+
it 'handles modifier rescue in normal rescue' do
|
25
|
+
inspect_source(cop,
|
26
|
+
['begin',
|
27
|
+
' test rescue modifier_handle',
|
28
|
+
'rescue',
|
29
|
+
' normal_handle',
|
30
|
+
'end'])
|
31
|
+
expect(cop.offences.size).to eq(1)
|
32
|
+
expect(cop.offences.first.line).to eq(2)
|
33
|
+
end
|
37
34
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
35
|
+
it 'does not register an offence for normal rescue' do
|
36
|
+
inspect_source(cop,
|
37
|
+
['begin',
|
38
|
+
' test',
|
39
|
+
'rescue',
|
40
|
+
' handle',
|
41
|
+
'end'])
|
42
|
+
expect(cop.offences).to be_empty
|
43
|
+
end
|
47
44
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
45
|
+
it 'does not register an offence for normal rescue with ensure' do
|
46
|
+
inspect_source(cop,
|
47
|
+
['begin',
|
48
|
+
' test',
|
49
|
+
'rescue',
|
50
|
+
' handle',
|
51
|
+
'ensure',
|
52
|
+
' cleanup',
|
53
|
+
'end'])
|
54
|
+
expect(cop.offences).to be_empty
|
55
|
+
end
|
59
56
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
57
|
+
it 'does not register an offence for nested normal rescue' do
|
58
|
+
inspect_source(cop,
|
59
|
+
['begin',
|
60
|
+
' begin',
|
61
|
+
' test',
|
62
|
+
' rescue',
|
63
|
+
' handle_inner',
|
64
|
+
' end',
|
65
|
+
'rescue',
|
66
|
+
' handle_outer',
|
67
|
+
'end'])
|
68
|
+
expect(cop.offences).to be_empty
|
69
|
+
end
|
73
70
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
71
|
+
context 'when an instance method has implicit begin' do
|
72
|
+
it 'accepts normal rescue' do
|
73
|
+
inspect_source(cop,
|
74
|
+
['def some_method',
|
75
|
+
' test',
|
76
|
+
'rescue',
|
77
|
+
' handle',
|
78
|
+
'end'])
|
79
|
+
expect(cop.offences).to be_empty
|
80
|
+
end
|
84
81
|
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
82
|
+
it 'handles modifier rescue in body of implicit begin' do
|
83
|
+
inspect_source(cop,
|
84
|
+
['def some_method',
|
85
|
+
' test rescue modifier_handle',
|
86
|
+
'rescue',
|
87
|
+
' normal_handle',
|
88
|
+
'end'])
|
89
|
+
expect(cop.offences.size).to eq(1)
|
90
|
+
expect(cop.offences.first.line).to eq(2)
|
91
|
+
end
|
92
|
+
end
|
96
93
|
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
94
|
+
context 'when a singleton method has implicit begin' do
|
95
|
+
it 'accepts normal rescue' do
|
96
|
+
inspect_source(cop,
|
97
|
+
['def self.some_method',
|
98
|
+
' test',
|
99
|
+
'rescue',
|
100
|
+
' handle',
|
101
|
+
'end'])
|
102
|
+
expect(cop.offences).to be_empty
|
103
|
+
end
|
107
104
|
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
end
|
118
|
-
end
|
119
|
-
end
|
105
|
+
it 'handles modifier rescue in body of implicit begin' do
|
106
|
+
inspect_source(cop,
|
107
|
+
['def self.some_method',
|
108
|
+
' test rescue modifier_handle',
|
109
|
+
'rescue',
|
110
|
+
' normal_handle',
|
111
|
+
'end'])
|
112
|
+
expect(cop.offences.size).to eq(1)
|
113
|
+
expect(cop.offences.first.line).to eq(2)
|
120
114
|
end
|
121
115
|
end
|
122
116
|
end
|