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.

Files changed (222) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -0
  3. data/CHANGELOG.md +42 -0
  4. data/README.md +59 -54
  5. data/config/default.yml +124 -95
  6. data/config/disabled.yml +4 -0
  7. data/config/enabled.yml +286 -264
  8. data/lib/rubocop.rb +10 -3
  9. data/lib/rubocop/cli.rb +10 -171
  10. data/lib/rubocop/cop/cop.rb +14 -11
  11. data/lib/rubocop/cop/lint/debugger.rb +35 -0
  12. data/lib/rubocop/cop/lint/syntax.rb +34 -0
  13. data/lib/rubocop/cop/offence.rb +15 -23
  14. data/lib/rubocop/cop/style/align_array.rb +1 -10
  15. data/lib/rubocop/cop/style/align_hash.rb +14 -2
  16. data/lib/rubocop/cop/style/align_parameters.rb +1 -11
  17. data/lib/rubocop/cop/style/and_or.rb +13 -11
  18. data/lib/rubocop/cop/style/attr.rb +1 -1
  19. data/lib/rubocop/cop/style/autocorrect_alignment.rb +31 -6
  20. data/lib/rubocop/cop/style/blocks.rb +14 -6
  21. data/lib/rubocop/cop/style/character_literal.rb +1 -1
  22. data/lib/rubocop/cop/style/class_length.rb +38 -0
  23. data/lib/rubocop/cop/style/collection_methods.rb +1 -1
  24. data/lib/rubocop/cop/style/colon_method_call.rb +1 -1
  25. data/lib/rubocop/cop/style/configurable_naming.rb +47 -0
  26. data/lib/rubocop/cop/style/def_parentheses.rb +2 -2
  27. data/lib/rubocop/cop/style/empty_literal.rb +1 -1
  28. data/lib/rubocop/cop/style/even_odd.rb +7 -3
  29. data/lib/rubocop/cop/style/hash_methods.rb +1 -1
  30. data/lib/rubocop/cop/style/hash_syntax.rb +36 -7
  31. data/lib/rubocop/cop/style/lambda_call.rb +36 -11
  32. data/lib/rubocop/cop/style/method_call_parentheses.rb +1 -1
  33. data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +41 -0
  34. data/lib/rubocop/cop/style/method_length.rb +2 -13
  35. data/lib/rubocop/cop/style/method_name.rb +42 -0
  36. data/lib/rubocop/cop/style/numeric_literals.rb +4 -0
  37. data/lib/rubocop/cop/style/perl_backrefs.rb +1 -1
  38. data/lib/rubocop/cop/style/raise_args.rb +60 -0
  39. data/lib/rubocop/cop/style/redundant_exception.rb +32 -0
  40. data/lib/rubocop/cop/style/redundant_return.rb +14 -5
  41. data/lib/rubocop/cop/style/redundant_self.rb +1 -1
  42. data/lib/rubocop/cop/style/semicolon.rb +13 -4
  43. data/lib/rubocop/cop/style/signal_exception.rb +63 -14
  44. data/lib/rubocop/cop/style/special_global_vars.rb +1 -1
  45. data/lib/rubocop/cop/style/string_help.rb +4 -1
  46. data/lib/rubocop/cop/style/string_literals.rb +34 -11
  47. data/lib/rubocop/cop/style/surrounding_space.rb +64 -17
  48. data/lib/rubocop/cop/style/tab.rb +1 -1
  49. data/lib/rubocop/cop/style/variable_name.rb +44 -0
  50. data/lib/rubocop/cop/style/when_then.rb +1 -1
  51. data/lib/rubocop/cop/style/while_until_do.rb +1 -1
  52. data/lib/rubocop/cop/team.rb +4 -7
  53. data/lib/rubocop/cop/util.rb +12 -0
  54. data/lib/rubocop/formatter/clang_style_formatter.rb +1 -1
  55. data/lib/rubocop/formatter/emacs_style_formatter.rb +5 -2
  56. data/lib/rubocop/formatter/json_formatter.rb +1 -0
  57. data/lib/rubocop/formatter/progress_formatter.rb +9 -13
  58. data/lib/rubocop/formatter/simple_text_formatter.rb +63 -15
  59. data/lib/rubocop/options.rb +184 -0
  60. data/lib/rubocop/processed_source.rb +4 -0
  61. data/lib/rubocop/version.rb +1 -1
  62. data/rubocop.gemspec +1 -1
  63. data/spec/rubocop/cli_spec.rb +870 -1001
  64. data/spec/rubocop/config_spec.rb +13 -13
  65. data/spec/rubocop/config_store_spec.rb +38 -37
  66. data/spec/rubocop/cop/commissioner_spec.rb +42 -46
  67. data/spec/rubocop/cop/cop_spec.rb +72 -77
  68. data/spec/rubocop/cop/corrector_spec.rb +51 -55
  69. data/spec/rubocop/cop/lint/assignment_in_condition_spec.rb +100 -106
  70. data/spec/rubocop/cop/lint/block_alignment_spec.rb +403 -409
  71. data/spec/rubocop/cop/lint/debugger_spec.rb +39 -0
  72. data/spec/rubocop/cop/lint/empty_ensure_spec.rb +19 -25
  73. data/spec/rubocop/cop/lint/end_alignment_spec.rb +50 -56
  74. data/spec/rubocop/cop/lint/end_in_method_spec.rb +20 -26
  75. data/spec/rubocop/cop/lint/ensure_return_spec.rb +30 -36
  76. data/spec/rubocop/cop/lint/eval_spec.rb +25 -31
  77. data/spec/rubocop/cop/lint/handle_exceptions_spec.rb +22 -28
  78. data/spec/rubocop/cop/lint/literal_in_condition_spec.rb +51 -57
  79. data/spec/rubocop/cop/lint/loop_spec.rb +17 -23
  80. data/spec/rubocop/cop/lint/parentheses_as_grouped_expression_spec.rb +51 -57
  81. data/spec/rubocop/cop/lint/rescue_exception_spec.rb +105 -111
  82. data/spec/rubocop/cop/lint/shadowing_outer_local_variable_spec.rb +230 -236
  83. data/spec/rubocop/cop/lint/syntax_spec.rb +33 -0
  84. data/spec/rubocop/cop/lint/unreachable_code_spec.rb +51 -57
  85. data/spec/rubocop/cop/lint/useless_assignment_spec.rb +1544 -1550
  86. data/spec/rubocop/cop/lint/useless_comparison_spec.rb +21 -27
  87. data/spec/rubocop/cop/lint/useless_setter_call_spec.rb +119 -125
  88. data/spec/rubocop/cop/lint/void_spec.rb +50 -56
  89. data/spec/rubocop/cop/offence_spec.rb +101 -131
  90. data/spec/rubocop/cop/rails/has_and_belongs_to_many_spec.rb +6 -12
  91. data/spec/rubocop/cop/rails/read_attribute_spec.rb +6 -12
  92. data/spec/rubocop/cop/rails/validation_spec.rb +13 -19
  93. data/spec/rubocop/cop/style/access_control_spec.rb +146 -152
  94. data/spec/rubocop/cop/style/alias_spec.rb +30 -36
  95. data/spec/rubocop/cop/style/align_array_spec.rb +57 -56
  96. data/spec/rubocop/cop/style/align_hash_spec.rb +256 -237
  97. data/spec/rubocop/cop/style/align_parameters_spec.rb +216 -202
  98. data/spec/rubocop/cop/style/and_or_spec.rb +51 -55
  99. data/spec/rubocop/cop/style/ascii_comments_spec.rb +14 -20
  100. data/spec/rubocop/cop/style/ascii_identifiers_spec.rb +26 -32
  101. data/spec/rubocop/cop/style/attr_spec.rb +11 -17
  102. data/spec/rubocop/cop/style/begin_block_spec.rb +6 -12
  103. data/spec/rubocop/cop/style/block_comments_spec.rb +13 -19
  104. data/spec/rubocop/cop/style/block_nesting_spec.rb +134 -140
  105. data/spec/rubocop/cop/style/blocks_spec.rb +81 -84
  106. data/spec/rubocop/cop/style/case_equality_spec.rb +5 -11
  107. data/spec/rubocop/cop/style/case_indentation_spec.rb +71 -77
  108. data/spec/rubocop/cop/style/character_literal_spec.rb +31 -37
  109. data/spec/rubocop/cop/style/class_and_module_camel_case_spec.rb +31 -37
  110. data/spec/rubocop/cop/style/class_length_spec.rb +65 -0
  111. data/spec/rubocop/cop/style/class_methods_spec.rb +35 -41
  112. data/spec/rubocop/cop/style/class_vars_spec.rb +11 -17
  113. data/spec/rubocop/cop/style/collection_methods_spec.rb +41 -47
  114. data/spec/rubocop/cop/style/colon_method_call_spec.rb +45 -51
  115. data/spec/rubocop/cop/style/comment_annotation_spec.rb +79 -85
  116. data/spec/rubocop/cop/style/constant_name_spec.rb +45 -51
  117. data/spec/rubocop/cop/style/def_with_parentheses_spec.rb +28 -34
  118. data/spec/rubocop/cop/style/def_without_parentheses_spec.rb +23 -29
  119. data/spec/rubocop/cop/style/documentation_spec.rb +60 -66
  120. data/spec/rubocop/cop/style/dot_position_spec.rb +50 -56
  121. data/spec/rubocop/cop/style/empty_line_between_defs_spec.rb +109 -110
  122. data/spec/rubocop/cop/style/empty_lines_spec.rb +28 -34
  123. data/spec/rubocop/cop/style/empty_literal_spec.rb +80 -86
  124. data/spec/rubocop/cop/style/encoding_spec.rb +50 -56
  125. data/spec/rubocop/cop/style/end_block_spec.rb +6 -12
  126. data/spec/rubocop/cop/style/end_of_line_spec.rb +13 -19
  127. data/spec/rubocop/cop/style/even_odd_spec.rb +69 -41
  128. data/spec/rubocop/cop/style/favor_join_spec.rb +21 -27
  129. data/spec/rubocop/cop/style/favor_modifier_spec.rb +180 -176
  130. data/spec/rubocop/cop/style/favor_sprintf_spec.rb +41 -47
  131. data/spec/rubocop/cop/style/favor_unless_over_negated_if_spec.rb +63 -69
  132. data/spec/rubocop/cop/style/favor_until_over_negated_while_spec.rb +32 -38
  133. data/spec/rubocop/cop/style/final_newline_spec.rb +16 -22
  134. data/spec/rubocop/cop/style/for_spec.rb +18 -24
  135. data/spec/rubocop/cop/style/global_vars_spec.rb +23 -29
  136. data/spec/rubocop/cop/style/hash_methods_spec.rb +39 -45
  137. data/spec/rubocop/cop/style/hash_syntax_spec.rb +93 -65
  138. data/spec/rubocop/cop/style/if_with_semicolon_spec.rb +11 -17
  139. data/spec/rubocop/cop/style/indentation_width_spec.rb +377 -383
  140. data/spec/rubocop/cop/style/lambda_call_spec.rb +40 -22
  141. data/spec/rubocop/cop/style/lambda_spec.rb +30 -34
  142. data/spec/rubocop/cop/style/leading_comment_space_spec.rb +44 -50
  143. data/spec/rubocop/cop/style/line_length_spec.rb +11 -17
  144. data/spec/rubocop/cop/style/method_call_parentheses_spec.rb +14 -20
  145. data/spec/rubocop/cop/style/method_called_on_do_end_block_spec.rb +60 -0
  146. data/spec/rubocop/cop/style/method_length_spec.rb +127 -133
  147. data/spec/rubocop/cop/style/method_name_spec.rb +103 -0
  148. data/spec/rubocop/cop/style/module_function_spec.rb +16 -22
  149. data/spec/rubocop/cop/style/multiline_block_chain_spec.rb +64 -70
  150. data/spec/rubocop/cop/style/multiline_if_then_spec.rb +74 -80
  151. data/spec/rubocop/cop/style/nil_comparison_spec.rb +20 -26
  152. data/spec/rubocop/cop/style/not_spec.rb +13 -19
  153. data/spec/rubocop/cop/style/numeric_literals_spec.rb +36 -35
  154. data/spec/rubocop/cop/style/one_line_conditional_spec.rb +5 -11
  155. data/spec/rubocop/cop/style/op_method_spec.rb +61 -67
  156. data/spec/rubocop/cop/style/parameter_lists_spec.rb +31 -37
  157. data/spec/rubocop/cop/style/parentheses_around_condition_spec.rb +62 -68
  158. data/spec/rubocop/cop/style/perl_backrefs_spec.rb +9 -15
  159. data/spec/rubocop/cop/style/proc_spec.rb +13 -19
  160. data/spec/rubocop/cop/style/raise_args_spec.rb +55 -0
  161. data/spec/rubocop/cop/style/reduce_arguments_spec.rb +49 -55
  162. data/spec/rubocop/cop/style/redundant_begin_spec.rb +47 -53
  163. data/spec/rubocop/cop/style/redundant_exception_spec.rb +27 -0
  164. data/spec/rubocop/cop/style/redundant_return_spec.rb +164 -72
  165. data/spec/rubocop/cop/style/redundant_self_spec.rb +109 -115
  166. data/spec/rubocop/cop/style/regexp_literal_spec.rb +57 -63
  167. data/spec/rubocop/cop/style/rescue_modifier_spec.rb +99 -105
  168. data/spec/rubocop/cop/style/semicolon_spec.rb +95 -90
  169. data/spec/rubocop/cop/style/signal_exception_spec.rb +248 -95
  170. data/spec/rubocop/cop/style/single_line_methods_spec.rb +45 -51
  171. data/spec/rubocop/cop/style/space_after_colon_spec.rb +14 -20
  172. data/spec/rubocop/cop/style/space_after_comma_spec.rb +16 -22
  173. data/spec/rubocop/cop/style/space_after_control_keyword_spec.rb +48 -54
  174. data/spec/rubocop/cop/style/space_after_method_name_spec.rb +49 -55
  175. data/spec/rubocop/cop/style/space_after_semicolon_spec.rb +10 -16
  176. data/spec/rubocop/cop/style/space_around_block_braces_spec.rb +118 -50
  177. data/spec/rubocop/cop/style/space_around_equals_in_default_parameter_spec.rb +18 -24
  178. data/spec/rubocop/cop/style/space_around_operators_spec.rb +204 -210
  179. data/spec/rubocop/cop/style/space_before_modifier_keyword_spec.rb +36 -42
  180. data/spec/rubocop/cop/style/space_inside_brackets_spec.rb +39 -45
  181. data/spec/rubocop/cop/style/space_inside_hash_literal_braces_spec.rb +62 -68
  182. data/spec/rubocop/cop/style/space_inside_parens_spec.rb +18 -24
  183. data/spec/rubocop/cop/style/special_global_vars_spec.rb +40 -46
  184. data/spec/rubocop/cop/style/string_literals_spec.rb +148 -70
  185. data/spec/rubocop/cop/style/symbol_array_spec.rb +28 -34
  186. data/spec/rubocop/cop/style/symbol_name_spec.rb +132 -138
  187. data/spec/rubocop/cop/style/tab_spec.rb +9 -15
  188. data/spec/rubocop/cop/style/ternary_operator_spec.rb +25 -31
  189. data/spec/rubocop/cop/style/trailing_blank_lines_spec.rb +10 -16
  190. data/spec/rubocop/cop/style/trailing_whitespace_spec.rb +14 -20
  191. data/spec/rubocop/cop/style/trivial_accessors_spec.rb +374 -380
  192. data/spec/rubocop/cop/style/unless_else_spec.rb +17 -23
  193. data/spec/rubocop/cop/style/variable_interpolation_spec.rb +36 -42
  194. data/spec/rubocop/cop/style/variable_name_spec.rb +83 -0
  195. data/spec/rubocop/cop/style/when_then_spec.rb +31 -37
  196. data/spec/rubocop/cop/style/while_until_do_spec.rb +47 -53
  197. data/spec/rubocop/cop/style/word_array_spec.rb +49 -55
  198. data/spec/rubocop/cop/team_spec.rb +125 -127
  199. data/spec/rubocop/cop/variable_inspector/assignment_spec.rb +176 -180
  200. data/spec/rubocop/cop/variable_inspector/locatable_spec.rb +580 -586
  201. data/spec/rubocop/cop/variable_inspector/scope_spec.rb +140 -146
  202. data/spec/rubocop/cop/variable_inspector/variable_spec.rb +52 -58
  203. data/spec/rubocop/cop/variable_inspector/variable_table_spec.rb +217 -223
  204. data/spec/rubocop/cop/variable_inspector_spec.rb +15 -19
  205. data/spec/rubocop/formatter/clang_style_formatter_spec.rb +35 -36
  206. data/spec/rubocop/formatter/disabled_config_formatter_spec.rb +2 -2
  207. data/spec/rubocop/formatter/emacs_style_formatter_spec.rb +24 -1
  208. data/spec/rubocop/formatter/file_list_formatter_spec.rb +1 -1
  209. data/spec/rubocop/formatter/formatter_set_spec.rb +3 -3
  210. data/spec/rubocop/formatter/json_formatter_spec.rb +7 -2
  211. data/spec/rubocop/formatter/offence_count_formatter_spec.rb +1 -1
  212. data/spec/rubocop/formatter/progress_formatter_spec.rb +1 -1
  213. data/spec/rubocop/formatter/simple_text_formatter_spec.rb +55 -6
  214. data/spec/rubocop/options_spec.rb +233 -0
  215. data/spec/rubocop/processed_source_spec.rb +85 -42
  216. data/spec/rubocop/source_parser_spec.rb +108 -110
  217. data/spec/rubocop/target_finder_spec.rb +125 -127
  218. data/spec/rubocop/token_spec.rb +15 -17
  219. metadata +32 -8
  220. data/lib/rubocop/backports/bsearch.rb +0 -39
  221. data/lib/rubocop/cop/style/method_and_variable_snake_case.rb +0 -77
  222. data/spec/rubocop/cop/style/method_and_variable_snake_case_spec.rb +0 -102
@@ -2,101 +2,98 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- module Cop
7
- module Style
8
- describe Blocks do
9
- subject(:cop) { described_class.new }
5
+ describe Rubocop::Cop::Style::Blocks do
6
+ subject(:cop) { described_class.new }
10
7
 
11
- it 'accepts a multiline block with do-end' do
12
- inspect_source(cop, ['each do |x|',
13
- 'end'])
14
- expect(cop.offences).to be_empty
15
- end
16
-
17
- it 'registers an offence for a single line block with do-end' do
18
- inspect_source(cop, ['each do |x| end'])
19
- expect(cop.messages).to eq([Blocks::SINGLE_LINE_MSG])
20
- end
8
+ it 'accepts a multiline block with do-end' do
9
+ inspect_source(cop, ['each do |x|',
10
+ 'end'])
11
+ expect(cop.offences).to be_empty
12
+ end
21
13
 
22
- it 'accepts a single line block with braces' do
23
- inspect_source(cop, ['each { |x| }'])
24
- expect(cop.offences).to be_empty
25
- end
14
+ it 'registers an offence for a single line block with do-end' do
15
+ inspect_source(cop, ['each do |x| end'])
16
+ expect(cop.messages)
17
+ .to eq(['Prefer {...} over do...end for single-line blocks.'])
18
+ end
26
19
 
27
- it 'auto-corrects do and end for single line blocks to { and }' do
28
- new_source = autocorrect_source(cop, 'block do |x| end')
29
- expect(new_source).to eq('block { |x| }')
30
- end
20
+ it 'accepts a single line block with braces' do
21
+ inspect_source(cop, ['each { |x| }'])
22
+ expect(cop.offences).to be_empty
23
+ end
31
24
 
32
- context 'when there are braces around a multi-line block' do
33
- it 'registers an offence in the simple case' do
34
- inspect_source(cop, ['each { |x|',
35
- '}'])
36
- expect(cop.messages).to eq([Blocks::MULTI_LINE_MSG])
37
- end
25
+ it 'auto-corrects do and end for single line blocks to { and }' do
26
+ new_source = autocorrect_source(cop, 'block do |x| end')
27
+ expect(new_source).to eq('block { |x| }')
28
+ end
38
29
 
39
- it 'accepts braces if do-end would change the meaning' do
40
- src = ['scope :foo, lambda { |f|',
41
- ' where(condition: "value")',
42
- '}',
43
- '',
44
- 'expect { something }.to raise_error(ErrorClass) { |error|',
45
- ' # ...',
46
- '}',
47
- '',
48
- 'expect { x }.to change {',
49
- ' Counter.count',
50
- '}.from(0).to(1)']
51
- inspect_source(cop, src)
52
- expect(cop.offences).to be_empty
53
- end
30
+ context 'when there are braces around a multi-line block' do
31
+ it 'registers an offence in the simple case' do
32
+ inspect_source(cop, ['each { |x|',
33
+ '}'])
34
+ expect(cop.messages)
35
+ .to eq(['Avoid using {...} for multi-line blocks.'])
36
+ end
54
37
 
55
- it 'registers an offence for braces if do-end would not change ' +
56
- 'the meaning' do
57
- src = ['scope :foo, (lambda { |f|',
58
- ' where(condition: "value")',
59
- '})',
60
- '',
61
- 'expect { something }.to(raise_error(ErrorClass) { |error|',
62
- ' # ...',
63
- '})']
64
- inspect_source(cop, src)
65
- expect(cop.offences.size).to eq(2)
66
- end
38
+ it 'accepts braces if do-end would change the meaning' do
39
+ src = ['scope :foo, lambda { |f|',
40
+ ' where(condition: "value")',
41
+ '}',
42
+ '',
43
+ 'expect { something }.to raise_error(ErrorClass) { |error|',
44
+ ' # ...',
45
+ '}',
46
+ '',
47
+ 'expect { x }.to change {',
48
+ ' Counter.count',
49
+ '}.from(0).to(1)']
50
+ inspect_source(cop, src)
51
+ expect(cop.offences).to be_empty
52
+ end
67
53
 
68
- it 'can handle special method names such as []= and done?' do
69
- src = ['h2[k2] = Hash.new { |h3,k3|',
70
- ' h3[k3] = 0',
71
- '}',
72
- '',
73
- 'x = done? list.reject { |e|',
74
- ' e.nil?',
75
- '}']
76
- inspect_source(cop, src)
77
- expect(cop.messages).to eq([Blocks::MULTI_LINE_MSG])
78
- end
54
+ it 'registers an offence for braces if do-end would not change ' +
55
+ 'the meaning' do
56
+ src = ['scope :foo, (lambda { |f|',
57
+ ' where(condition: "value")',
58
+ '})',
59
+ '',
60
+ 'expect { something }.to(raise_error(ErrorClass) { |error|',
61
+ ' # ...',
62
+ '})']
63
+ inspect_source(cop, src)
64
+ expect(cop.offences.size).to eq(2)
65
+ end
79
66
 
80
- it 'auto-corrects do and end for single line blocks to { and }' do
81
- source = <<-END.strip_indent
82
- each { |x|
83
- some_method
84
- other_method
85
- }
86
- END
67
+ it 'can handle special method names such as []= and done?' do
68
+ src = ['h2[k2] = Hash.new { |h3,k3|',
69
+ ' h3[k3] = 0',
70
+ '}',
71
+ '',
72
+ 'x = done? list.reject { |e|',
73
+ ' e.nil?',
74
+ '}']
75
+ inspect_source(cop, src)
76
+ expect(cop.messages)
77
+ .to eq(['Avoid using {...} for multi-line blocks.'])
78
+ end
87
79
 
88
- expected_source = <<-END.strip_indent
89
- each do |x|
90
- some_method
91
- other_method
92
- end
93
- END
80
+ it 'auto-corrects { and } to do and end' do
81
+ source = <<-END.strip_indent
82
+ each{ |x|
83
+ some_method
84
+ other_method
85
+ }
86
+ END
94
87
 
95
- new_source = autocorrect_source(cop, source)
96
- expect(new_source).to eq(expected_source)
97
- end
88
+ expected_source = <<-END.strip_indent
89
+ each do |x|
90
+ some_method
91
+ other_method
98
92
  end
99
- end
93
+ END
94
+
95
+ new_source = autocorrect_source(cop, source)
96
+ expect(new_source).to eq(expected_source)
100
97
  end
101
98
  end
102
99
  end
@@ -2,17 +2,11 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- module Cop
7
- module Style
8
- describe CaseEquality do
9
- subject(:ce) { CaseEquality.new }
5
+ describe Rubocop::Cop::Style::CaseEquality do
6
+ subject(:cop) { described_class.new }
10
7
 
11
- it 'registers an offence for ===' do
12
- inspect_source(ce, ['Array === var'])
13
- expect(ce.offences.size).to eq(1)
14
- end
15
- end
16
- end
8
+ it 'registers an offence for ===' do
9
+ inspect_source(cop, ['Array === var'])
10
+ expect(cop.offences.size).to eq(1)
17
11
  end
18
12
  end
@@ -2,87 +2,81 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- module Cop
7
- module Style
8
- describe CaseIndentation do
9
- subject(:ind) { CaseIndentation.new }
5
+ describe Rubocop::Cop::Style::CaseIndentation do
6
+ subject(:cop) { described_class.new }
10
7
 
11
- it "registers an offence for a when clause that's deeper than case" do
12
- source = ['case a',
13
- ' when 0 then return',
14
- ' case b',
15
- ' when 1 then return',
16
- ' end',
17
- 'end']
18
- inspect_source(ind, source)
19
- expect(ind.messages).to eq(
20
- ['Indent when as deep as case.'] * 2)
21
- end
8
+ it "registers an offence for a when clause that's deeper than case" do
9
+ source = ['case a',
10
+ ' when 0 then return',
11
+ ' case b',
12
+ ' when 1 then return',
13
+ ' end',
14
+ 'end']
15
+ inspect_source(cop, source)
16
+ expect(cop.messages).to eq(
17
+ ['Indent when as deep as case.'] * 2)
18
+ end
22
19
 
23
- it "accepts a when clause that's equally indented with case" do
24
- source = ['y = case a',
25
- ' when 0 then break',
26
- ' when 0 then return',
27
- ' z = case b',
28
- ' when 1 then return',
29
- ' when 1 then break',
30
- ' end',
31
- ' end',
32
- 'case c',
33
- 'when 2 then encoding',
34
- 'end',
35
- '']
36
- inspect_source(ind, source)
37
- expect(ind.offences).to be_empty
38
- end
20
+ it "accepts a when clause that's equally indented with case" do
21
+ source = ['y = case a',
22
+ ' when 0 then break',
23
+ ' when 0 then return',
24
+ ' z = case b',
25
+ ' when 1 then return',
26
+ ' when 1 then break',
27
+ ' end',
28
+ ' end',
29
+ 'case c',
30
+ 'when 2 then encoding',
31
+ 'end',
32
+ '']
33
+ inspect_source(cop, source)
34
+ expect(cop.offences).to be_empty
35
+ end
39
36
 
40
- it "doesn't get confused by strings with case in them" do
41
- source = ['a = "case"',
42
- 'case x',
43
- 'when 0',
44
- 'end',
45
- '']
46
- inspect_source(ind, source)
47
- expect(ind.messages).to be_empty
48
- end
37
+ it "doesn't get confused by strings with case in them" do
38
+ source = ['a = "case"',
39
+ 'case x',
40
+ 'when 0',
41
+ 'end',
42
+ '']
43
+ inspect_source(cop, source)
44
+ expect(cop.messages).to be_empty
45
+ end
49
46
 
50
- it "doesn't get confused by symbols named case or when" do
51
- source = ['KEYWORDS = { :case => true, :when => true }',
52
- 'case type',
53
- 'when 0',
54
- ' ParameterNode',
55
- 'when 1',
56
- ' MethodCallNode',
57
- 'end',
58
- '']
59
- inspect_source(ind, source)
60
- expect(ind.messages).to be_empty
61
- end
47
+ it "doesn't get confused by symbols named case or when" do
48
+ source = ['KEYWORDS = { :case => true, :when => true }',
49
+ 'case type',
50
+ 'when 0',
51
+ ' ParameterNode',
52
+ 'when 1',
53
+ ' MethodCallNode',
54
+ 'end',
55
+ '']
56
+ inspect_source(cop, source)
57
+ expect(cop.messages).to be_empty
58
+ end
62
59
 
63
- it 'accepts correctly indented whens in complex combinations' do
64
- source = ['each {',
65
- ' case state',
66
- ' when 0',
67
- ' case name',
68
- ' when :a',
69
- ' end',
70
- ' when 1',
71
- ' loop {',
72
- ' case name',
73
- ' when :b',
74
- ' end',
75
- ' }',
76
- ' end',
77
- '}',
78
- 'case s',
79
- 'when Array',
80
- 'end',
81
- '']
82
- inspect_source(ind, source)
83
- expect(ind.messages).to be_empty
84
- end
85
- end
86
- end
60
+ it 'accepts correctly indented whens in complex combinations' do
61
+ source = ['each {',
62
+ ' case state',
63
+ ' when 0',
64
+ ' case name',
65
+ ' when :a',
66
+ ' end',
67
+ ' when 1',
68
+ ' loop {',
69
+ ' case name',
70
+ ' when :b',
71
+ ' end',
72
+ ' }',
73
+ ' end',
74
+ '}',
75
+ 'case s',
76
+ 'when Array',
77
+ 'end',
78
+ '']
79
+ inspect_source(cop, source)
80
+ expect(cop.messages).to be_empty
87
81
  end
88
82
  end
@@ -2,42 +2,36 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- module Cop
7
- module Style
8
- describe CharacterLiteral do
9
- subject(:cop) { CharacterLiteral.new }
10
-
11
- it 'registers an offence for character literals' do
12
- inspect_source(cop, ['x = ?x'])
13
- expect(cop.offences.size).to eq(1)
14
- end
15
-
16
- it 'registers an offence for literals like \n' do
17
- inspect_source(cop, ['x = ?\n'])
18
- expect(cop.offences.size).to eq(1)
19
- end
20
-
21
- it 'accepts literals like ?\C-\M-d' do
22
- inspect_source(cop, ['x = ?\C-\M-d'])
23
- expect(cop.offences).to be_empty
24
- end
25
-
26
- it 'accepts ? in a %w literal' do
27
- inspect_source(cop, ['%w{? A}'])
28
- expect(cop.offences).to be_empty
29
- end
30
-
31
- it "auto-corrects ?x to 'x'" do
32
- new_source = autocorrect_source(cop, 'x = ?x')
33
- expect(new_source).to eq("x = 'x'")
34
- end
35
-
36
- it 'auto-corrects ?\n to "\\n"' do
37
- new_source = autocorrect_source(cop, 'x = ?\n')
38
- expect(new_source).to eq('x = "\\n"')
39
- end
40
- end
41
- end
5
+ describe Rubocop::Cop::Style::CharacterLiteral do
6
+ subject(:cop) { described_class.new }
7
+
8
+ it 'registers an offence for character literals' do
9
+ inspect_source(cop, ['x = ?x'])
10
+ expect(cop.offences.size).to eq(1)
11
+ end
12
+
13
+ it 'registers an offence for literals like \n' do
14
+ inspect_source(cop, ['x = ?\n'])
15
+ expect(cop.offences.size).to eq(1)
16
+ end
17
+
18
+ it 'accepts literals like ?\C-\M-d' do
19
+ inspect_source(cop, ['x = ?\C-\M-d'])
20
+ expect(cop.offences).to be_empty
21
+ end
22
+
23
+ it 'accepts ? in a %w literal' do
24
+ inspect_source(cop, ['%w{? A}'])
25
+ expect(cop.offences).to be_empty
26
+ end
27
+
28
+ it "auto-corrects ?x to 'x'" do
29
+ new_source = autocorrect_source(cop, 'x = ?x')
30
+ expect(new_source).to eq("x = 'x'")
31
+ end
32
+
33
+ it 'auto-corrects ?\n to "\\n"' do
34
+ new_source = autocorrect_source(cop, 'x = ?\n')
35
+ expect(new_source).to eq('x = "\\n"')
42
36
  end
43
37
  end
@@ -2,45 +2,39 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- module Cop
7
- module Style
8
- describe ClassAndModuleCamelCase do
9
- subject(:camel_case) { ClassAndModuleCamelCase.new }
5
+ describe Rubocop::Cop::Style::ClassAndModuleCamelCase do
6
+ subject(:cop) { described_class.new }
10
7
 
11
- it 'registers an offence for underscore in class and module name' do
12
- inspect_source(camel_case,
13
- ['class My_Class',
14
- 'end',
15
- '',
16
- 'module My_Module',
17
- 'end',
18
- ])
19
- expect(camel_case.offences.size).to eq(2)
20
- end
8
+ it 'registers an offence for underscore in class and module name' do
9
+ inspect_source(cop,
10
+ ['class My_Class',
11
+ 'end',
12
+ '',
13
+ 'module My_Module',
14
+ 'end',
15
+ ])
16
+ expect(cop.offences.size).to eq(2)
17
+ end
21
18
 
22
- it 'is not fooled by qualified names' do
23
- inspect_source(camel_case,
24
- ['class Top::My_Class',
25
- 'end',
26
- '',
27
- 'module My_Module::Ala',
28
- 'end',
29
- ])
30
- expect(camel_case.offences.size).to eq(2)
31
- end
19
+ it 'is not fooled by qualified names' do
20
+ inspect_source(cop,
21
+ ['class Top::My_Class',
22
+ 'end',
23
+ '',
24
+ 'module My_Module::Ala',
25
+ 'end',
26
+ ])
27
+ expect(cop.offences.size).to eq(2)
28
+ end
32
29
 
33
- it 'accepts CamelCase names' do
34
- inspect_source(camel_case,
35
- ['class MyClass',
36
- 'end',
37
- '',
38
- 'module Mine',
39
- 'end',
40
- ])
41
- expect(camel_case.offences).to be_empty
42
- end
43
- end
44
- end
30
+ it 'accepts CamelCase names' do
31
+ inspect_source(cop,
32
+ ['class MyClass',
33
+ 'end',
34
+ '',
35
+ 'module Mine',
36
+ 'end',
37
+ ])
38
+ expect(cop.offences).to be_empty
45
39
  end
46
40
  end