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,27 +2,21 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- module Cop
7
- module Style
8
- describe AsciiComments do
9
- subject(:ascii) { AsciiComments.new }
5
+ describe Rubocop::Cop::Style::AsciiComments do
6
+ subject(:cop) { described_class.new }
10
7
 
11
- it 'registers an offence for a comment with non-ascii chars' do
12
- inspect_source(ascii,
13
- ['# encoding: utf-8',
14
- '# 这是什么?'])
15
- expect(ascii.offences.size).to eq(1)
16
- expect(ascii.messages)
17
- .to eq([AsciiComments::MSG])
18
- end
8
+ it 'registers an offence for a comment with non-ascii chars' do
9
+ inspect_source(cop,
10
+ ['# encoding: utf-8',
11
+ '# 这是什么?'])
12
+ expect(cop.offences.size).to eq(1)
13
+ expect(cop.messages)
14
+ .to eq(['Use only ascii symbols in comments.'])
15
+ end
19
16
 
20
- it 'accepts comments with only ascii chars' do
21
- inspect_source(ascii,
22
- ['# AZaz1@$%~,;*_`|'])
23
- expect(ascii.offences).to be_empty
24
- end
25
- end
26
- end
17
+ it 'accepts comments with only ascii chars' do
18
+ inspect_source(cop,
19
+ ['# AZaz1@$%~,;*_`|'])
20
+ expect(cop.offences).to be_empty
27
21
  end
28
22
  end
@@ -2,41 +2,35 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- module Cop
7
- module Style
8
- describe AsciiIdentifiers do
9
- subject(:ascii) { AsciiIdentifiers.new }
5
+ describe Rubocop::Cop::Style::AsciiIdentifiers do
6
+ subject(:cop) { described_class.new }
10
7
 
11
- it 'registers an offence for a variable name with non-ascii chars' do
12
- inspect_source(ascii,
13
- ['# encoding: utf-8',
14
- 'älg = 1'])
15
- expect(ascii.offences.size).to eq(1)
16
- expect(ascii.messages)
17
- .to eq([AsciiIdentifiers::MSG])
18
- end
8
+ it 'registers an offence for a variable name with non-ascii chars' do
9
+ inspect_source(cop,
10
+ ['# encoding: utf-8',
11
+ 'älg = 1'])
12
+ expect(cop.offences.size).to eq(1)
13
+ expect(cop.messages)
14
+ .to eq(['Use only ascii symbols in identifiers.'])
15
+ end
19
16
 
20
- it 'accepts identifiers with only ascii chars' do
21
- inspect_source(ascii,
22
- ['x.empty?'])
23
- expect(ascii.offences).to be_empty
24
- end
17
+ it 'accepts identifiers with only ascii chars' do
18
+ inspect_source(cop,
19
+ ['x.empty?'])
20
+ expect(cop.offences).to be_empty
21
+ end
25
22
 
26
- it 'does not get confused by a byte order mark' do
27
- bom = "\xef\xbb\xbf"
28
- inspect_source(ascii,
29
- [bom + '# encoding: utf-8',
30
- "puts 'foo'"])
31
- expect(ascii.offences).to be_empty
32
- end
23
+ it 'does not get confused by a byte order mark' do
24
+ bom = "\xef\xbb\xbf"
25
+ inspect_source(cop,
26
+ [bom + '# encoding: utf-8',
27
+ "puts 'foo'"])
28
+ expect(cop.offences).to be_empty
29
+ end
33
30
 
34
- it 'does not get confused by an empty file' do
35
- inspect_source(ascii,
36
- [''])
37
- expect(ascii.offences).to be_empty
38
- end
39
- end
40
- end
31
+ it 'does not get confused by an empty file' do
32
+ inspect_source(cop,
33
+ [''])
34
+ expect(cop.offences).to be_empty
41
35
  end
42
36
  end
@@ -2,24 +2,18 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- module Cop
7
- module Style
8
- describe Attr do
9
- subject(:cop) { described_class.new }
5
+ describe Rubocop::Cop::Style::Attr do
6
+ subject(:cop) { described_class.new }
10
7
 
11
- it 'registers an offence attr' do
12
- inspect_source(cop, ['class SomeClass',
13
- ' attr :name',
14
- 'end'])
15
- expect(cop.offences.size).to eq(1)
16
- end
8
+ it 'registers an offence attr' do
9
+ inspect_source(cop, ['class SomeClass',
10
+ ' attr :name',
11
+ 'end'])
12
+ expect(cop.offences.size).to eq(1)
13
+ end
17
14
 
18
- it 'auto-corrects attr to attr_reader' do
19
- new_source = autocorrect_source(cop, 'attr')
20
- expect(new_source).to eq('attr_reader')
21
- end
22
- end
23
- end
15
+ it 'auto-corrects attr to attr_reader' do
16
+ new_source = autocorrect_source(cop, 'attr')
17
+ expect(new_source).to eq('attr_reader')
24
18
  end
25
19
  end
@@ -2,18 +2,12 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- module Cop
7
- module Style
8
- describe BeginBlock do
9
- subject(:cop) { BeginBlock.new }
5
+ describe Rubocop::Cop::Style::BeginBlock do
6
+ subject(:cop) { described_class.new }
10
7
 
11
- it 'reports an offence for a BEGIN block' do
12
- src = ['BEGIN { test }']
13
- inspect_source(cop, src)
14
- expect(cop.offences.size).to eq(1)
15
- end
16
- end
17
- end
8
+ it 'reports an offence for a BEGIN block' do
9
+ src = ['BEGIN { test }']
10
+ inspect_source(cop, src)
11
+ expect(cop.offences.size).to eq(1)
18
12
  end
19
13
  end
@@ -2,26 +2,20 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- module Cop
7
- module Style
8
- describe BlockComments do
9
- subject(:block) { BlockComments.new }
5
+ describe Rubocop::Cop::Style::BlockComments do
6
+ subject(:cop) { described_class.new }
10
7
 
11
- it 'registers an offence for block comments' do
12
- inspect_source(block,
13
- ['=begin',
14
- 'comment',
15
- '=end'])
16
- expect(block.offences.size).to eq(1)
17
- end
8
+ it 'registers an offence for block comments' do
9
+ inspect_source(cop,
10
+ ['=begin',
11
+ 'comment',
12
+ '=end'])
13
+ expect(cop.offences.size).to eq(1)
14
+ end
18
15
 
19
- it 'accepts regular comments' do
20
- inspect_source(block,
21
- ['# comment'])
22
- expect(block.offences).to be_empty
23
- end
24
- end
25
- end
16
+ it 'accepts regular comments' do
17
+ inspect_source(cop,
18
+ ['# comment'])
19
+ expect(cop.offences).to be_empty
26
20
  end
27
21
  end
@@ -2,158 +2,152 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- module Cop
7
- module Style
8
- describe BlockNesting, :config do
9
- subject(:block_nesting) { BlockNesting.new(config) }
10
- let(:cop_config) { { 'Max' => 2 } }
5
+ describe Rubocop::Cop::Style::BlockNesting, :config do
6
+ subject(:cop) { described_class.new(config) }
7
+ let(:cop_config) { { 'Max' => 2 } }
11
8
 
12
- it 'accepts `Max` levels of nesting' do
13
- source = ['if a',
14
- ' if b',
15
- ' puts b',
16
- ' end',
17
- 'end']
18
- expect_nesting_offences(source, [])
19
- end
9
+ it 'accepts `Max` levels of nesting' do
10
+ source = ['if a',
11
+ ' if b',
12
+ ' puts b',
13
+ ' end',
14
+ 'end']
15
+ expect_nesting_offences(source, [])
16
+ end
20
17
 
21
- it 'registers an offence for `Max + 1` levels of `if` nesting' do
22
- source = ['if a',
23
- ' if b',
24
- ' if c',
25
- ' puts c',
26
- ' end',
27
- ' end',
28
- 'end']
29
- expect_nesting_offences(source, [3])
30
- end
18
+ it 'registers an offence for `Max + 1` levels of `if` nesting' do
19
+ source = ['if a',
20
+ ' if b',
21
+ ' if c',
22
+ ' puts c',
23
+ ' end',
24
+ ' end',
25
+ 'end']
26
+ expect_nesting_offences(source, [3])
27
+ end
31
28
 
32
- it 'registers a single offence for `Max + 2` levels of `if` nesting' do
33
- source = ['if a',
34
- ' if b',
35
- ' if c',
36
- ' if d',
37
- ' puts d',
38
- ' end',
39
- ' end',
40
- ' end',
41
- 'end']
42
- expect_nesting_offences(source, [3])
43
- end
29
+ it 'registers a single offence for `Max + 2` levels of `if` nesting' do
30
+ source = ['if a',
31
+ ' if b',
32
+ ' if c',
33
+ ' if d',
34
+ ' puts d',
35
+ ' end',
36
+ ' end',
37
+ ' end',
38
+ 'end']
39
+ expect_nesting_offences(source, [3])
40
+ end
44
41
 
45
- it 'registers 2 offences' do
46
- source = ['if a',
47
- ' if b',
48
- ' if c',
49
- ' puts c',
50
- ' end',
51
- ' end',
52
- ' if d',
53
- ' if e',
54
- ' puts e',
55
- ' end',
56
- ' end',
57
- 'end']
58
- expect_nesting_offences(source, [3, 8])
59
- end
42
+ it 'registers 2 offences' do
43
+ source = ['if a',
44
+ ' if b',
45
+ ' if c',
46
+ ' puts c',
47
+ ' end',
48
+ ' end',
49
+ ' if d',
50
+ ' if e',
51
+ ' puts e',
52
+ ' end',
53
+ ' end',
54
+ 'end']
55
+ expect_nesting_offences(source, [3, 8])
56
+ end
60
57
 
61
- it 'registers an offence for nested `case`' do
62
- source = ['if a',
63
- ' if b',
64
- ' case c',
65
- ' when C',
66
- ' puts C',
67
- ' end',
68
- ' end',
69
- 'end']
70
- expect_nesting_offences(source, [3])
71
- end
58
+ it 'registers an offence for nested `case`' do
59
+ source = ['if a',
60
+ ' if b',
61
+ ' case c',
62
+ ' when C',
63
+ ' puts C',
64
+ ' end',
65
+ ' end',
66
+ 'end']
67
+ expect_nesting_offences(source, [3])
68
+ end
72
69
 
73
- it 'registers an offence for nested `while`' do
74
- source = ['if a',
75
- ' if b',
76
- ' while c',
77
- ' puts c',
78
- ' end',
79
- ' end',
80
- 'end']
81
- expect_nesting_offences(source, [3])
82
- end
70
+ it 'registers an offence for nested `while`' do
71
+ source = ['if a',
72
+ ' if b',
73
+ ' while c',
74
+ ' puts c',
75
+ ' end',
76
+ ' end',
77
+ 'end']
78
+ expect_nesting_offences(source, [3])
79
+ end
83
80
 
84
- it 'registers an offence for nested modifier `while`' do
85
- source = ['if a',
86
- ' if b',
87
- ' begin',
88
- ' puts c',
89
- ' end while c',
90
- ' end',
91
- 'end']
92
- expect_nesting_offences(source, [3])
93
- end
81
+ it 'registers an offence for nested modifier `while`' do
82
+ source = ['if a',
83
+ ' if b',
84
+ ' begin',
85
+ ' puts c',
86
+ ' end while c',
87
+ ' end',
88
+ 'end']
89
+ expect_nesting_offences(source, [3])
90
+ end
94
91
 
95
- it 'registers an offence for nested `until`' do
96
- source = ['if a',
97
- ' if b',
98
- ' until c',
99
- ' puts c',
100
- ' end',
101
- ' end',
102
- 'end']
103
- expect_nesting_offences(source, [3])
104
- end
92
+ it 'registers an offence for nested `until`' do
93
+ source = ['if a',
94
+ ' if b',
95
+ ' until c',
96
+ ' puts c',
97
+ ' end',
98
+ ' end',
99
+ 'end']
100
+ expect_nesting_offences(source, [3])
101
+ end
105
102
 
106
- it 'registers an offence for nested modifier `until`' do
107
- source = ['if a',
108
- ' if b',
109
- ' begin',
110
- ' puts c',
111
- ' end until c',
112
- ' end',
113
- 'end']
114
- expect_nesting_offences(source, [3])
115
- end
103
+ it 'registers an offence for nested modifier `until`' do
104
+ source = ['if a',
105
+ ' if b',
106
+ ' begin',
107
+ ' puts c',
108
+ ' end until c',
109
+ ' end',
110
+ 'end']
111
+ expect_nesting_offences(source, [3])
112
+ end
116
113
 
117
- it 'registers an offence for nested `for`' do
118
- source = ['if a',
119
- ' if b',
120
- ' for c in [1,2] do',
121
- ' puts c',
122
- ' end',
123
- ' end',
124
- 'end']
125
- expect_nesting_offences(source, [3])
126
- end
114
+ it 'registers an offence for nested `for`' do
115
+ source = ['if a',
116
+ ' if b',
117
+ ' for c in [1,2] do',
118
+ ' puts c',
119
+ ' end',
120
+ ' end',
121
+ 'end']
122
+ expect_nesting_offences(source, [3])
123
+ end
127
124
 
128
- it 'registers an offence for nested `rescue`' do
129
- source = ['if a',
130
- ' if b',
131
- ' begin',
132
- ' puts c',
133
- ' rescue',
134
- ' puts x',
135
- ' end',
136
- ' end',
137
- 'end']
138
- expect_nesting_offences(source, [5])
139
- end
125
+ it 'registers an offence for nested `rescue`' do
126
+ source = ['if a',
127
+ ' if b',
128
+ ' begin',
129
+ ' puts c',
130
+ ' rescue',
131
+ ' puts x',
132
+ ' end',
133
+ ' end',
134
+ 'end']
135
+ expect_nesting_offences(source, [5])
136
+ end
140
137
 
141
- it 'accepts if/elsif' do
142
- source = ['if a',
143
- 'elsif b',
144
- 'elsif c',
145
- 'elsif d',
146
- 'end']
147
- expect_nesting_offences(source, [])
148
- end
138
+ it 'accepts if/elsif' do
139
+ source = ['if a',
140
+ 'elsif b',
141
+ 'elsif c',
142
+ 'elsif d',
143
+ 'end']
144
+ expect_nesting_offences(source, [])
145
+ end
149
146
 
150
- def expect_nesting_offences(source, lines)
151
- inspect_source(block_nesting, source)
152
- expect(block_nesting.offences.map(&:line)).to eq(lines)
153
- expect(block_nesting.messages).to eq(
154
- ['Avoid more than 2 levels of block nesting.'] * lines.length)
155
- end
156
- end
157
- end
147
+ def expect_nesting_offences(source, lines)
148
+ inspect_source(cop, source)
149
+ expect(cop.offences.map(&:line)).to eq(lines)
150
+ expect(cop.messages).to eq(
151
+ ['Avoid more than 2 levels of block nesting.'] * lines.length)
158
152
  end
159
153
  end