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,127 +2,126 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- module Cop
7
- module Style
8
- describe EmptyLineBetweenDefs, :config do
9
- subject(:empty_lines) { EmptyLineBetweenDefs.new(config) }
10
- let(:cop_config) { { 'AllowAdjacentOneLineDefs' => false } }
5
+ describe Rubocop::Cop::Style::EmptyLineBetweenDefs, :config do
6
+ subject(:cop) { described_class.new(config) }
7
+ let(:cop_config) { { 'AllowAdjacentOneLineDefs' => false } }
11
8
 
12
- it 'finds offences in inner classes' do
13
- inspect_source(empty_lines, ['class K',
14
- ' def m',
15
- ' end',
16
- ' class J',
17
- ' def n',
18
- ' end',
19
- ' def o',
20
- ' end',
21
- ' end',
22
- ' # checks something',
23
- ' def p',
24
- ' end',
25
- 'end'])
26
- expect(empty_lines.offences.size).to eq(1)
27
- expect(empty_lines.offences.map(&:line).sort).to eq([7])
28
- end
9
+ it 'finds offences in inner classes' do
10
+ source = ['class K',
11
+ ' def m',
12
+ ' end',
13
+ ' class J',
14
+ ' def n',
15
+ ' end',
16
+ ' def o',
17
+ ' end',
18
+ ' end',
19
+ ' # checks something',
20
+ ' def p',
21
+ ' end',
22
+ 'end']
23
+ inspect_source(cop, source)
24
+ expect(cop.offences.size).to eq(1)
25
+ expect(cop.offences.map(&:line).sort).to eq([7])
26
+ end
29
27
 
30
- # Only one def, so rule about empty line *between* defs does not
31
- # apply.
32
- it 'accepts a def that follows a line with code' do
33
- inspect_source(empty_lines, ['x = 0',
34
- 'def m',
35
- 'end'])
36
- expect(empty_lines.offences).to be_empty
37
- end
28
+ # Only one def, so rule about empty line *between* defs does not
29
+ # apply.
30
+ it 'accepts a def that follows a line with code' do
31
+ source = ['x = 0',
32
+ 'def m',
33
+ 'end']
34
+ inspect_source(cop, source)
35
+ expect(cop.offences).to be_empty
36
+ end
38
37
 
39
- # Only one def, so rule about empty line *between* defs does not
40
- # apply.
41
- it 'accepts a def that follows code and a comment' do
42
- inspect_source(empty_lines, [' x = 0',
43
- ' # 123',
44
- ' def m',
45
- ' end'])
46
- expect(empty_lines.offences).to be_empty
47
- end
38
+ # Only one def, so rule about empty line *between* defs does not
39
+ # apply.
40
+ it 'accepts a def that follows code and a comment' do
41
+ source = [' x = 0',
42
+ ' # 123',
43
+ ' def m',
44
+ ' end']
45
+ inspect_source(cop, source)
46
+ expect(cop.offences).to be_empty
47
+ end
48
48
 
49
- it 'accepts the first def without leading empty line in a class' do
50
- inspect_source(empty_lines, ['class K',
51
- ' def m',
52
- ' end',
53
- 'end'])
54
- expect(empty_lines.offences).to be_empty
55
- end
49
+ it 'accepts the first def without leading empty line in a class' do
50
+ source = ['class K',
51
+ ' def m',
52
+ ' end',
53
+ 'end']
54
+ inspect_source(cop, source)
55
+ expect(cop.offences).to be_empty
56
+ end
56
57
 
57
- it 'accepts a def that follows an empty line and then a comment' do
58
- inspect_source(empty_lines, ['class A',
59
- ' # calculates value',
60
- ' def m',
61
- ' end',
62
- '',
63
- ' private',
64
- ' # calculates size',
65
- ' def n',
66
- ' end',
67
- 'end',
68
- ])
69
- expect(empty_lines.offences).to be_empty
70
- end
58
+ it 'accepts a def that follows an empty line and then a comment' do
59
+ source = ['class A',
60
+ ' # calculates value',
61
+ ' def m',
62
+ ' end',
63
+ '',
64
+ ' private',
65
+ ' # calculates size',
66
+ ' def n',
67
+ ' end',
68
+ 'end',
69
+ ]
70
+ inspect_source(cop, source)
71
+ expect(cop.offences).to be_empty
72
+ end
71
73
 
72
- it 'accepts a def that is the first of a module' do
73
- source = ['module Util',
74
- ' public',
75
- ' #',
76
- ' def html_escape(s)',
77
- ' end',
78
- 'end',
79
- ]
80
- inspect_source(empty_lines, source)
81
- expect(empty_lines.messages).to be_empty
82
- end
74
+ it 'accepts a def that is the first of a module' do
75
+ source = ['module Util',
76
+ ' public',
77
+ ' #',
78
+ ' def html_escape(s)',
79
+ ' end',
80
+ 'end',
81
+ ]
82
+ inspect_source(cop, source)
83
+ expect(cop.messages).to be_empty
84
+ end
83
85
 
84
- it 'accepts a nested def' do
85
- source = ['def mock_model(*attributes)',
86
- ' Class.new do',
87
- ' def initialize(attrs)',
88
- ' end',
89
- ' end',
90
- 'end',
91
- ]
92
- inspect_source(empty_lines, source)
93
- expect(empty_lines.messages).to be_empty
94
- end
86
+ it 'accepts a nested def' do
87
+ source = ['def mock_model(*attributes)',
88
+ ' Class.new do',
89
+ ' def initialize(attrs)',
90
+ ' end',
91
+ ' end',
92
+ 'end',
93
+ ]
94
+ inspect_source(cop, source)
95
+ expect(cop.messages).to be_empty
96
+ end
95
97
 
96
- it 'registers an offence for adjacent one-liners by default' do
97
- source = ['def a; end',
98
- 'def b; end']
99
- inspect_source(empty_lines, source)
100
- expect(empty_lines.offences).to have(1).item
101
- end
98
+ it 'registers an offence for adjacent one-liners by default' do
99
+ source = ['def a; end',
100
+ 'def b; end']
101
+ inspect_source(cop, source)
102
+ expect(cop.offences).to have(1).item
103
+ end
102
104
 
103
- context 'when AllowAdjacentOneLineDefs is enabled' do
104
- let(:cop_config) { { 'AllowAdjacentOneLineDefs' => true } }
105
+ context 'when AllowAdjacentOneLineDefs is enabled' do
106
+ let(:cop_config) { { 'AllowAdjacentOneLineDefs' => true } }
105
107
 
106
- it 'accepts adjacent one-liners' do
107
- source = ['def a; end',
108
- 'def b; end']
109
- inspect_source(empty_lines, source)
110
- expect(empty_lines.offences).to be_empty
111
- end
108
+ it 'accepts adjacent one-liners' do
109
+ source = ['def a; end',
110
+ 'def b; end']
111
+ inspect_source(cop, source)
112
+ expect(cop.offences).to be_empty
113
+ end
112
114
 
113
- it 'registers an offence for adjacent defs if some are multi-line' do
114
- source = ['def a; end',
115
- 'def b; end',
116
- 'def c', # Not a one-liner, so this is an offence.
117
- 'end',
118
- # Also an offence since previous was multi-line:
119
- 'def d; end'
120
- ]
121
- inspect_source(empty_lines, source)
122
- expect(empty_lines.offences.map(&:line)).to eq([3, 5])
123
- end
124
- end
125
- end
115
+ it 'registers an offence for adjacent defs if some are multi-line' do
116
+ source = ['def a; end',
117
+ 'def b; end',
118
+ 'def c', # Not a one-liner, so this is an offence.
119
+ 'end',
120
+ # Also an offence since previous was multi-line:
121
+ 'def d; end'
122
+ ]
123
+ inspect_source(cop, source)
124
+ expect(cop.offences.map(&:line)).to eq([3, 5])
126
125
  end
127
126
  end
128
127
  end
@@ -2,39 +2,33 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- module Cop
7
- module Style
8
- describe EmptyLines do
9
- subject(:empty_lines) { EmptyLines.new }
10
-
11
- it 'registers an offence for consecutive empty lines' do
12
- inspect_source(empty_lines,
13
- ['test = 5', '', '', '', 'top'])
14
- expect(empty_lines.offences.size).to eq(2)
15
- end
16
-
17
- it 'works when there are no tokens' do
18
- inspect_source(empty_lines,
19
- ['#comment'])
20
- expect(empty_lines.offences).to be_empty
21
- end
22
-
23
- it 'handles comments' do
24
- inspect_source(empty_lines,
25
- ['test', '', '#comment', 'top'])
26
- expect(empty_lines.offences).to be_empty
27
- end
28
-
29
- it 'does not register an offence for empty lines in a string' do
30
- inspect_source(empty_lines, ['result = "test
31
-
32
-
33
-
34
- string"'])
35
- expect(empty_lines.offences).to be_empty
36
- end
37
- end
38
- end
5
+ describe Rubocop::Cop::Style::EmptyLines do
6
+ subject(:cop) { described_class.new }
7
+
8
+ it 'registers an offence for consecutive empty lines' do
9
+ inspect_source(cop,
10
+ ['test = 5', '', '', '', 'top'])
11
+ expect(cop.offences.size).to eq(2)
12
+ end
13
+
14
+ it 'works when there are no tokens' do
15
+ inspect_source(cop,
16
+ ['#comment'])
17
+ expect(cop.offences).to be_empty
18
+ end
19
+
20
+ it 'handles comments' do
21
+ inspect_source(cop,
22
+ ['test', '', '#comment', 'top'])
23
+ expect(cop.offences).to be_empty
24
+ end
25
+
26
+ it 'does not register an offence for empty lines in a string' do
27
+ inspect_source(cop, ['result = "test
28
+
29
+
30
+
31
+ string"'])
32
+ expect(cop.offences).to be_empty
39
33
  end
40
34
  end
@@ -2,105 +2,99 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- module Cop
7
- module Style
8
- describe EmptyLiteral do
9
- subject(:cop) { described_class.new }
5
+ describe Rubocop::Cop::Style::EmptyLiteral do
6
+ subject(:cop) { described_class.new }
10
7
 
11
- describe 'Empty Array' do
12
- it 'registers an offence for Array.new()' do
13
- inspect_source(cop,
14
- ['test = Array.new()'])
15
- expect(cop.offences.size).to eq(1)
16
- expect(cop.messages)
17
- .to eq([EmptyLiteral::ARR_MSG])
18
- end
8
+ describe 'Empty Array' do
9
+ it 'registers an offence for Array.new()' do
10
+ inspect_source(cop,
11
+ ['test = Array.new()'])
12
+ expect(cop.offences.size).to eq(1)
13
+ expect(cop.messages)
14
+ .to eq(['Use array literal [] instead of Array.new.'])
15
+ end
19
16
 
20
- it 'registers an offence for Array.new' do
21
- inspect_source(cop,
22
- ['test = Array.new'])
23
- expect(cop.offences.size).to eq(1)
24
- expect(cop.messages)
25
- .to eq([EmptyLiteral::ARR_MSG])
26
- end
17
+ it 'registers an offence for Array.new' do
18
+ inspect_source(cop,
19
+ ['test = Array.new'])
20
+ expect(cop.offences.size).to eq(1)
21
+ expect(cop.messages)
22
+ .to eq(['Use array literal [] instead of Array.new.'])
23
+ end
27
24
 
28
- it 'does not register an offence for Array.new(3)' do
29
- inspect_source(cop,
30
- ['test = Array.new(3)'])
31
- expect(cop.offences).to be_empty
32
- end
25
+ it 'does not register an offence for Array.new(3)' do
26
+ inspect_source(cop,
27
+ ['test = Array.new(3)'])
28
+ expect(cop.offences).to be_empty
29
+ end
33
30
 
34
- it 'auto-corrects Array.new to []' do
35
- new_source = autocorrect_source(cop, 'test = Array.new')
36
- expect(new_source).to eq('test = []')
37
- end
38
- end
31
+ it 'auto-corrects Array.new to []' do
32
+ new_source = autocorrect_source(cop, 'test = Array.new')
33
+ expect(new_source).to eq('test = []')
34
+ end
35
+ end
39
36
 
40
- describe 'Empty Hash' do
41
- it 'registers an offence for Hash.new()' do
42
- inspect_source(cop,
43
- ['test = Hash.new()'])
44
- expect(cop.offences.size).to eq(1)
45
- expect(cop.messages)
46
- .to eq([EmptyLiteral::HASH_MSG])
47
- end
37
+ describe 'Empty Hash' do
38
+ it 'registers an offence for Hash.new()' do
39
+ inspect_source(cop,
40
+ ['test = Hash.new()'])
41
+ expect(cop.offences.size).to eq(1)
42
+ expect(cop.messages)
43
+ .to eq(['Use hash literal {} instead of Hash.new.'])
44
+ end
48
45
 
49
- it 'registers an offence for Hash.new' do
50
- inspect_source(cop,
51
- ['test = Hash.new'])
52
- expect(cop.offences.size).to eq(1)
53
- expect(cop.messages)
54
- .to eq([EmptyLiteral::HASH_MSG])
55
- end
46
+ it 'registers an offence for Hash.new' do
47
+ inspect_source(cop,
48
+ ['test = Hash.new'])
49
+ expect(cop.offences.size).to eq(1)
50
+ expect(cop.messages)
51
+ .to eq(['Use hash literal {} instead of Hash.new.'])
52
+ end
56
53
 
57
- it 'does not register an offence for Hash.new(3)' do
58
- inspect_source(cop,
59
- ['test = Hash.new(3)'])
60
- expect(cop.offences).to be_empty
61
- end
54
+ it 'does not register an offence for Hash.new(3)' do
55
+ inspect_source(cop,
56
+ ['test = Hash.new(3)'])
57
+ expect(cop.offences).to be_empty
58
+ end
62
59
 
63
- it 'does not register an offence for Hash.new { block }' do
64
- inspect_source(cop,
65
- ['test = Hash.new { block }'])
66
- expect(cop.offences).to be_empty
67
- end
60
+ it 'does not register an offence for Hash.new { block }' do
61
+ inspect_source(cop,
62
+ ['test = Hash.new { block }'])
63
+ expect(cop.offences).to be_empty
64
+ end
68
65
 
69
- it 'auto-corrects Hash.new to {}' do
70
- new_source = autocorrect_source(cop, 'test = Hash.new')
71
- expect(new_source).to eq('test = {}')
72
- end
73
- end
66
+ it 'auto-corrects Hash.new to {}' do
67
+ new_source = autocorrect_source(cop, 'test = Hash.new')
68
+ expect(new_source).to eq('test = {}')
69
+ end
70
+ end
74
71
 
75
- describe 'Empty String' do
76
- it 'registers an offence for String.new()' do
77
- inspect_source(cop,
78
- ['test = String.new()'])
79
- expect(cop.offences.size).to eq(1)
80
- expect(cop.messages)
81
- .to eq([EmptyLiteral::STR_MSG])
82
- end
72
+ describe 'Empty String' do
73
+ it 'registers an offence for String.new()' do
74
+ inspect_source(cop,
75
+ ['test = String.new()'])
76
+ expect(cop.offences.size).to eq(1)
77
+ expect(cop.messages)
78
+ .to eq(["Use string literal '' instead of String.new."])
79
+ end
83
80
 
84
- it 'registers an offence for String.new' do
85
- inspect_source(cop,
86
- ['test = String.new'])
87
- expect(cop.offences.size).to eq(1)
88
- expect(cop.messages)
89
- .to eq([EmptyLiteral::STR_MSG])
90
- end
81
+ it 'registers an offence for String.new' do
82
+ inspect_source(cop,
83
+ ['test = String.new'])
84
+ expect(cop.offences.size).to eq(1)
85
+ expect(cop.messages)
86
+ .to eq(["Use string literal '' instead of String.new."])
87
+ end
91
88
 
92
- it 'does not register an offence for String.new("top")' do
93
- inspect_source(cop,
94
- ['test = String.new("top")'])
95
- expect(cop.offences).to be_empty
96
- end
89
+ it 'does not register an offence for String.new("top")' do
90
+ inspect_source(cop,
91
+ ['test = String.new("top")'])
92
+ expect(cop.offences).to be_empty
93
+ end
97
94
 
98
- it 'auto-corrects String.new to empty string literal' do
99
- new_source = autocorrect_source(cop, 'test = String.new')
100
- expect(new_source).to eq("test = ''")
101
- end
102
- end
103
- end
95
+ it 'auto-corrects String.new to empty string literal' do
96
+ new_source = autocorrect_source(cop, 'test = String.new')
97
+ expect(new_source).to eq("test = ''")
104
98
  end
105
99
  end
106
100
  end