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.

Files changed (184) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +7 -1
  3. data/CHANGELOG.md +19 -0
  4. data/README.md +4 -8
  5. data/bin/rubocop +2 -2
  6. data/config/default.yml +8 -0
  7. data/config/enabled.yml +21 -24
  8. data/lib/rubocop.rb +9 -7
  9. data/lib/rubocop/cli.rb +73 -52
  10. data/lib/rubocop/config.rb +8 -5
  11. data/lib/rubocop/cop/access_control.rb +41 -0
  12. data/lib/rubocop/cop/alias.rb +7 -5
  13. data/lib/rubocop/cop/align_parameters.rb +20 -96
  14. data/lib/rubocop/cop/and_or.rb +26 -0
  15. data/lib/rubocop/cop/ascii_comments.rb +3 -8
  16. data/lib/rubocop/cop/ascii_identifiers.rb +6 -5
  17. data/lib/rubocop/cop/avoid_class_vars.rb +5 -10
  18. data/lib/rubocop/cop/avoid_for.rb +7 -5
  19. data/lib/rubocop/cop/avoid_global_vars.rb +19 -7
  20. data/lib/rubocop/cop/avoid_perl_backrefs.rb +7 -10
  21. data/lib/rubocop/cop/avoid_perlisms.rb +11 -10
  22. data/lib/rubocop/cop/block_comments.rb +4 -6
  23. data/lib/rubocop/cop/blocks.rb +11 -47
  24. data/lib/rubocop/cop/case_indentation.rb +9 -31
  25. data/lib/rubocop/cop/class_and_module_camel_case.rb +20 -11
  26. data/lib/rubocop/cop/class_methods.rb +5 -10
  27. data/lib/rubocop/cop/collection_methods.rb +16 -16
  28. data/lib/rubocop/cop/colon_method_call.rb +8 -32
  29. data/lib/rubocop/cop/constant_name.rb +24 -0
  30. data/lib/rubocop/cop/cop.rb +20 -78
  31. data/lib/rubocop/cop/def_parentheses.rb +43 -35
  32. data/lib/rubocop/cop/empty_line_between_defs.rb +11 -15
  33. data/lib/rubocop/cop/empty_lines.rb +20 -9
  34. data/lib/rubocop/cop/empty_literal.rb +47 -0
  35. data/lib/rubocop/cop/encoding.rb +3 -3
  36. data/lib/rubocop/cop/end_of_line.rb +3 -3
  37. data/lib/rubocop/cop/ensure_return.rb +6 -23
  38. data/lib/rubocop/cop/eval.rb +7 -10
  39. data/lib/rubocop/cop/favor_join.rb +9 -24
  40. data/lib/rubocop/cop/favor_modifier.rb +38 -48
  41. data/lib/rubocop/cop/favor_percent_r.rb +7 -7
  42. data/lib/rubocop/cop/favor_sprintf.rb +8 -24
  43. data/lib/rubocop/cop/favor_unless_over_negated_if.rb +19 -17
  44. data/lib/rubocop/cop/handle_exceptions.rb +7 -11
  45. data/lib/rubocop/cop/hash_syntax.rb +29 -14
  46. data/lib/rubocop/cop/if_then_else.rb +32 -29
  47. data/lib/rubocop/cop/leading_comment_space.rb +5 -8
  48. data/lib/rubocop/cop/line_continuation.rb +4 -7
  49. data/lib/rubocop/cop/line_length.rb +3 -3
  50. data/lib/rubocop/cop/loop.rb +33 -0
  51. data/lib/rubocop/cop/method_and_variable_snake_case.rb +42 -19
  52. data/lib/rubocop/cop/method_length.rb +34 -37
  53. data/lib/rubocop/cop/new_lambda_literal.rb +8 -6
  54. data/lib/rubocop/cop/not.rb +10 -4
  55. data/lib/rubocop/cop/numeric_literals.rb +9 -7
  56. data/lib/rubocop/cop/offence.rb +1 -1
  57. data/lib/rubocop/cop/op_method.rb +12 -22
  58. data/lib/rubocop/cop/parameter_lists.rb +12 -6
  59. data/lib/rubocop/cop/parentheses_around_condition.rb +11 -11
  60. data/lib/rubocop/cop/percent_r.rb +7 -7
  61. data/lib/rubocop/cop/reduce_arguments.rb +13 -51
  62. data/lib/rubocop/cop/rescue_exception.rb +13 -29
  63. data/lib/rubocop/cop/rescue_modifier.rb +5 -8
  64. data/lib/rubocop/cop/semicolon.rb +15 -74
  65. data/lib/rubocop/cop/single_line_methods.rb +28 -44
  66. data/lib/rubocop/cop/space_after_comma_etc.rb +29 -9
  67. data/lib/rubocop/cop/space_after_control_keyword.rb +16 -15
  68. data/lib/rubocop/cop/string_literals.rb +9 -35
  69. data/lib/rubocop/cop/surrounding_space.rb +213 -112
  70. data/lib/rubocop/cop/symbol_array.rb +9 -7
  71. data/lib/rubocop/cop/symbol_name.rb +23 -0
  72. data/lib/rubocop/cop/syntax.rb +14 -7
  73. data/lib/rubocop/cop/tab.rb +3 -3
  74. data/lib/rubocop/cop/ternary_operator.rb +26 -24
  75. data/lib/rubocop/cop/trailing_whitespace.rb +3 -5
  76. data/lib/rubocop/cop/trivial_accessors.rb +18 -95
  77. data/lib/rubocop/cop/unless_else.rb +11 -7
  78. data/lib/rubocop/cop/util.rb +26 -0
  79. data/lib/rubocop/cop/variable_interpolation.rb +18 -10
  80. data/lib/rubocop/cop/when_then.rb +6 -17
  81. data/lib/rubocop/cop/word_array.rb +18 -19
  82. data/lib/rubocop/version.rb +1 -1
  83. data/rubocop.gemspec +1 -0
  84. data/spec/project_spec.rb +1 -1
  85. data/spec/rubocop/cli_spec.rb +16 -9
  86. data/spec/rubocop/config_spec.rb +13 -3
  87. data/spec/rubocop/cops/access_control_spec.rb +129 -0
  88. data/spec/rubocop/cops/alias_spec.rb +2 -6
  89. data/spec/rubocop/cops/align_parameters_spec.rb +58 -71
  90. data/spec/rubocop/cops/and_or_spec.rb +37 -0
  91. data/spec/rubocop/cops/ascii_comments_spec.rb +3 -4
  92. data/spec/rubocop/cops/ascii_identifiers_spec.rb +3 -4
  93. data/spec/rubocop/cops/avoid_class_vars_spec.rb +7 -2
  94. data/spec/rubocop/cops/avoid_for_spec.rb +1 -4
  95. data/spec/rubocop/cops/{avoid_global_vars.rb → avoid_global_vars_spec.rb} +4 -4
  96. data/spec/rubocop/cops/avoid_perl_backrefs_spec.rb +1 -1
  97. data/spec/rubocop/cops/avoid_perlisms_spec.rb +5 -5
  98. data/spec/rubocop/cops/block_comments_spec.rb +0 -4
  99. data/spec/rubocop/cops/blocks_spec.rb +33 -0
  100. data/spec/rubocop/cops/case_indentation_spec.rb +5 -5
  101. data/spec/rubocop/cops/class_and_module_camel_case_spec.rb +15 -5
  102. data/spec/rubocop/cops/class_methods_spec.rb +4 -4
  103. data/spec/rubocop/cops/collection_methods_spec.rb +9 -4
  104. data/spec/rubocop/cops/colon_method_call_spec.rb +11 -5
  105. data/spec/rubocop/cops/constant_name_spec.rb +42 -0
  106. data/spec/rubocop/cops/def_with_parentheses_spec.rb +13 -8
  107. data/spec/rubocop/cops/def_without_parentheses_spec.rb +11 -5
  108. data/spec/rubocop/cops/empty_line_between_defs_spec.rb +38 -38
  109. data/spec/rubocop/cops/empty_lines_spec.rb +15 -3
  110. data/spec/rubocop/cops/empty_literal_spec.rb +90 -0
  111. data/spec/rubocop/cops/encoding_spec.rb +9 -9
  112. data/spec/rubocop/cops/end_of_line_spec.rb +2 -2
  113. data/spec/rubocop/cops/ensure_return_spec.rb +1 -3
  114. data/spec/rubocop/cops/eval_spec.rb +8 -5
  115. data/spec/rubocop/cops/favor_join_spec.rb +1 -5
  116. data/spec/rubocop/cops/favor_modifier_spec.rb +16 -14
  117. data/spec/rubocop/cops/{favor_percent_r.rb → favor_percent_r_spec.rb} +6 -6
  118. data/spec/rubocop/cops/favor_sprintf_spec.rb +3 -9
  119. data/spec/rubocop/cops/favor_unless_over_negated_if_spec.rb +4 -4
  120. data/spec/rubocop/cops/favor_until_over_negated_while_spec.rb +3 -3
  121. data/spec/rubocop/cops/handle_exceptions_spec.rb +1 -3
  122. data/spec/rubocop/cops/hash_syntax_spec.rb +11 -6
  123. data/spec/rubocop/cops/if_with_semicolon_spec.rb +7 -1
  124. data/spec/rubocop/cops/leading_comment_space_spec.rb +0 -7
  125. data/spec/rubocop/cops/line_continuation_spec.rb +2 -2
  126. data/spec/rubocop/cops/line_length_spec.rb +2 -2
  127. data/spec/rubocop/cops/loop_spec.rb +31 -0
  128. data/spec/rubocop/cops/method_and_variable_snake_case_spec.rb +38 -12
  129. data/spec/rubocop/cops/method_length_spec.rb +85 -85
  130. data/spec/rubocop/cops/multiline_if_then_spec.rb +15 -15
  131. data/spec/rubocop/cops/new_lambda_literal_spec.rb +3 -3
  132. data/spec/rubocop/cops/not_spec.rb +1 -4
  133. data/spec/rubocop/cops/numeric_literals_spec.rb +13 -13
  134. data/spec/rubocop/cops/one_line_conditional_spec.rb +1 -1
  135. data/spec/rubocop/cops/op_method_spec.rb +2 -9
  136. data/spec/rubocop/cops/parameter_lists_spec.rb +7 -7
  137. data/spec/rubocop/cops/parentheses_around_condition_spec.rb +41 -44
  138. data/spec/rubocop/cops/percent_r_spec.rb +6 -6
  139. data/spec/rubocop/cops/reduce_arguments_spec.rb +4 -4
  140. data/spec/rubocop/cops/rescue_exception_spec.rb +48 -8
  141. data/spec/rubocop/cops/rescue_modifier_spec.rb +2 -5
  142. data/spec/rubocop/cops/semicolon_spec.rb +2 -30
  143. data/spec/rubocop/cops/single_line_methods_spec.rb +13 -13
  144. data/spec/rubocop/cops/space_after_colon_spec.rb +3 -3
  145. data/spec/rubocop/cops/space_after_comma_spec.rb +14 -2
  146. data/spec/rubocop/cops/space_after_control_keyword_spec.rb +42 -3
  147. data/spec/rubocop/cops/space_after_semicolon_spec.rb +2 -2
  148. data/spec/rubocop/cops/space_around_braces_spec.rb +18 -3
  149. data/spec/rubocop/cops/space_around_equals_in_default_parameter_spec.rb +4 -4
  150. data/spec/rubocop/cops/space_around_operators_spec.rb +82 -27
  151. data/spec/rubocop/cops/space_inside_brackets_spec.rb +13 -7
  152. data/spec/rubocop/cops/space_inside_hash_literal_braces_spec.rb +14 -9
  153. data/spec/rubocop/cops/space_inside_parens_spec.rb +7 -3
  154. data/spec/rubocop/cops/string_literals_spec.rb +17 -5
  155. data/spec/rubocop/cops/symbol_array_spec.rb +18 -2
  156. data/spec/rubocop/cops/symbol_name_spec.rb +119 -0
  157. data/spec/rubocop/cops/syntax_spec.rb +25 -18
  158. data/spec/rubocop/cops/tab_spec.rb +2 -2
  159. data/spec/rubocop/cops/ternary_operator_spec.rb +13 -17
  160. data/spec/rubocop/cops/trailing_whitespace_spec.rb +3 -3
  161. data/spec/rubocop/cops/trivial_accessors_spec.rb +17 -20
  162. data/spec/rubocop/cops/unless_else_spec.rb +8 -8
  163. data/spec/rubocop/cops/variable_interpolation_spec.rb +0 -5
  164. data/spec/rubocop/cops/when_then_spec.rb +14 -21
  165. data/spec/rubocop/cops/word_array_spec.rb +12 -4
  166. data/spec/spec_helper.rb +12 -4
  167. metadata +40 -31
  168. data/.document +0 -5
  169. data/lib/rubocop/cop/ampersands_pipes_vs_and_or.rb +0 -25
  170. data/lib/rubocop/cop/array_literal.rb +0 -61
  171. data/lib/rubocop/cop/brace_after_percent.rb +0 -32
  172. data/lib/rubocop/cop/grammar.rb +0 -138
  173. data/lib/rubocop/cop/hash_literal.rb +0 -61
  174. data/lib/rubocop/cop/percent_literals.rb +0 -25
  175. data/lib/rubocop/cop/symbol_snake_case.rb +0 -47
  176. data/spec/rubocop/cops/ampersands_pipes_vs_and_or_spec.rb +0 -57
  177. data/spec/rubocop/cops/array_literal_spec.rb +0 -46
  178. data/spec/rubocop/cops/brace_after_percent_spec.rb +0 -33
  179. data/spec/rubocop/cops/grammar_spec.rb +0 -81
  180. data/spec/rubocop/cops/hash_literal_spec.rb +0 -46
  181. data/spec/rubocop/cops/multiline_blocks_spec.rb +0 -24
  182. data/spec/rubocop/cops/percent_literals_spec.rb +0 -47
  183. data/spec/rubocop/cops/single_line_blocks_spec.rb +0 -22
  184. data/spec/rubocop/cops/symbol_snake_case_spec.rb +0 -93
@@ -1,46 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- module Rubocop
6
- module Cop
7
- describe ArrayLiteral do
8
- let(:a) { ArrayLiteral.new }
9
-
10
- it 'registers an offence for Array.new()' do
11
- inspect_source(a,
12
- 'file.rb',
13
- ['test = Array.new()'])
14
- expect(a.offences.size).to eq(1)
15
- expect(a.offences.map(&:message))
16
- .to eq([ArrayLiteral::ERROR_MESSAGE])
17
- end
18
-
19
- it 'registers an offence for Array.new' do
20
- inspect_source(a,
21
- 'file.rb',
22
- ['test = Array.new'])
23
- expect(a.offences.size).to eq(1)
24
- expect(a.offences.map(&:message))
25
- .to eq([ArrayLiteral::ERROR_MESSAGE])
26
- end
27
-
28
- it 'does not register an offence for Array.new(3)' do
29
- inspect_source(a,
30
- 'file.rb',
31
- ['test = Array.new(3)'])
32
- expect(a.offences).to be_empty
33
- end
34
-
35
- it 'does not crash when a method is called on super' do
36
- inspect_source(a,
37
- 'file.rb',
38
- ['class Derived < Base',
39
- ' def func',
40
- ' super.slice(1..2)',
41
- ' end',
42
- 'end'])
43
- end
44
- end
45
- end
46
- end
@@ -1,33 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- module Rubocop
6
- module Cop
7
- describe BraceAfterPercent do
8
- let(:bap) { BraceAfterPercent.new }
9
- literals = %w(q Q r i I w W x s)
10
-
11
- literals.each do |literal|
12
- # %i and %I are new in ruby 2.0
13
- tag = literal.downcase == 'i' ? { ruby: 2.0 } : {}
14
-
15
- it "registers an offence for %#{literal}[", tag do
16
- inspect_source(bap,
17
- 'file.rb',
18
- ["puts %#{literal}[test top]"])
19
- expect(bap.offences.size).to eq(1)
20
- expect(bap.offences.map(&:message))
21
- .to eq([BraceAfterPercent::ERROR_MESSAGE])
22
- end
23
-
24
- it "does not registers an offence for %#{literal}(", tag do
25
- inspect_source(bap,
26
- 'file.rb',
27
- ["puts %#{literal}(test top)"])
28
- expect(bap.offences).to be_empty
29
- end
30
- end
31
- end
32
- end
33
- end
@@ -1,81 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- module Rubocop
6
- module Cop
7
- describe Grammar do
8
- EXAMPLE = '3.times { |i| x = "#{c ? y : a}#{z}}" }'
9
- tokens = Ripper.lex(EXAMPLE).map { |t| Token.new(*t) }
10
- let(:grammar) { Grammar.new(tokens) }
11
-
12
- it 'correlates token indices to grammar paths' do
13
- method_block = [:program, :method_add_block]
14
- brace_block = method_block + [:brace_block]
15
- string_embexpr = brace_block + [:assign, :string_literal,
16
- :string_content,
17
- :string_embexpr]
18
-
19
- test_2_0 = [[[1, 0], :on_int, '3'],
20
- [[1, 1], :on_period, '.'],
21
- [[1, 2], :on_ident, 'times'],
22
- [[1, 7], :on_sp, ' '],
23
- [[1, 8], :on_lbrace, '{'],
24
- [[1, 9], :on_sp, ' '], # 5
25
- [[1, 10], :on_op, '|'],
26
- [[1, 11], :on_ident, 'i'],
27
- [[1, 12], :on_op, '|'],
28
- [[1, 13], :on_sp, ' '],
29
- [[1, 14], :on_ident, 'x'],
30
- [[1, 15], :on_sp, ' '],
31
- [[1, 16], :on_op, '='],
32
- [[1, 17], :on_sp, ' '],
33
- [[1, 18], :on_tstring_beg, '"'],
34
- [[1, 19], :on_embexpr_beg, '#{'],
35
- [[1, 21], :on_ident, 'c'],
36
- [[1, 22], :on_sp, ' '],
37
- [[1, 23], :on_op, '?'],
38
- [[1, 24], :on_sp, ' '],
39
- [[1, 25], :on_ident, 'y'],
40
- [[1, 26], :on_sp, ' '],
41
- [[1, 27], :on_op, ':'],
42
- [[1, 28], :on_sp, ' '],
43
- [[1, 29], :on_ident, 'a'],
44
- [[1, 30], :on_embexpr_end, '}'],
45
- [[1, 31], :on_embexpr_beg, '#{'],
46
- [[1, 33], :on_ident, 'z'],
47
- [[1, 34], :on_embexpr_end, '}'],
48
- [[1, 35], :on_tstring_content, '}'],
49
- [[1, 36], :on_tstring_end, '"'],
50
- [[1, 37], :on_sp, ' '],
51
- [[1, 38], :on_rbrace, '}']]
52
- expect(Ripper.lex(EXAMPLE)).to eq(test_2_0) if RUBY_VERSION >= '2.0'
53
- sexp = Ripper.sexp(EXAMPLE)
54
- Position.make_position_objects(sexp)
55
-
56
- varref = (RUBY_VERSION == '1.9.2') ? :var_ref : :vcall
57
-
58
- test = {
59
- 0 => method_block + [:call, :@int], # 3
60
- 2 => method_block + [:call, :@ident], # times
61
- 4 => brace_block, # {
62
- 6 => brace_block + [:block_var], # |
63
- 7 => brace_block + [:block_var, :params, :@ident], # i
64
- 8 => brace_block + [:block_var], # |
65
- 10 => brace_block + [:assign, :var_field, :@ident], # x
66
- 12 => brace_block + [:assign], # =
67
- 16 => string_embexpr + [:ifop, varref, :@ident], # c
68
- 18 => string_embexpr + [:ifop], # ?
69
- 20 => string_embexpr + [:ifop, varref, :@ident], # y
70
- 22 => string_embexpr + [:ifop], # :
71
- 24 => string_embexpr + [:ifop, varref, :@ident], # a
72
- 27 => string_embexpr + [:vcall, :@ident], # z
73
- 29 => brace_block + [:assign, :string_literal,
74
- :string_content, :@tstring_content], # }
75
- 32 => brace_block,
76
- }
77
- expect(grammar.correlate(sexp)).to eq(test)
78
- end
79
- end
80
- end
81
- end
@@ -1,46 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- module Rubocop
6
- module Cop
7
- describe HashLiteral do
8
- let(:a) { HashLiteral.new }
9
-
10
- it 'registers an offence for Hash.new()' do
11
- inspect_source(a,
12
- 'file.rb',
13
- ['test = Hash.new()'])
14
- expect(a.offences.size).to eq(1)
15
- expect(a.offences.map(&:message))
16
- .to eq([HashLiteral::ERROR_MESSAGE])
17
- end
18
-
19
- it 'registers an offence for Hash.new' do
20
- inspect_source(a,
21
- 'file.rb',
22
- ['test = Hash.new'])
23
- expect(a.offences.size).to eq(1)
24
- expect(a.offences.map(&:message))
25
- .to eq([HashLiteral::ERROR_MESSAGE])
26
- end
27
-
28
- it 'does not register an offence for Hash.new(3)' do
29
- inspect_source(a,
30
- 'file.rb',
31
- ['test = Hash.new(3)'])
32
- expect(a.offences).to be_empty
33
- end
34
-
35
- it 'does not crash when a method is called on super' do
36
- inspect_source(a,
37
- 'file.rb',
38
- ['class Derived < Base',
39
- ' def func',
40
- ' super.slice(1..2)',
41
- ' end',
42
- 'end'])
43
- end
44
- end
45
- end
46
- end
@@ -1,24 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- module Rubocop
6
- module Cop
7
- describe MultilineBlocks do
8
- let(:blocks) { MultilineBlocks.new }
9
-
10
- it 'registers an offence for a multiline block with braces' do
11
- inspect_source(blocks, '', ['each { |x|',
12
- '}'])
13
- expect(blocks.offences.map(&:message)).to eq(
14
- ['Avoid using {...} for multi-line blocks.'])
15
- end
16
-
17
- it 'accepts a multiline block with do-end' do
18
- inspect_source(blocks, '', ['each do |x|',
19
- 'end'])
20
- expect(blocks.offences.map(&:message)).to be_empty
21
- end
22
- end
23
- end
24
- end
@@ -1,47 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- module Rubocop
6
- module Cop
7
- describe PercentLiterals do
8
- let(:pl) { PercentLiterals.new }
9
-
10
- it 'registers an offence for %q' do
11
- inspect_source(pl,
12
- 'file.rb',
13
- ['puts %q(test)'])
14
- expect(pl.offences.size).to eq(1)
15
- expect(pl.offences.map(&:message))
16
- .to eq(['The use of %q is discouraged.'])
17
- end
18
-
19
- it 'registers an offence for %Q' do
20
- inspect_source(pl,
21
- 'file.rb',
22
- ['puts %Q(test)'])
23
- expect(pl.offences.size).to eq(1)
24
- expect(pl.offences.map(&:message))
25
- .to eq(['The use of %Q is discouraged.'])
26
- end
27
-
28
- it 'registers an offence for %x' do
29
- inspect_source(pl,
30
- 'file.rb',
31
- ['puts %x(test)'])
32
- expect(pl.offences.size).to eq(1)
33
- expect(pl.offences.map(&:message))
34
- .to eq(['The use of %x is discouraged.'])
35
- end
36
-
37
- it 'registers an offence for %s' do
38
- inspect_source(pl,
39
- 'file.rb',
40
- ['puts %s(test)'])
41
- expect(pl.offences.size).to eq(1)
42
- expect(pl.offences.map(&:message))
43
- .to eq(['The use of %s is discouraged.'])
44
- end
45
- end
46
- end
47
- end
@@ -1,22 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- module Rubocop
6
- module Cop
7
- describe SingleLineBlocks do
8
- let(:blocks) { SingleLineBlocks.new }
9
-
10
- it 'registers an offence for a single line block with do-end' do
11
- inspect_source(blocks, '', ['each do |x| end'])
12
- expect(blocks.offences.map(&:message)).to eq(
13
- ['Prefer {...} over do...end for single-line blocks.'])
14
- end
15
-
16
- it 'accepts a single line block with braces' do
17
- inspect_source(blocks, '', ['each { |x| }'])
18
- expect(blocks.offences.map(&:message)).to be_empty
19
- end
20
- end
21
- end
22
- end
@@ -1,93 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- module Rubocop
6
- module Cop
7
- describe SymbolSnakeCase do
8
- let(:snake_case) { SymbolSnakeCase.new }
9
-
10
- it 'registers an offence for camel case in names' do
11
- inspect_source(snake_case, 'file.rb',
12
- ['test = :BadIdea'])
13
- expect(snake_case.offences.map(&:message)).to eq(
14
- ['Use snake_case for symbols.'])
15
- end
16
-
17
- it 'registers an offence for symbol used as hash label' do
18
- inspect_source(snake_case, 'file.rb',
19
- ['{ ONE: 1, TWO: 2 }'])
20
- expect(snake_case.offences.map(&:message)).to eq(
21
- ['Use snake_case for symbols.'] * 2)
22
- end
23
-
24
- it 'accepts snake case in names' do
25
- inspect_source(snake_case, 'file.rb',
26
- ['test = :good_idea'])
27
- expect(snake_case.offences).to be_empty
28
- end
29
-
30
- it 'accepts snake case in hash label names' do
31
- inspect_source(snake_case, 'file.rb',
32
- ['{ one: 1, one_more_3: 2 }'])
33
- expect(snake_case.offences).to be_empty
34
- end
35
-
36
- it 'accepts snake case with a prefix @ in names' do
37
- inspect_source(snake_case, 'file.rb',
38
- ['test = :@good_idea'])
39
- expect(snake_case.offences).to be_empty
40
- end
41
-
42
- it 'accepts snake case with ? suffix' do
43
- inspect_source(snake_case, 'file.rb',
44
- ['test = :good_idea?'])
45
- expect(snake_case.offences).to be_empty
46
- end
47
-
48
- it 'accepts snake case with ! suffix' do
49
- inspect_source(snake_case, 'file.rb',
50
- ['test = :good_idea!'])
51
- expect(snake_case.offences).to be_empty
52
- end
53
-
54
- it 'accepts snake case with = suffix' do
55
- inspect_source(snake_case, 'file.rb',
56
- ['test = :good_idea='])
57
- expect(snake_case.offences).to be_empty
58
- end
59
-
60
- it 'accepts special cases - !, [] and **' do
61
- inspect_source(snake_case, 'file.rb',
62
- ['test = :**',
63
- 'test = :!',
64
- 'test = :[]',
65
- 'test = :[]='])
66
- expect(snake_case.offences).to be_empty
67
- end
68
-
69
- it 'accepts special cases - ==, <=>, >, <, >=, <=' do
70
- inspect_source(snake_case, 'file.rb',
71
- ['test = :==',
72
- 'test = :<=>',
73
- 'test = :>',
74
- 'test = :<',
75
- 'test = :>=',
76
- 'test = :<='])
77
- expect(snake_case.offences).to be_empty
78
- end
79
-
80
- it 'can handle an alias of and operator without crashing' do
81
- inspect_source(snake_case, 'file.rb',
82
- ['alias + add'])
83
- expect(snake_case.offences).to be_empty
84
- end
85
-
86
- it 'registers an offence for SCREAMING_SNAKE_CASE' do
87
- inspect_source(snake_case, 'file.rb',
88
- ['test = :BAD_IDEA'])
89
- expect(snake_case.offences.size).to eq(1)
90
- end
91
- end
92
- end
93
- end