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,52 +2,46 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
module Style
|
8
|
-
describe SpaceBeforeModifierKeyword do
|
9
|
-
subject(:cop) { described_class.new }
|
5
|
+
describe Rubocop::Cop::Style::SpaceBeforeModifierKeyword do
|
6
|
+
subject(:cop) { described_class.new }
|
10
7
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
8
|
+
it 'registers an offence for missing space before if/unless' do
|
9
|
+
inspect_source(cop, ['(a = 3)if a == 2',
|
10
|
+
'a = "test"if a == 2',
|
11
|
+
'a = 42unless a == 2',
|
12
|
+
'a = [1,2,3]unless a == 2',
|
13
|
+
'a = {:a => "b"}if a == 2'])
|
14
|
+
expect(cop.highlights).to eq([')', '"', '2', ']', '}'])
|
15
|
+
end
|
19
16
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
17
|
+
it 'registers an offence for missing space before while/until' do
|
18
|
+
inspect_source(cop, ['(a = 3)while b',
|
19
|
+
'a = "test"until b',
|
20
|
+
'a = 42while b',
|
21
|
+
'a = [1,2,3]until b',
|
22
|
+
'a = {:a => "b"}while b'])
|
23
|
+
expect(cop.highlights).to eq([')', '"', '2', ']', '}'])
|
24
|
+
end
|
28
25
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
26
|
+
it 'accepts modifiers with preceding space' do
|
27
|
+
inspect_source(cop, ['(a = 3) if b',
|
28
|
+
'a = "test" unless b',
|
29
|
+
'a = 42 while b',
|
30
|
+
'a = [1,2,3] until b'])
|
31
|
+
expect(cop.offences).to be_empty
|
32
|
+
end
|
36
33
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
34
|
+
it 'accepts elsif at beginning of line' do
|
35
|
+
inspect_source(cop, ["if RUBY_VERSION.between?('1.9.2', '2.0.0')",
|
36
|
+
" require 'testing/performance/ruby/yarv'",
|
37
|
+
'elsif RUBY_VERSION.between?("1.8.6", "1.9")',
|
38
|
+
" require 'testing/performance/ruby/mri'",
|
39
|
+
'end'])
|
40
|
+
expect(cop.highlights).to eq([])
|
41
|
+
end
|
45
42
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
43
|
+
it 'does not crash on ternary conditionals' do
|
44
|
+
inspect_source(cop, 'a ? b : c')
|
45
|
+
expect(cop.offences).to be_empty
|
52
46
|
end
|
53
47
|
end
|
@@ -2,50 +2,44 @@
|
|
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
|
-
inspect_source(space, ['[ ]'])
|
45
|
-
expect(space.messages).to eq(
|
46
|
-
['Space inside square brackets detected.'])
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
5
|
+
describe Rubocop::Cop::Style::SpaceInsideBrackets do
|
6
|
+
subject(:cop) { described_class.new }
|
7
|
+
|
8
|
+
it 'registers an offence for an array literal with spaces inside' do
|
9
|
+
inspect_source(cop, ['a = [1, 2 ]',
|
10
|
+
'b = [ 1, 2]'])
|
11
|
+
expect(cop.messages).to eq(
|
12
|
+
['Space inside square brackets detected.',
|
13
|
+
'Space inside square brackets detected.'])
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'accepts space inside strings within square brackets' do
|
17
|
+
inspect_source(cop, ["['Encoding:',",
|
18
|
+
" ' Enabled: false']"])
|
19
|
+
expect(cop.messages).to be_empty
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'accepts space inside square brackets if on its own row' do
|
23
|
+
inspect_source(cop, ['a = [',
|
24
|
+
' 1, 2',
|
25
|
+
' ]'])
|
26
|
+
expect(cop.messages).to be_empty
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'accepts square brackets as method name' do
|
30
|
+
inspect_source(cop, ['def Vector.[](*array)',
|
31
|
+
'end'])
|
32
|
+
expect(cop.messages).to be_empty
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'accepts square brackets called with method call syntax' do
|
36
|
+
inspect_source(cop, ['subject.[](0)'])
|
37
|
+
expect(cop.messages).to be_empty
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'only reports a single space once' do
|
41
|
+
inspect_source(cop, ['[ ]'])
|
42
|
+
expect(cop.messages).to eq(
|
43
|
+
['Space inside square brackets detected.'])
|
50
44
|
end
|
51
45
|
end
|
@@ -2,84 +2,78 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
describe SpaceInsideHashLiteralBraces, :config do
|
9
|
-
subject(:cop) { SpaceInsideHashLiteralBraces.new(config) }
|
10
|
-
let(:cop_config) { { 'EnforcedStyleIsWithSpaces' => true } }
|
5
|
+
describe Rubocop::Cop::Style::SpaceInsideHashLiteralBraces, :config do
|
6
|
+
subject(:cop) { described_class.new(config) }
|
7
|
+
let(:cop_config) { { 'EnforcedStyleIsWithSpaces' => true } }
|
11
8
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
9
|
+
it 'registers an offence for hashes with no spaces if so configured' do
|
10
|
+
inspect_source(cop,
|
11
|
+
['h = {a: 1, b: 2}',
|
12
|
+
'h = {a => 1 }'])
|
13
|
+
expect(cop.messages).to eq(
|
14
|
+
['Space inside hash literal braces missing.'] * 3)
|
15
|
+
expect(cop.highlights).to eq(['{', '}', '{'])
|
16
|
+
end
|
20
17
|
|
21
|
-
|
22
|
-
|
18
|
+
context 'when EnforcedStyleIsWithSpaces is disabled' do
|
19
|
+
let(:cop_config) { { 'EnforcedStyleIsWithSpaces' => false } }
|
23
20
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
21
|
+
it 'registers an offence for hashes with spaces' do
|
22
|
+
inspect_source(cop,
|
23
|
+
['h = { a: 1, b: 2 }'])
|
24
|
+
expect(cop.messages).to eq(
|
25
|
+
['Space inside hash literal braces detected.'] * 2)
|
26
|
+
expect(cop.highlights).to eq(['{', '}'])
|
27
|
+
end
|
31
28
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
29
|
+
it 'accepts hashes with no spaces' do
|
30
|
+
inspect_source(cop,
|
31
|
+
['h = {a: 1, b: 2}',
|
32
|
+
'h = {a => 1}'])
|
33
|
+
expect(cop.offences).to be_empty
|
34
|
+
end
|
38
35
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
36
|
+
it 'accepts multiline hashes for no space' do
|
37
|
+
inspect_source(cop,
|
38
|
+
['h = {',
|
39
|
+
' a: 1,',
|
40
|
+
' b: 2,',
|
41
|
+
'}'])
|
42
|
+
expect(cop.offences).to be_empty
|
43
|
+
end
|
47
44
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
45
|
+
it 'accepts empty hashes without spaces' do
|
46
|
+
inspect_source(cop, ['h = {}'])
|
47
|
+
expect(cop.offences).to be_empty
|
48
|
+
end
|
49
|
+
end
|
53
50
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
51
|
+
it 'accepts hashes with spaces by default' do
|
52
|
+
inspect_source(cop,
|
53
|
+
['h = { a: 1, b: 2 }',
|
54
|
+
'h = { a => 1 }'])
|
55
|
+
expect(cop.offences).to be_empty
|
56
|
+
end
|
60
57
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
58
|
+
it 'accepts empty hashes without spaces by default' do
|
59
|
+
inspect_source(cop, ['h = {}'])
|
60
|
+
expect(cop.offences).to be_empty
|
61
|
+
end
|
65
62
|
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
63
|
+
it 'accepts empty hashes without spaces even if configured true' do
|
64
|
+
inspect_source(cop, ['h = {}'])
|
65
|
+
expect(cop.offences).to be_empty
|
66
|
+
end
|
70
67
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
68
|
+
it 'accepts hash literals with no braces' do
|
69
|
+
inspect_source(cop, ['x(a: b.c)'])
|
70
|
+
expect(cop.offences).to be_empty
|
71
|
+
end
|
75
72
|
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
73
|
+
it 'can handle interpolation in a braceless hash literal' do
|
74
|
+
# A tricky special case where the closing brace of the
|
75
|
+
# interpolation risks getting confused for a hash literal brace.
|
76
|
+
inspect_source(cop, ['f(get: "#{x}")'])
|
77
|
+
expect(cop.offences).to be_empty
|
84
78
|
end
|
85
79
|
end
|
@@ -2,32 +2,26 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
module Style
|
8
|
-
describe SpaceInsideParens do
|
9
|
-
subject(:space) { SpaceInsideParens.new }
|
5
|
+
describe Rubocop::Cop::Style::SpaceInsideParens do
|
6
|
+
subject(:cop) { described_class.new }
|
10
7
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
8
|
+
it 'registers an offence for spaces inside parens' do
|
9
|
+
inspect_source(cop, ['f( 3)',
|
10
|
+
'g(3 )'])
|
11
|
+
expect(cop.messages).to eq(
|
12
|
+
['Space inside parentheses detected.',
|
13
|
+
'Space inside parentheses detected.'])
|
14
|
+
end
|
18
15
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
16
|
+
it 'accepts parentheses in block parameter list' do
|
17
|
+
inspect_source(cop,
|
18
|
+
['list.inject(Tms.new) { |sum, (label, item)|',
|
19
|
+
'}'])
|
20
|
+
expect(cop.messages).to be_empty
|
21
|
+
end
|
25
22
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
23
|
+
it 'accepts parentheses with no spaces' do
|
24
|
+
inspect_source(cop, ['split("\n")'])
|
25
|
+
expect(cop.messages).to be_empty
|
32
26
|
end
|
33
27
|
end
|
@@ -2,51 +2,45 @@
|
|
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
|
-
it 'auto-corrects $: to $LOAD_PATH' do
|
46
|
-
new_source = autocorrect_source(cop, '$:')
|
47
|
-
expect(new_source).to eq('$LOAD_PATH')
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
5
|
+
describe Rubocop::Cop::Style::SpecialGlobalVars do
|
6
|
+
subject(:cop) { described_class.new }
|
7
|
+
|
8
|
+
it 'registers an offence for $:' do
|
9
|
+
inspect_source(cop, ['puts $:'])
|
10
|
+
expect(cop.offences.size).to eq(1)
|
11
|
+
expect(cop.messages)
|
12
|
+
.to eq(['Prefer $LOAD_PATH over $:.'])
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'registers an offence for $"' do
|
16
|
+
inspect_source(cop, ['puts $"'])
|
17
|
+
expect(cop.offences.size).to eq(1)
|
18
|
+
expect(cop.messages)
|
19
|
+
.to eq(['Prefer $LOADED_FEATURES over $".'])
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'registers an offence for $0' do
|
23
|
+
inspect_source(cop, ['puts $0'])
|
24
|
+
expect(cop.offences.size).to eq(1)
|
25
|
+
expect(cop.messages)
|
26
|
+
.to eq(['Prefer $PROGRAM_NAME over $0.'])
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'registers an offence for $$' do
|
30
|
+
inspect_source(cop, ['puts $$'])
|
31
|
+
expect(cop.offences.size).to eq(1)
|
32
|
+
expect(cop.messages)
|
33
|
+
.to eq(['Prefer $PID or $PROCESS_ID from English library' +
|
34
|
+
' over $$.'])
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'does not register an offence for backrefs like $1' do
|
38
|
+
inspect_source(cop, ['puts $1'])
|
39
|
+
expect(cop.offences).to be_empty
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'auto-corrects $: to $LOAD_PATH' do
|
43
|
+
new_source = autocorrect_source(cop, '$:')
|
44
|
+
expect(new_source).to eq('$LOAD_PATH')
|
51
45
|
end
|
52
46
|
end
|