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,68 +2,62 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- module Cop
7
- module Lint
8
- describe LiteralInCondition do
9
- subject(:cop) { LiteralInCondition.new }
10
-
11
- %w(1 2.0 [1] {}).each do |lit|
12
- it "registers an offence for literal #{lit} in &&" do
13
- inspect_source(cop,
14
- ["if x && #{lit}",
15
- ' top',
16
- 'end'
17
- ])
18
- expect(cop.offences.size).to eq(1)
19
- end
5
+ describe Rubocop::Cop::Lint::LiteralInCondition do
6
+ subject(:cop) { described_class.new }
7
+
8
+ %w(1 2.0 [1] {}).each do |lit|
9
+ it "registers an offence for literal #{lit} in &&" do
10
+ inspect_source(cop,
11
+ ["if x && #{lit}",
12
+ ' top',
13
+ 'end'
14
+ ])
15
+ expect(cop.offences.size).to eq(1)
16
+ end
20
17
 
21
- it "registers an offence for literal #{lit} in complex cond" do
22
- inspect_source(cop,
23
- ["if x && !(a && #{lit}) && y && z",
24
- ' top',
25
- 'end'
26
- ])
27
- expect(cop.offences.size).to eq(1)
28
- end
18
+ it "registers an offence for literal #{lit} in complex cond" do
19
+ inspect_source(cop,
20
+ ["if x && !(a && #{lit}) && y && z",
21
+ ' top',
22
+ 'end'
23
+ ])
24
+ expect(cop.offences.size).to eq(1)
25
+ end
29
26
 
30
- it "registers an offence for literal #{lit} in !" do
31
- inspect_source(cop,
32
- ["if !#{lit}",
33
- ' top',
34
- 'end'
35
- ])
36
- expect(cop.offences.size).to eq(1)
37
- end
27
+ it "registers an offence for literal #{lit} in !" do
28
+ inspect_source(cop,
29
+ ["if !#{lit}",
30
+ ' top',
31
+ 'end'
32
+ ])
33
+ expect(cop.offences.size).to eq(1)
34
+ end
38
35
 
39
- it "registers an offence for literal #{lit} in complex !" do
40
- inspect_source(cop,
41
- ["if !(x && (y && #{lit}))",
42
- ' top',
43
- 'end'
44
- ])
45
- expect(cop.offences.size).to eq(1)
46
- end
36
+ it "registers an offence for literal #{lit} in complex !" do
37
+ inspect_source(cop,
38
+ ["if !(x && (y && #{lit}))",
39
+ ' top',
40
+ 'end'
41
+ ])
42
+ expect(cop.offences.size).to eq(1)
43
+ end
47
44
 
48
- it "accepts literal #{lit} if it's not an and/or operand" do
49
- inspect_source(cop,
50
- ["if test(#{lit})",
51
- ' top',
52
- 'end'
53
- ])
54
- expect(cop.offences).to be_empty
55
- end
45
+ it "accepts literal #{lit} if it's not an and/or operand" do
46
+ inspect_source(cop,
47
+ ["if test(#{lit})",
48
+ ' top',
49
+ 'end'
50
+ ])
51
+ expect(cop.offences).to be_empty
52
+ end
56
53
 
57
- it "accepts literal #{lit} in non-toplevel and/or" do
58
- inspect_source(cop,
59
- ["if (a || #{lit}).something",
60
- ' top',
61
- 'end'
62
- ])
63
- expect(cop.offences).to be_empty
64
- end
65
- end
66
- end
54
+ it "accepts literal #{lit} in non-toplevel and/or" do
55
+ inspect_source(cop,
56
+ ["if (a || #{lit}).something",
57
+ ' top',
58
+ 'end'
59
+ ])
60
+ expect(cop.offences).to be_empty
67
61
  end
68
62
  end
69
63
  end
@@ -2,32 +2,26 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- module Cop
7
- module Lint
8
- describe Loop do
9
- subject(:loop) { Loop.new }
5
+ describe Rubocop::Cop::Lint::Loop do
6
+ subject(:cop) { described_class.new }
10
7
 
11
- it 'registers an offence for begin/end/while' do
12
- inspect_source(loop, ['begin something; top; end while test'])
13
- expect(loop.offences.size).to eq(1)
14
- end
8
+ it 'registers an offence for begin/end/while' do
9
+ inspect_source(cop, ['begin something; top; end while test'])
10
+ expect(cop.offences.size).to eq(1)
11
+ end
15
12
 
16
- it 'registers an offence for begin/end/until' do
17
- inspect_source(loop, ['begin something; top; end until test'])
18
- expect(loop.offences.size).to eq(1)
19
- end
13
+ it 'registers an offence for begin/end/until' do
14
+ inspect_source(cop, ['begin something; top; end until test'])
15
+ expect(cop.offences.size).to eq(1)
16
+ end
20
17
 
21
- it 'accepts normal while' do
22
- inspect_source(loop, ['while test; one; two; end'])
23
- expect(loop.offences).to be_empty
24
- end
18
+ it 'accepts normal while' do
19
+ inspect_source(cop, ['while test; one; two; end'])
20
+ expect(cop.offences).to be_empty
21
+ end
25
22
 
26
- it 'accepts normal until' do
27
- inspect_source(loop, ['until test; one; two; end'])
28
- expect(loop.offences).to be_empty
29
- end
30
- end
31
- end
23
+ it 'accepts normal until' do
24
+ inspect_source(cop, ['until test; one; two; end'])
25
+ expect(cop.offences).to be_empty
32
26
  end
33
27
  end
@@ -2,62 +2,56 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- module Cop
7
- module Lint
8
- describe ParenthesesAsGroupedExpression do
9
- subject(:cop) { ParenthesesAsGroupedExpression.new }
10
-
11
- it 'registers an offence for method call with space before the ' +
12
- 'parenthesis' do
13
- inspect_source(cop, ['a.func (x)'])
14
- expect(cop.offences).to have(1).item
15
- end
16
-
17
- it 'registers an offence for predicate method call with space ' +
18
- 'before the parenthesis' do
19
- inspect_source(cop, ['is? (x)'])
20
- expect(cop.offences).to have(1).item
21
- end
22
-
23
- it 'registers an offence for math expression' do
24
- inspect_source(cop, ['puts (2 + 3) * 4'])
25
- expect(cop.offences).to have(1).item
26
- end
27
-
28
- it 'accepts a method call without arguments' do
29
- inspect_source(cop, ['func'])
30
- expect(cop.offences).to be_empty
31
- end
32
-
33
- it 'accepts a method call with arguments but no parentheses' do
34
- inspect_source(cop, ['puts x'])
35
- expect(cop.offences).to be_empty
36
- end
37
-
38
- it 'accepts a chain of method calls' do
39
- inspect_source(cop, ['a.b',
40
- 'a.b 1',
41
- 'a.b(1)'])
42
- expect(cop.offences).to be_empty
43
- end
44
-
45
- it 'accepts method with parens as arg to method without' do
46
- inspect_source(cop, ['a b(c)'])
47
- expect(cop.offences).to be_empty
48
- end
49
-
50
- it 'accepts an operator call with argument in parentheses' do
51
- inspect_source(cop, ['a % (b + c)',
52
- 'a.b = (c == d)'])
53
- expect(cop.offences).to be_empty
54
- end
55
-
56
- it 'accepts a space inside opening paren followed by left paren' do
57
- inspect_source(cop, ['a( (b) )'])
58
- expect(cop.offences).to be_empty
59
- end
60
- end
61
- end
5
+ describe Rubocop::Cop::Lint::ParenthesesAsGroupedExpression do
6
+ subject(:cop) { described_class.new }
7
+
8
+ it 'registers an offence for method call with space before the ' +
9
+ 'parenthesis' do
10
+ inspect_source(cop, ['a.func (x)'])
11
+ expect(cop.offences).to have(1).item
12
+ end
13
+
14
+ it 'registers an offence for predicate method call with space ' +
15
+ 'before the parenthesis' do
16
+ inspect_source(cop, ['is? (x)'])
17
+ expect(cop.offences).to have(1).item
18
+ end
19
+
20
+ it 'registers an offence for math expression' do
21
+ inspect_source(cop, ['puts (2 + 3) * 4'])
22
+ expect(cop.offences).to have(1).item
23
+ end
24
+
25
+ it 'accepts a method call without arguments' do
26
+ inspect_source(cop, ['func'])
27
+ expect(cop.offences).to be_empty
28
+ end
29
+
30
+ it 'accepts a method call with arguments but no parentheses' do
31
+ inspect_source(cop, ['puts x'])
32
+ expect(cop.offences).to be_empty
33
+ end
34
+
35
+ it 'accepts a chain of method calls' do
36
+ inspect_source(cop, ['a.b',
37
+ 'a.b 1',
38
+ 'a.b(1)'])
39
+ expect(cop.offences).to be_empty
40
+ end
41
+
42
+ it 'accepts method with parens as arg to method without' do
43
+ inspect_source(cop, ['a b(c)'])
44
+ expect(cop.offences).to be_empty
45
+ end
46
+
47
+ it 'accepts an operator call with argument in parentheses' do
48
+ inspect_source(cop, ['a % (b + c)',
49
+ 'a.b = (c == d)'])
50
+ expect(cop.offences).to be_empty
51
+ end
52
+
53
+ it 'accepts a space inside opening paren followed by left paren' do
54
+ inspect_source(cop, ['a( (b) )'])
55
+ expect(cop.offences).to be_empty
62
56
  end
63
57
  end
@@ -2,126 +2,120 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- module Cop
7
- module Lint
8
- describe RescueException do
9
- subject(:re) { RescueException.new }
5
+ describe Rubocop::Cop::Lint::RescueException do
6
+ subject(:cop) { described_class.new }
10
7
 
11
- it 'registers an offence for rescue from Exception' do
12
- inspect_source(re,
13
- ['begin',
14
- ' something',
15
- 'rescue Exception',
16
- ' #do nothing',
17
- 'end'])
18
- expect(re.offences.size).to eq(1)
19
- expect(re.messages)
20
- .to eq([RescueException::MSG])
21
- end
8
+ it 'registers an offence for rescue from Exception' do
9
+ inspect_source(cop,
10
+ ['begin',
11
+ ' something',
12
+ 'rescue Exception',
13
+ ' #do nothing',
14
+ 'end'])
15
+ expect(cop.offences.size).to eq(1)
16
+ expect(cop.messages)
17
+ .to eq(['Avoid rescuing the Exception class.'])
18
+ end
22
19
 
23
- it 'registers an offence for rescue with ::Exception' do
24
- inspect_source(re,
25
- ['begin',
26
- ' something',
27
- 'rescue ::Exception',
28
- ' #do nothing',
29
- 'end'])
30
- expect(re.offences.size).to eq(1)
31
- expect(re.messages)
32
- .to eq([RescueException::MSG])
33
- end
20
+ it 'registers an offence for rescue with ::Exception' do
21
+ inspect_source(cop,
22
+ ['begin',
23
+ ' something',
24
+ 'rescue ::Exception',
25
+ ' #do nothing',
26
+ 'end'])
27
+ expect(cop.offences.size).to eq(1)
28
+ expect(cop.messages)
29
+ .to eq(['Avoid rescuing the Exception class.'])
30
+ end
34
31
 
35
- it 'registers an offence for rescue with StandardError, Exception' do
36
- inspect_source(re,
37
- ['begin',
38
- ' something',
39
- 'rescue StandardError, Exception',
40
- ' #do nothing',
41
- 'end'])
42
- expect(re.offences.size).to eq(1)
43
- expect(re.messages)
44
- .to eq([RescueException::MSG])
45
- end
32
+ it 'registers an offence for rescue with StandardError, Exception' do
33
+ inspect_source(cop,
34
+ ['begin',
35
+ ' something',
36
+ 'rescue StandardError, Exception',
37
+ ' #do nothing',
38
+ 'end'])
39
+ expect(cop.offences.size).to eq(1)
40
+ expect(cop.messages)
41
+ .to eq(['Avoid rescuing the Exception class.'])
42
+ end
46
43
 
47
- it 'registers an offence for rescue with Exception => e' do
48
- inspect_source(re,
49
- ['begin',
50
- ' something',
51
- 'rescue Exception => e',
52
- ' #do nothing',
53
- 'end'])
54
- expect(re.offences.size).to eq(1)
55
- expect(re.messages)
56
- .to eq([RescueException::MSG])
57
- end
44
+ it 'registers an offence for rescue with Exception => e' do
45
+ inspect_source(cop,
46
+ ['begin',
47
+ ' something',
48
+ 'rescue Exception => e',
49
+ ' #do nothing',
50
+ 'end'])
51
+ expect(cop.offences.size).to eq(1)
52
+ expect(cop.messages)
53
+ .to eq(['Avoid rescuing the Exception class.'])
54
+ end
58
55
 
59
- it 'does not register an offence for rescue with no class' do
60
- inspect_source(re,
61
- ['begin',
62
- ' something',
63
- ' return',
64
- 'rescue',
65
- ' file.close',
66
- 'end'])
67
- expect(re.offences).to be_empty
68
- end
56
+ it 'does not register an offence for rescue with no class' do
57
+ inspect_source(cop,
58
+ ['begin',
59
+ ' something',
60
+ ' return',
61
+ 'rescue',
62
+ ' file.close',
63
+ 'end'])
64
+ expect(cop.offences).to be_empty
65
+ end
69
66
 
70
- it 'does not register an offence for rescue with no class and => e' do
71
- inspect_source(re,
72
- ['begin',
73
- ' something',
74
- ' return',
75
- 'rescue => e',
76
- ' file.close',
77
- 'end'])
78
- expect(re.offences).to be_empty
79
- end
67
+ it 'does not register an offence for rescue with no class and => e' do
68
+ inspect_source(cop,
69
+ ['begin',
70
+ ' something',
71
+ ' return',
72
+ 'rescue => e',
73
+ ' file.close',
74
+ 'end'])
75
+ expect(cop.offences).to be_empty
76
+ end
80
77
 
81
- it 'does not register an offence for rescue with other class' do
82
- inspect_source(re,
83
- ['begin',
84
- ' something',
85
- ' return',
86
- 'rescue ArgumentError => e',
87
- ' file.close',
88
- 'end'])
89
- expect(re.offences).to be_empty
90
- end
78
+ it 'does not register an offence for rescue with other class' do
79
+ inspect_source(cop,
80
+ ['begin',
81
+ ' something',
82
+ ' return',
83
+ 'rescue ArgumentError => e',
84
+ ' file.close',
85
+ 'end'])
86
+ expect(cop.offences).to be_empty
87
+ end
91
88
 
92
- it 'does not register an offence for rescue with other classes' do
93
- inspect_source(re,
94
- ['begin',
95
- ' something',
96
- ' return',
97
- 'rescue EOFError, ArgumentError => e',
98
- ' file.close',
99
- 'end'])
100
- expect(re.offences).to be_empty
101
- end
89
+ it 'does not register an offence for rescue with other classes' do
90
+ inspect_source(cop,
91
+ ['begin',
92
+ ' something',
93
+ ' return',
94
+ 'rescue EOFError, ArgumentError => e',
95
+ ' file.close',
96
+ 'end'])
97
+ expect(cop.offences).to be_empty
98
+ end
102
99
 
103
- it 'does not register an offence for rescue with a module prefix' do
104
- inspect_source(re,
105
- ['begin',
106
- ' something',
107
- ' return',
108
- 'rescue Test::Exception => e',
109
- ' file.close',
110
- 'end'])
111
- expect(re.offences).to be_empty
112
- end
100
+ it 'does not register an offence for rescue with a module prefix' do
101
+ inspect_source(cop,
102
+ ['begin',
103
+ ' something',
104
+ ' return',
105
+ 'rescue Test::Exception => e',
106
+ ' file.close',
107
+ 'end'])
108
+ expect(cop.offences).to be_empty
109
+ end
113
110
 
114
- it 'does not crash when the splat operator is used in a rescue' do
115
- inspect_source(re,
116
- ['ERRORS = [Exception]',
117
- 'begin',
118
- ' a = 3 / 0',
119
- 'rescue *ERRORS',
120
- ' puts e',
121
- 'end'])
122
- expect(re.offences).to be_empty
123
- end
124
- end
125
- end
111
+ it 'does not crash when the splat operator is used in a rescue' do
112
+ inspect_source(cop,
113
+ ['ERRORS = [Exception]',
114
+ 'begin',
115
+ ' a = 3 / 0',
116
+ 'rescue *ERRORS',
117
+ ' puts e',
118
+ 'end'])
119
+ expect(cop.offences).to be_empty
126
120
  end
127
121
  end