rubocop 0.7.2 → 0.8.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 +7 -1
- data/CHANGELOG.md +19 -0
- data/README.md +4 -8
- data/bin/rubocop +2 -2
- data/config/default.yml +8 -0
- data/config/enabled.yml +21 -24
- data/lib/rubocop.rb +9 -7
- data/lib/rubocop/cli.rb +73 -52
- data/lib/rubocop/config.rb +8 -5
- data/lib/rubocop/cop/access_control.rb +41 -0
- data/lib/rubocop/cop/alias.rb +7 -5
- data/lib/rubocop/cop/align_parameters.rb +20 -96
- data/lib/rubocop/cop/and_or.rb +26 -0
- data/lib/rubocop/cop/ascii_comments.rb +3 -8
- data/lib/rubocop/cop/ascii_identifiers.rb +6 -5
- data/lib/rubocop/cop/avoid_class_vars.rb +5 -10
- data/lib/rubocop/cop/avoid_for.rb +7 -5
- data/lib/rubocop/cop/avoid_global_vars.rb +19 -7
- data/lib/rubocop/cop/avoid_perl_backrefs.rb +7 -10
- data/lib/rubocop/cop/avoid_perlisms.rb +11 -10
- data/lib/rubocop/cop/block_comments.rb +4 -6
- data/lib/rubocop/cop/blocks.rb +11 -47
- data/lib/rubocop/cop/case_indentation.rb +9 -31
- data/lib/rubocop/cop/class_and_module_camel_case.rb +20 -11
- data/lib/rubocop/cop/class_methods.rb +5 -10
- data/lib/rubocop/cop/collection_methods.rb +16 -16
- data/lib/rubocop/cop/colon_method_call.rb +8 -32
- data/lib/rubocop/cop/constant_name.rb +24 -0
- data/lib/rubocop/cop/cop.rb +20 -78
- data/lib/rubocop/cop/def_parentheses.rb +43 -35
- data/lib/rubocop/cop/empty_line_between_defs.rb +11 -15
- data/lib/rubocop/cop/empty_lines.rb +20 -9
- data/lib/rubocop/cop/empty_literal.rb +47 -0
- data/lib/rubocop/cop/encoding.rb +3 -3
- data/lib/rubocop/cop/end_of_line.rb +3 -3
- data/lib/rubocop/cop/ensure_return.rb +6 -23
- data/lib/rubocop/cop/eval.rb +7 -10
- data/lib/rubocop/cop/favor_join.rb +9 -24
- data/lib/rubocop/cop/favor_modifier.rb +38 -48
- data/lib/rubocop/cop/favor_percent_r.rb +7 -7
- data/lib/rubocop/cop/favor_sprintf.rb +8 -24
- data/lib/rubocop/cop/favor_unless_over_negated_if.rb +19 -17
- data/lib/rubocop/cop/handle_exceptions.rb +7 -11
- data/lib/rubocop/cop/hash_syntax.rb +29 -14
- data/lib/rubocop/cop/if_then_else.rb +32 -29
- data/lib/rubocop/cop/leading_comment_space.rb +5 -8
- data/lib/rubocop/cop/line_continuation.rb +4 -7
- data/lib/rubocop/cop/line_length.rb +3 -3
- data/lib/rubocop/cop/loop.rb +33 -0
- data/lib/rubocop/cop/method_and_variable_snake_case.rb +42 -19
- data/lib/rubocop/cop/method_length.rb +34 -37
- data/lib/rubocop/cop/new_lambda_literal.rb +8 -6
- data/lib/rubocop/cop/not.rb +10 -4
- data/lib/rubocop/cop/numeric_literals.rb +9 -7
- data/lib/rubocop/cop/offence.rb +1 -1
- data/lib/rubocop/cop/op_method.rb +12 -22
- data/lib/rubocop/cop/parameter_lists.rb +12 -6
- data/lib/rubocop/cop/parentheses_around_condition.rb +11 -11
- data/lib/rubocop/cop/percent_r.rb +7 -7
- data/lib/rubocop/cop/reduce_arguments.rb +13 -51
- data/lib/rubocop/cop/rescue_exception.rb +13 -29
- data/lib/rubocop/cop/rescue_modifier.rb +5 -8
- data/lib/rubocop/cop/semicolon.rb +15 -74
- data/lib/rubocop/cop/single_line_methods.rb +28 -44
- data/lib/rubocop/cop/space_after_comma_etc.rb +29 -9
- data/lib/rubocop/cop/space_after_control_keyword.rb +16 -15
- data/lib/rubocop/cop/string_literals.rb +9 -35
- data/lib/rubocop/cop/surrounding_space.rb +213 -112
- data/lib/rubocop/cop/symbol_array.rb +9 -7
- data/lib/rubocop/cop/symbol_name.rb +23 -0
- data/lib/rubocop/cop/syntax.rb +14 -7
- data/lib/rubocop/cop/tab.rb +3 -3
- data/lib/rubocop/cop/ternary_operator.rb +26 -24
- data/lib/rubocop/cop/trailing_whitespace.rb +3 -5
- data/lib/rubocop/cop/trivial_accessors.rb +18 -95
- data/lib/rubocop/cop/unless_else.rb +11 -7
- data/lib/rubocop/cop/util.rb +26 -0
- data/lib/rubocop/cop/variable_interpolation.rb +18 -10
- data/lib/rubocop/cop/when_then.rb +6 -17
- data/lib/rubocop/cop/word_array.rb +18 -19
- data/lib/rubocop/version.rb +1 -1
- data/rubocop.gemspec +1 -0
- data/spec/project_spec.rb +1 -1
- data/spec/rubocop/cli_spec.rb +16 -9
- data/spec/rubocop/config_spec.rb +13 -3
- data/spec/rubocop/cops/access_control_spec.rb +129 -0
- data/spec/rubocop/cops/alias_spec.rb +2 -6
- data/spec/rubocop/cops/align_parameters_spec.rb +58 -71
- data/spec/rubocop/cops/and_or_spec.rb +37 -0
- data/spec/rubocop/cops/ascii_comments_spec.rb +3 -4
- data/spec/rubocop/cops/ascii_identifiers_spec.rb +3 -4
- data/spec/rubocop/cops/avoid_class_vars_spec.rb +7 -2
- data/spec/rubocop/cops/avoid_for_spec.rb +1 -4
- data/spec/rubocop/cops/{avoid_global_vars.rb → avoid_global_vars_spec.rb} +4 -4
- data/spec/rubocop/cops/avoid_perl_backrefs_spec.rb +1 -1
- data/spec/rubocop/cops/avoid_perlisms_spec.rb +5 -5
- data/spec/rubocop/cops/block_comments_spec.rb +0 -4
- data/spec/rubocop/cops/blocks_spec.rb +33 -0
- data/spec/rubocop/cops/case_indentation_spec.rb +5 -5
- data/spec/rubocop/cops/class_and_module_camel_case_spec.rb +15 -5
- data/spec/rubocop/cops/class_methods_spec.rb +4 -4
- data/spec/rubocop/cops/collection_methods_spec.rb +9 -4
- data/spec/rubocop/cops/colon_method_call_spec.rb +11 -5
- data/spec/rubocop/cops/constant_name_spec.rb +42 -0
- data/spec/rubocop/cops/def_with_parentheses_spec.rb +13 -8
- data/spec/rubocop/cops/def_without_parentheses_spec.rb +11 -5
- data/spec/rubocop/cops/empty_line_between_defs_spec.rb +38 -38
- data/spec/rubocop/cops/empty_lines_spec.rb +15 -3
- data/spec/rubocop/cops/empty_literal_spec.rb +90 -0
- data/spec/rubocop/cops/encoding_spec.rb +9 -9
- data/spec/rubocop/cops/end_of_line_spec.rb +2 -2
- data/spec/rubocop/cops/ensure_return_spec.rb +1 -3
- data/spec/rubocop/cops/eval_spec.rb +8 -5
- data/spec/rubocop/cops/favor_join_spec.rb +1 -5
- data/spec/rubocop/cops/favor_modifier_spec.rb +16 -14
- data/spec/rubocop/cops/{favor_percent_r.rb → favor_percent_r_spec.rb} +6 -6
- data/spec/rubocop/cops/favor_sprintf_spec.rb +3 -9
- data/spec/rubocop/cops/favor_unless_over_negated_if_spec.rb +4 -4
- data/spec/rubocop/cops/favor_until_over_negated_while_spec.rb +3 -3
- data/spec/rubocop/cops/handle_exceptions_spec.rb +1 -3
- data/spec/rubocop/cops/hash_syntax_spec.rb +11 -6
- data/spec/rubocop/cops/if_with_semicolon_spec.rb +7 -1
- data/spec/rubocop/cops/leading_comment_space_spec.rb +0 -7
- data/spec/rubocop/cops/line_continuation_spec.rb +2 -2
- data/spec/rubocop/cops/line_length_spec.rb +2 -2
- data/spec/rubocop/cops/loop_spec.rb +31 -0
- data/spec/rubocop/cops/method_and_variable_snake_case_spec.rb +38 -12
- data/spec/rubocop/cops/method_length_spec.rb +85 -85
- data/spec/rubocop/cops/multiline_if_then_spec.rb +15 -15
- data/spec/rubocop/cops/new_lambda_literal_spec.rb +3 -3
- data/spec/rubocop/cops/not_spec.rb +1 -4
- data/spec/rubocop/cops/numeric_literals_spec.rb +13 -13
- data/spec/rubocop/cops/one_line_conditional_spec.rb +1 -1
- data/spec/rubocop/cops/op_method_spec.rb +2 -9
- data/spec/rubocop/cops/parameter_lists_spec.rb +7 -7
- data/spec/rubocop/cops/parentheses_around_condition_spec.rb +41 -44
- data/spec/rubocop/cops/percent_r_spec.rb +6 -6
- data/spec/rubocop/cops/reduce_arguments_spec.rb +4 -4
- data/spec/rubocop/cops/rescue_exception_spec.rb +48 -8
- data/spec/rubocop/cops/rescue_modifier_spec.rb +2 -5
- data/spec/rubocop/cops/semicolon_spec.rb +2 -30
- data/spec/rubocop/cops/single_line_methods_spec.rb +13 -13
- data/spec/rubocop/cops/space_after_colon_spec.rb +3 -3
- data/spec/rubocop/cops/space_after_comma_spec.rb +14 -2
- data/spec/rubocop/cops/space_after_control_keyword_spec.rb +42 -3
- data/spec/rubocop/cops/space_after_semicolon_spec.rb +2 -2
- data/spec/rubocop/cops/space_around_braces_spec.rb +18 -3
- data/spec/rubocop/cops/space_around_equals_in_default_parameter_spec.rb +4 -4
- data/spec/rubocop/cops/space_around_operators_spec.rb +82 -27
- data/spec/rubocop/cops/space_inside_brackets_spec.rb +13 -7
- data/spec/rubocop/cops/space_inside_hash_literal_braces_spec.rb +14 -9
- data/spec/rubocop/cops/space_inside_parens_spec.rb +7 -3
- data/spec/rubocop/cops/string_literals_spec.rb +17 -5
- data/spec/rubocop/cops/symbol_array_spec.rb +18 -2
- data/spec/rubocop/cops/symbol_name_spec.rb +119 -0
- data/spec/rubocop/cops/syntax_spec.rb +25 -18
- data/spec/rubocop/cops/tab_spec.rb +2 -2
- data/spec/rubocop/cops/ternary_operator_spec.rb +13 -17
- data/spec/rubocop/cops/trailing_whitespace_spec.rb +3 -3
- data/spec/rubocop/cops/trivial_accessors_spec.rb +17 -20
- data/spec/rubocop/cops/unless_else_spec.rb +8 -8
- data/spec/rubocop/cops/variable_interpolation_spec.rb +0 -5
- data/spec/rubocop/cops/when_then_spec.rb +14 -21
- data/spec/rubocop/cops/word_array_spec.rb +12 -4
- data/spec/spec_helper.rb +12 -4
- metadata +40 -31
- data/.document +0 -5
- data/lib/rubocop/cop/ampersands_pipes_vs_and_or.rb +0 -25
- data/lib/rubocop/cop/array_literal.rb +0 -61
- data/lib/rubocop/cop/brace_after_percent.rb +0 -32
- data/lib/rubocop/cop/grammar.rb +0 -138
- data/lib/rubocop/cop/hash_literal.rb +0 -61
- data/lib/rubocop/cop/percent_literals.rb +0 -25
- data/lib/rubocop/cop/symbol_snake_case.rb +0 -47
- data/spec/rubocop/cops/ampersands_pipes_vs_and_or_spec.rb +0 -57
- data/spec/rubocop/cops/array_literal_spec.rb +0 -46
- data/spec/rubocop/cops/brace_after_percent_spec.rb +0 -33
- data/spec/rubocop/cops/grammar_spec.rb +0 -81
- data/spec/rubocop/cops/hash_literal_spec.rb +0 -46
- data/spec/rubocop/cops/multiline_blocks_spec.rb +0 -24
- data/spec/rubocop/cops/percent_literals_spec.rb +0 -47
- data/spec/rubocop/cops/single_line_blocks_spec.rb +0 -22
- data/spec/rubocop/cops/symbol_snake_case_spec.rb +0 -93
@@ -7,20 +7,46 @@ module Rubocop
|
|
7
7
|
describe MethodAndVariableSnakeCase do
|
8
8
|
let(:snake_case) { MethodAndVariableSnakeCase.new }
|
9
9
|
|
10
|
-
it 'registers an offence for camel case in
|
11
|
-
inspect_source(snake_case,
|
10
|
+
it 'registers an offence for camel case in instance method name' do
|
11
|
+
inspect_source(snake_case,
|
12
12
|
['def myMethod',
|
13
|
-
'
|
14
|
-
' self.mySetter = 2',
|
15
|
-
' @myAttribute = 3',
|
13
|
+
' # ...',
|
16
14
|
'end',
|
17
15
|
])
|
18
16
|
expect(snake_case.offences.map(&:message)).to eq(
|
19
|
-
['Use snake_case for methods and variables.']
|
17
|
+
['Use snake_case for methods and variables.'])
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'registers an offence for camel case in singleton method name' do
|
21
|
+
inspect_source(snake_case,
|
22
|
+
['def self.myMethod',
|
23
|
+
' # ...',
|
24
|
+
'end',
|
25
|
+
])
|
26
|
+
expect(snake_case.offences.map(&:message)).to eq(
|
27
|
+
['Use snake_case for methods and variables.'])
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'registers an offence for camel case in local variable name' do
|
31
|
+
inspect_source(snake_case, ['myLocal = 1'])
|
32
|
+
expect(snake_case.offences.map(&:message)).to eq(
|
33
|
+
['Use snake_case for methods and variables.'])
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'registers an offence for camel case in instance variable name' do
|
37
|
+
inspect_source(snake_case, ['@myAttribute = 3'])
|
38
|
+
expect(snake_case.offences.map(&:message)).to eq(
|
39
|
+
['Use snake_case for methods and variables.'])
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'registers an offence for camel case in setter name' do
|
43
|
+
inspect_source(snake_case, ['self.mySetter = 2'])
|
44
|
+
expect(snake_case.offences.map(&:message)).to eq(
|
45
|
+
['Use snake_case for methods and variables.'])
|
20
46
|
end
|
21
47
|
|
22
48
|
it 'registers an offence for capitalized camel case' do
|
23
|
-
inspect_source(snake_case,
|
49
|
+
inspect_source(snake_case,
|
24
50
|
['def MyMethod',
|
25
51
|
'end',
|
26
52
|
])
|
@@ -29,7 +55,7 @@ module Rubocop
|
|
29
55
|
end
|
30
56
|
|
31
57
|
it 'accepts snake case in names' do
|
32
|
-
inspect_source(snake_case,
|
58
|
+
inspect_source(snake_case,
|
33
59
|
['def my_method',
|
34
60
|
' my_local_html = 1',
|
35
61
|
' self.my_setter = 2',
|
@@ -40,7 +66,7 @@ module Rubocop
|
|
40
66
|
end
|
41
67
|
|
42
68
|
it 'registers an offence for mixed snake case and camel case' do
|
43
|
-
inspect_source(snake_case,
|
69
|
+
inspect_source(snake_case,
|
44
70
|
['def visit_Arel_Nodes_SelectStatement',
|
45
71
|
'end'])
|
46
72
|
expect(snake_case.offences.map(&:message)).to eq(
|
@@ -48,17 +74,17 @@ module Rubocop
|
|
48
74
|
end
|
49
75
|
|
50
76
|
it 'accepts screaming snake case globals' do
|
51
|
-
inspect_source(snake_case,
|
77
|
+
inspect_source(snake_case, ['$MY_GLOBAL = 0'])
|
52
78
|
expect(snake_case.offences.map(&:message)).to be_empty
|
53
79
|
end
|
54
80
|
|
55
81
|
it 'accepts screaming snake case constants' do
|
56
|
-
inspect_source(snake_case,
|
82
|
+
inspect_source(snake_case, ['MY_CONSTANT = 0'])
|
57
83
|
expect(snake_case.offences.map(&:message)).to be_empty
|
58
84
|
end
|
59
85
|
|
60
86
|
it 'accepts assigning to camel case constant' do
|
61
|
-
inspect_source(snake_case,
|
87
|
+
inspect_source(snake_case,
|
62
88
|
['Paren = Struct.new :left, :right, :kind'])
|
63
89
|
expect(snake_case.offences.map(&:message)).to be_empty
|
64
90
|
end
|
@@ -9,136 +9,136 @@ module Rubocop
|
|
9
9
|
before { MethodLength.config = { 'Max' => 5, 'CountComments' => false } }
|
10
10
|
|
11
11
|
it 'rejects a method with more than 5 lines' do
|
12
|
-
inspect_source(method_length,
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
12
|
+
inspect_source(method_length, ['def m()',
|
13
|
+
' a = 1',
|
14
|
+
' a = 2',
|
15
|
+
' a = 3',
|
16
|
+
' a = 4',
|
17
|
+
' a = 5',
|
18
|
+
' a = 6',
|
19
|
+
'end'])
|
20
20
|
expect(method_length.offences.size).to eq(1)
|
21
21
|
expect(method_length.offences.map(&:line_number).sort).to eq([1])
|
22
22
|
end
|
23
23
|
|
24
24
|
it 'accepts a method with less than 5 lines' do
|
25
|
-
inspect_source(method_length,
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
25
|
+
inspect_source(method_length, ['def m()',
|
26
|
+
' a = 1',
|
27
|
+
' a = 2',
|
28
|
+
' a = 3',
|
29
|
+
' a = 4',
|
30
|
+
'end'])
|
31
31
|
expect(method_length.offences).to be_empty
|
32
32
|
end
|
33
33
|
|
34
34
|
it 'does not count blank lines' do
|
35
|
-
inspect_source(method_length,
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
35
|
+
inspect_source(method_length, ['def m()',
|
36
|
+
' a = 1',
|
37
|
+
' a = 2',
|
38
|
+
' a = 3',
|
39
|
+
' a = 4',
|
40
|
+
'',
|
41
|
+
'',
|
42
|
+
' a = 7',
|
43
|
+
'end'])
|
44
44
|
expect(method_length.offences).to be_empty
|
45
45
|
end
|
46
46
|
|
47
47
|
it 'accepts empty methods' do
|
48
|
-
inspect_source(method_length,
|
49
|
-
|
48
|
+
inspect_source(method_length, ['def m()',
|
49
|
+
'end'])
|
50
50
|
expect(method_length.offences).to be_empty
|
51
51
|
end
|
52
52
|
|
53
53
|
it 'is not fooled by one-liner methods, syntax #1' do
|
54
|
-
inspect_source(method_length,
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
54
|
+
inspect_source(method_length, ['def one_line; 10 end',
|
55
|
+
'def self.m()',
|
56
|
+
' a = 1',
|
57
|
+
' a = 2',
|
58
|
+
' a = 4',
|
59
|
+
' a = 5',
|
60
|
+
' a = 6',
|
61
|
+
'end'])
|
62
62
|
expect(method_length.offences).to be_empty
|
63
63
|
end
|
64
64
|
|
65
65
|
it 'is not fooled by one-liner methods, syntax #2' do
|
66
|
-
inspect_source(method_length,
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
66
|
+
inspect_source(method_length, ['def one_line(test) 10 end',
|
67
|
+
'def self.m()',
|
68
|
+
' a = 1',
|
69
|
+
' a = 2',
|
70
|
+
' a = 4',
|
71
|
+
' a = 5',
|
72
|
+
' a = 6',
|
73
|
+
'end'])
|
74
74
|
expect(method_length.offences).to be_empty
|
75
75
|
end
|
76
76
|
|
77
77
|
it 'checks class methods, syntax #1' do
|
78
|
-
inspect_source(method_length,
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
78
|
+
inspect_source(method_length, ['def self.m()',
|
79
|
+
' a = 1',
|
80
|
+
' a = 2',
|
81
|
+
' a = 3',
|
82
|
+
' a = 4',
|
83
|
+
' a = 5',
|
84
|
+
' a = 6',
|
85
|
+
'end'])
|
86
86
|
expect(method_length.offences.size).to eq(1)
|
87
87
|
expect(method_length.offences.map(&:line_number).sort).to eq([1])
|
88
88
|
end
|
89
89
|
|
90
90
|
it 'checks class methods, syntax #2' do
|
91
|
-
inspect_source(method_length,
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
91
|
+
inspect_source(method_length, ['class K',
|
92
|
+
' class << self',
|
93
|
+
' def m()',
|
94
|
+
' a = 1',
|
95
|
+
' a = 2',
|
96
|
+
' a = 3',
|
97
|
+
' a = 4',
|
98
|
+
' a = 5',
|
99
|
+
' a = 6',
|
100
|
+
' end',
|
101
|
+
' end',
|
102
|
+
'end'])
|
103
103
|
expect(method_length.offences.size).to eq(1)
|
104
104
|
expect(method_length.offences.map(&:line_number).sort).to eq([3])
|
105
105
|
end
|
106
106
|
|
107
107
|
it 'properly counts lines when method ends with block' do
|
108
|
-
inspect_source(method_length,
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
108
|
+
inspect_source(method_length, ['def m()',
|
109
|
+
' something do',
|
110
|
+
' a = 2',
|
111
|
+
' a = 3',
|
112
|
+
' a = 4',
|
113
|
+
' a = 5',
|
114
|
+
' end',
|
115
|
+
'end'])
|
116
116
|
expect(method_length.offences.size).to eq(1)
|
117
117
|
expect(method_length.offences.map(&:line_number).sort).to eq([1])
|
118
118
|
end
|
119
119
|
|
120
120
|
it 'does not count commented lines by default' do
|
121
|
-
inspect_source(method_length,
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
121
|
+
inspect_source(method_length, ['def m()',
|
122
|
+
' a = 1',
|
123
|
+
' #a = 2',
|
124
|
+
' a = 3',
|
125
|
+
' #a = 4',
|
126
|
+
' a = 5',
|
127
|
+
' a = 6',
|
128
|
+
'end'])
|
129
129
|
expect(method_length.offences).to be_empty
|
130
130
|
end
|
131
131
|
|
132
132
|
it 'has the option of counting commented lines' do
|
133
133
|
MethodLength.config['CountComments'] = true
|
134
|
-
inspect_source(method_length,
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
134
|
+
inspect_source(method_length, ['def m()',
|
135
|
+
' a = 1',
|
136
|
+
' #a = 2',
|
137
|
+
' a = 3',
|
138
|
+
' #a = 4',
|
139
|
+
' a = 5',
|
140
|
+
' a = 6',
|
141
|
+
'end'])
|
142
142
|
expect(method_length.offences.size).to eq(1)
|
143
143
|
expect(method_length.offences.map(&:line_number).sort).to eq([1])
|
144
144
|
end
|
@@ -10,25 +10,25 @@ module Rubocop
|
|
10
10
|
# if
|
11
11
|
|
12
12
|
it 'registers an offence for then in multiline if' do
|
13
|
-
inspect_source(mit,
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
13
|
+
inspect_source(mit, ['if cond then',
|
14
|
+
'end',
|
15
|
+
"if cond then\t",
|
16
|
+
'end',
|
17
|
+
'if cond then ',
|
18
|
+
'end',
|
19
|
+
'if cond then # bad',
|
20
|
+
'end'])
|
21
21
|
expect(mit.offences.map(&:line_number)).to eq([1, 3, 5, 7])
|
22
22
|
end
|
23
23
|
|
24
24
|
it 'accepts multiline if without then' do
|
25
|
-
inspect_source(mit,
|
26
|
-
|
25
|
+
inspect_source(mit, ['if cond',
|
26
|
+
'end'])
|
27
27
|
expect(mit.offences.map(&:message)).to be_empty
|
28
28
|
end
|
29
29
|
|
30
30
|
it 'accepts table style if/then/elsif/ends' do
|
31
|
-
inspect_source(mit,
|
31
|
+
inspect_source(mit,
|
32
32
|
['if @io == $stdout then str << "$stdout"',
|
33
33
|
'elsif @io == $stdin then str << "$stdin"',
|
34
34
|
'elsif @io == $stderr then str << "$stderr"',
|
@@ -40,15 +40,15 @@ module Rubocop
|
|
40
40
|
# unless
|
41
41
|
|
42
42
|
it 'registers an offence for then in multiline unless' do
|
43
|
-
inspect_source(mit,
|
44
|
-
|
43
|
+
inspect_source(mit, ['unless cond then',
|
44
|
+
'end'])
|
45
45
|
expect(mit.offences.map(&:message)).to eq(
|
46
46
|
['Never use then for multi-line if/unless.'])
|
47
47
|
end
|
48
48
|
|
49
49
|
it 'accepts multiline unless without then' do
|
50
|
-
inspect_source(mit,
|
51
|
-
|
50
|
+
inspect_source(mit, ['unless cond',
|
51
|
+
'end'])
|
52
52
|
expect(mit.offences.map(&:message)).to be_empty
|
53
53
|
end
|
54
54
|
end
|
@@ -8,13 +8,13 @@ module Rubocop
|
|
8
8
|
let(:lambda_literal) { NewLambdaLiteral.new }
|
9
9
|
|
10
10
|
it 'registers an offence for an old lambda call' do
|
11
|
-
inspect_source(lambda_literal,
|
11
|
+
inspect_source(lambda_literal, ['f = lambda { |x| x }'])
|
12
12
|
expect(lambda_literal.offences.size).to eq(1)
|
13
13
|
end
|
14
14
|
|
15
15
|
it 'accepts the new lambda literal' do
|
16
|
-
inspect_source(lambda_literal,
|
17
|
-
|
16
|
+
inspect_source(lambda_literal, ['lambda = ->(x) { x }',
|
17
|
+
'lambda.(1)'])
|
18
18
|
expect(lambda_literal.offences).to be_empty
|
19
19
|
end
|
20
20
|
end
|
@@ -9,23 +9,20 @@ module Rubocop
|
|
9
9
|
|
10
10
|
it 'registers an offence for not' do
|
11
11
|
inspect_source(a,
|
12
|
-
'file.rb',
|
13
12
|
['not test'])
|
14
13
|
expect(a.offences.size).to eq(1)
|
15
14
|
expect(a.offences.map(&:message))
|
16
|
-
.to eq([Not::
|
15
|
+
.to eq([Not::MSG])
|
17
16
|
end
|
18
17
|
|
19
18
|
it 'does not register an offence for !' do
|
20
19
|
inspect_source(a,
|
21
|
-
'file.rb',
|
22
20
|
['!test'])
|
23
21
|
expect(a.offences).to be_empty
|
24
22
|
end
|
25
23
|
|
26
24
|
it 'does not register an offence for :not' do
|
27
25
|
inspect_source(a,
|
28
|
-
'file.rb',
|
29
26
|
['[:not, :if, :else]'])
|
30
27
|
expect(a.offences).to be_empty
|
31
28
|
end
|
@@ -8,40 +8,40 @@ module Rubocop
|
|
8
8
|
let(:num) { NumericLiterals.new }
|
9
9
|
|
10
10
|
it 'registers an offence for a long integer without underscores' do
|
11
|
-
inspect_source(num,
|
11
|
+
inspect_source(num, ['a = 123456'])
|
12
12
|
expect(num.offences.map(&:message)).to eq(
|
13
13
|
['Add underscores to large numeric literals to improve their ' +
|
14
14
|
'readability.'])
|
15
15
|
end
|
16
16
|
|
17
17
|
it 'registers an offence for an integer with not enough underscores' do
|
18
|
-
inspect_source(num,
|
18
|
+
inspect_source(num, ['a = 123456_789000'])
|
19
19
|
expect(num.offences.map(&:message)).to eq(
|
20
20
|
['Add underscores to large numeric literals to improve their ' +
|
21
21
|
'readability.'])
|
22
22
|
end
|
23
23
|
|
24
|
-
it 'registers an offence for a long float without underscores' do
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
end
|
24
|
+
# it 'registers an offence for a long float without underscores' do
|
25
|
+
# inspect_source(num, ['a = 1.234567'])
|
26
|
+
# expect(num.offences.map(&:message)).to eq(
|
27
|
+
# ['Add underscores to large numeric literals to improve their ' +
|
28
|
+
# 'readability.'])
|
29
|
+
# end
|
30
30
|
|
31
31
|
it 'accepts long numbers with underscore' do
|
32
|
-
inspect_source(num,
|
33
|
-
|
32
|
+
inspect_source(num, ['a = 123_456',
|
33
|
+
'b = 1.234_56'])
|
34
34
|
expect(num.offences.map(&:message)).to be_empty
|
35
35
|
end
|
36
36
|
|
37
37
|
it 'accepts a short integer without underscore' do
|
38
|
-
inspect_source(num,
|
38
|
+
inspect_source(num, ['a = 123'])
|
39
39
|
expect(num.offences.map(&:message)).to be_empty
|
40
40
|
end
|
41
41
|
|
42
42
|
it 'accepts short numbers without underscore' do
|
43
|
-
inspect_source(num,
|
44
|
-
|
43
|
+
inspect_source(num, ['a = 123',
|
44
|
+
'b = 123.456'])
|
45
45
|
expect(num.offences.map(&:message)).to be_empty
|
46
46
|
end
|
47
47
|
end
|