rubocop 0.13.1 → 0.14.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/.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,30 +2,24 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
module Style
|
8
|
-
describe UnlessElse do
|
9
|
-
subject(:ue) { UnlessElse.new }
|
5
|
+
describe Rubocop::Cop::Style::UnlessElse do
|
6
|
+
subject(:cop) { described_class.new }
|
10
7
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
8
|
+
it 'registers an offence for an unless with else' do
|
9
|
+
inspect_source(cop, ['unless x',
|
10
|
+
' a = 1',
|
11
|
+
'else',
|
12
|
+
' a = 0',
|
13
|
+
'end'])
|
14
|
+
expect(cop.messages).to eq(
|
15
|
+
['Never use unless with else. Rewrite these with the ' +
|
16
|
+
'positive case first.'])
|
17
|
+
end
|
21
18
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
19
|
+
it 'accepts an unless without else' do
|
20
|
+
inspect_source(cop, ['unless x',
|
21
|
+
' a = 1',
|
22
|
+
'end'])
|
23
|
+
expect(cop.messages).to be_empty
|
30
24
|
end
|
31
25
|
end
|
@@ -2,52 +2,46 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
module Style
|
8
|
-
describe VariableInterpolation do
|
9
|
-
subject(:vi) { VariableInterpolation.new }
|
5
|
+
describe Rubocop::Cop::Style::VariableInterpolation do
|
6
|
+
subject(:cop) { described_class.new }
|
10
7
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
8
|
+
it 'registers an offence for interpolated global variables' do
|
9
|
+
inspect_source(cop,
|
10
|
+
['puts "this is a #$test"'])
|
11
|
+
expect(cop.offences.size).to eq(1)
|
12
|
+
expect(cop.messages)
|
13
|
+
.to eq(['Replace interpolated var $test' +
|
14
|
+
' with expression #{$test}.'])
|
15
|
+
end
|
19
16
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
17
|
+
it 'registers an offence for interpolated regexp back references' do
|
18
|
+
inspect_source(cop,
|
19
|
+
['puts "this is a #$1"'])
|
20
|
+
expect(cop.offences.size).to eq(1)
|
21
|
+
expect(cop.messages)
|
22
|
+
.to eq(['Replace interpolated var $1 with expression #{$1}.'])
|
23
|
+
end
|
27
24
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
25
|
+
it 'registers an offence for interpolated instance variables' do
|
26
|
+
inspect_source(cop,
|
27
|
+
['puts "this is a #@test"'])
|
28
|
+
expect(cop.offences.size).to eq(1)
|
29
|
+
expect(cop.messages)
|
30
|
+
.to eq(['Replace interpolated var @test' +
|
31
|
+
' with expression #{@test}.'])
|
32
|
+
end
|
36
33
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
34
|
+
it 'registers an offence for interpolated class variables' do
|
35
|
+
inspect_source(cop,
|
36
|
+
['puts "this is a #@@t"'])
|
37
|
+
expect(cop.offences.size).to eq(1)
|
38
|
+
expect(cop.messages)
|
39
|
+
.to eq(['Replace interpolated var @@t with expression #{@@t}.'])
|
40
|
+
end
|
44
41
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
42
|
+
it 'does not register an offence for variables in expressions' do
|
43
|
+
inspect_source(cop,
|
44
|
+
['puts "this is a #{@test} #{@@t} #{$t} #{$1}"'])
|
45
|
+
expect(cop.offences).to be_empty
|
52
46
|
end
|
53
47
|
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Rubocop::Cop::Style::VariableName, :config do
|
6
|
+
subject(:cop) { described_class.new(config) }
|
7
|
+
|
8
|
+
shared_examples 'always accepted' do
|
9
|
+
it 'accepts screaming snake case globals' do
|
10
|
+
inspect_source(cop, '$MY_GLOBAL = 0')
|
11
|
+
expect(cop.offences).to be_empty
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'accepts screaming snake case constants' do
|
15
|
+
inspect_source(cop, 'MY_CONSTANT = 0')
|
16
|
+
expect(cop.offences).to be_empty
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'accepts assigning to camel case constant' do
|
20
|
+
inspect_source(cop, 'Paren = Struct.new :left, :right, :kind')
|
21
|
+
expect(cop.offences).to be_empty
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'accepts assignment with indexing of self' do
|
25
|
+
inspect_source(cop, 'self[:a] = b')
|
26
|
+
expect(cop.offences).to be_empty
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
context 'when configured for snake_case' do
|
31
|
+
let(:cop_config) { { 'EnforcedStyle' => 'snake_case' } }
|
32
|
+
|
33
|
+
it 'registers an offence for camel case in local variable name' do
|
34
|
+
inspect_source(cop, 'myLocal = 1')
|
35
|
+
expect(cop.offences).to have(1).item
|
36
|
+
expect(cop.highlights).to eq(['myLocal'])
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'registers an offence for camel case in instance variable name' do
|
40
|
+
inspect_source(cop, '@myAttribute = 3')
|
41
|
+
expect(cop.offences).to have(1).item
|
42
|
+
expect(cop.highlights).to eq(['@myAttribute'])
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'registers an offence for camel case in setter name' do
|
46
|
+
inspect_source(cop, 'self.mySetter = 2')
|
47
|
+
expect(cop.offences).to have(1).item
|
48
|
+
expect(cop.highlights).to eq(['mySetter'])
|
49
|
+
end
|
50
|
+
|
51
|
+
include_examples 'always accepted'
|
52
|
+
end
|
53
|
+
|
54
|
+
context 'when configured for camelCase' do
|
55
|
+
let(:cop_config) { { 'EnforcedStyle' => 'camelCase' } }
|
56
|
+
|
57
|
+
it 'accepts camel case in local variable name' do
|
58
|
+
inspect_source(cop, 'myLocal = 1')
|
59
|
+
expect(cop.offences).to be_empty
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'accepts camel case in instance variable name' do
|
63
|
+
inspect_source(cop, '@myAttribute = 3')
|
64
|
+
expect(cop.offences).to be_empty
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'accepts camel case in setter name' do
|
68
|
+
inspect_source(cop, 'self.mySetter = 2')
|
69
|
+
expect(cop.offences).to be_empty
|
70
|
+
end
|
71
|
+
|
72
|
+
include_examples 'always accepted'
|
73
|
+
end
|
74
|
+
|
75
|
+
context 'when configured with a bad value' do
|
76
|
+
let(:cop_config) { { 'EnforcedStyle' => 'other' } }
|
77
|
+
|
78
|
+
it 'fails' do
|
79
|
+
expect { inspect_source(cop, 'a = 3') }
|
80
|
+
.to raise_error(RuntimeError)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -2,46 +2,40 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
module Style
|
8
|
-
describe WhenThen do
|
9
|
-
subject(:cop) { WhenThen.new }
|
5
|
+
describe Rubocop::Cop::Style::WhenThen do
|
6
|
+
subject(:cop) { described_class.new }
|
10
7
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
8
|
+
it 'registers an offence for when x;' do
|
9
|
+
inspect_source(cop, ['case a',
|
10
|
+
'when b; c',
|
11
|
+
'end'])
|
12
|
+
expect(cop.messages).to eq(
|
13
|
+
['Never use "when x;". Use "when x then" instead.'])
|
14
|
+
end
|
18
15
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
16
|
+
it 'accepts when x then' do
|
17
|
+
inspect_source(cop, ['case a',
|
18
|
+
'when b then c',
|
19
|
+
'end'])
|
20
|
+
expect(cop.messages).to be_empty
|
21
|
+
end
|
25
22
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
23
|
+
it 'accepts ; separating statements in the body of when' do
|
24
|
+
inspect_source(cop, ['case a',
|
25
|
+
'when b then c; d',
|
26
|
+
'end',
|
27
|
+
'',
|
28
|
+
'case e',
|
29
|
+
'when f',
|
30
|
+
' g; h',
|
31
|
+
'end'])
|
32
|
+
expect(cop.messages).to be_empty
|
33
|
+
end
|
37
34
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
35
|
+
it 'auto-corrects "when x;" with "when x then"' do
|
36
|
+
new_source = autocorrect_source(cop, ['case a',
|
37
|
+
'when b; c',
|
38
|
+
'end'])
|
39
|
+
expect(new_source).to eq("case a\nwhen b then c\nend")
|
46
40
|
end
|
47
41
|
end
|
@@ -2,58 +2,52 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
new_source = autocorrect_source(cop, ['until cond do',
|
53
|
-
'end'])
|
54
|
-
expect(new_source).to eq("until cond\nend")
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
5
|
+
describe Rubocop::Cop::Style::WhileUntilDo do
|
6
|
+
subject(:cop) { described_class.new }
|
7
|
+
|
8
|
+
it 'registers an offence for do in multiline while' do
|
9
|
+
inspect_source(cop, ['while cond do',
|
10
|
+
'end'])
|
11
|
+
expect(cop.offences.size).to eq(1)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'registers an offence for do in multiline until' do
|
15
|
+
inspect_source(cop, ['until cond do',
|
16
|
+
'end'])
|
17
|
+
expect(cop.offences.size).to eq(1)
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'accepts do in single-line while' do
|
21
|
+
inspect_source(cop, ['while cond do something end'])
|
22
|
+
expect(cop.offences).to be_empty
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'accepts do in single-line until' do
|
26
|
+
inspect_source(cop, ['until cond do something end'])
|
27
|
+
expect(cop.offences).to be_empty
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'it accepts multi-line while without do' do
|
31
|
+
inspect_source(cop, ['while cond',
|
32
|
+
'end'])
|
33
|
+
expect(cop.offences).to be_empty
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'it accepts multi-line until without do' do
|
37
|
+
inspect_source(cop, ['until cond',
|
38
|
+
'end'])
|
39
|
+
expect(cop.offences).to be_empty
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'auto-corrects the usage of "do" in multiline while' do
|
43
|
+
new_source = autocorrect_source(cop, ['while cond do',
|
44
|
+
'end'])
|
45
|
+
expect(new_source).to eq("while cond\nend")
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'auto-corrects the usage of "do" in multiline until' do
|
49
|
+
new_source = autocorrect_source(cop, ['until cond do',
|
50
|
+
'end'])
|
51
|
+
expect(new_source).to eq("until cond\nend")
|
58
52
|
end
|
59
53
|
end
|
@@ -2,60 +2,54 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
inspect_source(wa,
|
55
|
-
['["", "two", "three"]'])
|
56
|
-
expect(wa.offences).to be_empty
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
5
|
+
describe Rubocop::Cop::Style::WordArray do
|
6
|
+
subject(:cop) { described_class.new }
|
7
|
+
|
8
|
+
it 'registers an offence for arrays of single quoted strings' do
|
9
|
+
inspect_source(cop,
|
10
|
+
["['one', 'two', 'three']"])
|
11
|
+
expect(cop.offences.size).to eq(1)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'registers an offence for arrays of double quoted strings' do
|
15
|
+
inspect_source(cop,
|
16
|
+
['["one", "two", "three"]'])
|
17
|
+
expect(cop.offences.size).to eq(1)
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'registers an offence for arrays with character constants' do
|
21
|
+
inspect_source(cop,
|
22
|
+
['["one", ?\n]'])
|
23
|
+
expect(cop.offences.size).to eq(1)
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'does not register an offence for array of non-words' do
|
27
|
+
inspect_source(cop,
|
28
|
+
['["one space", "two", "three"]'])
|
29
|
+
expect(cop.offences).to be_empty
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'does not register an offence for array containing non-string' do
|
33
|
+
inspect_source(cop,
|
34
|
+
['["one", "two", 3]'])
|
35
|
+
expect(cop.offences).to be_empty
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'does not register an offence for array starting with %w' do
|
39
|
+
inspect_source(cop,
|
40
|
+
['%w(one two three)'])
|
41
|
+
expect(cop.offences).to be_empty
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'does not register an offence for array with one element' do
|
45
|
+
inspect_source(cop,
|
46
|
+
['["three"]'])
|
47
|
+
expect(cop.offences).to be_empty
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'does not register an offence for array with empty strings' do
|
51
|
+
inspect_source(cop,
|
52
|
+
['["", "two", "three"]'])
|
53
|
+
expect(cop.offences).to be_empty
|
60
54
|
end
|
61
55
|
end
|