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,52 +2,46 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- module Cop
7
- module Style
8
- describe SpaceBeforeModifierKeyword do
9
- subject(:cop) { described_class.new }
5
+ describe Rubocop::Cop::Style::SpaceBeforeModifierKeyword do
6
+ subject(:cop) { described_class.new }
10
7
 
11
- it 'registers an offence for missing space before if/unless' do
12
- inspect_source(cop, ['(a = 3)if a == 2',
13
- 'a = "test"if a == 2',
14
- 'a = 42unless a == 2',
15
- 'a = [1,2,3]unless a == 2',
16
- 'a = {:a => "b"}if a == 2'])
17
- expect(cop.highlights).to eq([')', '"', '2', ']', '}'])
18
- end
8
+ it 'registers an offence for missing space before if/unless' do
9
+ inspect_source(cop, ['(a = 3)if a == 2',
10
+ 'a = "test"if a == 2',
11
+ 'a = 42unless a == 2',
12
+ 'a = [1,2,3]unless a == 2',
13
+ 'a = {:a => "b"}if a == 2'])
14
+ expect(cop.highlights).to eq([')', '"', '2', ']', '}'])
15
+ end
19
16
 
20
- it 'registers an offence for missing space before while/until' do
21
- inspect_source(cop, ['(a = 3)while b',
22
- 'a = "test"until b',
23
- 'a = 42while b',
24
- 'a = [1,2,3]until b',
25
- 'a = {:a => "b"}while b'])
26
- expect(cop.highlights).to eq([')', '"', '2', ']', '}'])
27
- end
17
+ it 'registers an offence for missing space before while/until' do
18
+ inspect_source(cop, ['(a = 3)while b',
19
+ 'a = "test"until b',
20
+ 'a = 42while b',
21
+ 'a = [1,2,3]until b',
22
+ 'a = {:a => "b"}while b'])
23
+ expect(cop.highlights).to eq([')', '"', '2', ']', '}'])
24
+ end
28
25
 
29
- it 'accepts modifiers with preceding space' do
30
- inspect_source(cop, ['(a = 3) if b',
31
- 'a = "test" unless b',
32
- 'a = 42 while b',
33
- 'a = [1,2,3] until b'])
34
- expect(cop.offences).to be_empty
35
- end
26
+ it 'accepts modifiers with preceding space' do
27
+ inspect_source(cop, ['(a = 3) if b',
28
+ 'a = "test" unless b',
29
+ 'a = 42 while b',
30
+ 'a = [1,2,3] until b'])
31
+ expect(cop.offences).to be_empty
32
+ end
36
33
 
37
- it 'accepts elsif at beginning of line' do
38
- inspect_source(cop, ["if RUBY_VERSION.between?('1.9.2', '2.0.0')",
39
- " require 'testing/performance/ruby/yarv'",
40
- 'elsif RUBY_VERSION.between?("1.8.6", "1.9")',
41
- " require 'testing/performance/ruby/mri'",
42
- 'end'])
43
- expect(cop.highlights).to eq([])
44
- end
34
+ it 'accepts elsif at beginning of line' do
35
+ inspect_source(cop, ["if RUBY_VERSION.between?('1.9.2', '2.0.0')",
36
+ " require 'testing/performance/ruby/yarv'",
37
+ 'elsif RUBY_VERSION.between?("1.8.6", "1.9")',
38
+ " require 'testing/performance/ruby/mri'",
39
+ 'end'])
40
+ expect(cop.highlights).to eq([])
41
+ end
45
42
 
46
- it 'does not crash on ternary conditionals' do
47
- inspect_source(cop, 'a ? b : c')
48
- expect(cop.offences).to be_empty
49
- end
50
- end
51
- end
43
+ it 'does not crash on ternary conditionals' do
44
+ inspect_source(cop, 'a ? b : c')
45
+ expect(cop.offences).to be_empty
52
46
  end
53
47
  end
@@ -2,50 +2,44 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- module Cop
7
- module Style
8
- describe SpaceInsideBrackets do
9
- subject(:space) { SpaceInsideBrackets.new }
10
-
11
- it 'registers an offence for an array literal with spaces inside' do
12
- inspect_source(space, ['a = [1, 2 ]',
13
- 'b = [ 1, 2]'])
14
- expect(space.messages).to eq(
15
- ['Space inside square brackets detected.',
16
- 'Space inside square brackets detected.'])
17
- end
18
-
19
- it 'accepts space inside strings within square brackets' do
20
- inspect_source(space, ["['Encoding:',",
21
- " ' Enabled: false']"])
22
- expect(space.messages).to be_empty
23
- end
24
-
25
- it 'accepts space inside square brackets if on its own row' do
26
- inspect_source(space, ['a = [',
27
- ' 1, 2',
28
- ' ]'])
29
- expect(space.messages).to be_empty
30
- end
31
-
32
- it 'accepts square brackets as method name' do
33
- inspect_source(space, ['def Vector.[](*array)',
34
- 'end'])
35
- expect(space.messages).to be_empty
36
- end
37
-
38
- it 'accepts square brackets called with method call syntax' do
39
- inspect_source(space, ['subject.[](0)'])
40
- expect(space.messages).to be_empty
41
- end
42
-
43
- it 'only reports a single space once' do
44
- inspect_source(space, ['[ ]'])
45
- expect(space.messages).to eq(
46
- ['Space inside square brackets detected.'])
47
- end
48
- end
49
- end
5
+ describe Rubocop::Cop::Style::SpaceInsideBrackets do
6
+ subject(:cop) { described_class.new }
7
+
8
+ it 'registers an offence for an array literal with spaces inside' do
9
+ inspect_source(cop, ['a = [1, 2 ]',
10
+ 'b = [ 1, 2]'])
11
+ expect(cop.messages).to eq(
12
+ ['Space inside square brackets detected.',
13
+ 'Space inside square brackets detected.'])
14
+ end
15
+
16
+ it 'accepts space inside strings within square brackets' do
17
+ inspect_source(cop, ["['Encoding:',",
18
+ " ' Enabled: false']"])
19
+ expect(cop.messages).to be_empty
20
+ end
21
+
22
+ it 'accepts space inside square brackets if on its own row' do
23
+ inspect_source(cop, ['a = [',
24
+ ' 1, 2',
25
+ ' ]'])
26
+ expect(cop.messages).to be_empty
27
+ end
28
+
29
+ it 'accepts square brackets as method name' do
30
+ inspect_source(cop, ['def Vector.[](*array)',
31
+ 'end'])
32
+ expect(cop.messages).to be_empty
33
+ end
34
+
35
+ it 'accepts square brackets called with method call syntax' do
36
+ inspect_source(cop, ['subject.[](0)'])
37
+ expect(cop.messages).to be_empty
38
+ end
39
+
40
+ it 'only reports a single space once' do
41
+ inspect_source(cop, ['[ ]'])
42
+ expect(cop.messages).to eq(
43
+ ['Space inside square brackets detected.'])
50
44
  end
51
45
  end
@@ -2,84 +2,78 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- module Cop
7
- module Style
8
- describe SpaceInsideHashLiteralBraces, :config do
9
- subject(:cop) { SpaceInsideHashLiteralBraces.new(config) }
10
- let(:cop_config) { { 'EnforcedStyleIsWithSpaces' => true } }
5
+ describe Rubocop::Cop::Style::SpaceInsideHashLiteralBraces, :config do
6
+ subject(:cop) { described_class.new(config) }
7
+ let(:cop_config) { { 'EnforcedStyleIsWithSpaces' => true } }
11
8
 
12
- it 'registers an offence for hashes with no spaces if so configured' do
13
- inspect_source(cop,
14
- ['h = {a: 1, b: 2}',
15
- 'h = {a => 1 }'])
16
- expect(cop.messages).to eq(
17
- ['Space inside hash literal braces missing.'] * 3)
18
- expect(cop.highlights).to eq(['{', '}', '{'])
19
- end
9
+ it 'registers an offence for hashes with no spaces if so configured' do
10
+ inspect_source(cop,
11
+ ['h = {a: 1, b: 2}',
12
+ 'h = {a => 1 }'])
13
+ expect(cop.messages).to eq(
14
+ ['Space inside hash literal braces missing.'] * 3)
15
+ expect(cop.highlights).to eq(['{', '}', '{'])
16
+ end
20
17
 
21
- context 'when EnforcedStyleIsWithSpaces is disabled' do
22
- let(:cop_config) { { 'EnforcedStyleIsWithSpaces' => false } }
18
+ context 'when EnforcedStyleIsWithSpaces is disabled' do
19
+ let(:cop_config) { { 'EnforcedStyleIsWithSpaces' => false } }
23
20
 
24
- it 'registers an offence for hashes with spaces' do
25
- inspect_source(cop,
26
- ['h = { a: 1, b: 2 }'])
27
- expect(cop.messages).to eq(
28
- ['Space inside hash literal braces detected.'] * 2)
29
- expect(cop.highlights).to eq(['{', '}'])
30
- end
21
+ it 'registers an offence for hashes with spaces' do
22
+ inspect_source(cop,
23
+ ['h = { a: 1, b: 2 }'])
24
+ expect(cop.messages).to eq(
25
+ ['Space inside hash literal braces detected.'] * 2)
26
+ expect(cop.highlights).to eq(['{', '}'])
27
+ end
31
28
 
32
- it 'accepts hashes with no spaces' do
33
- inspect_source(cop,
34
- ['h = {a: 1, b: 2}',
35
- 'h = {a => 1}'])
36
- expect(cop.offences).to be_empty
37
- end
29
+ it 'accepts hashes with no spaces' do
30
+ inspect_source(cop,
31
+ ['h = {a: 1, b: 2}',
32
+ 'h = {a => 1}'])
33
+ expect(cop.offences).to be_empty
34
+ end
38
35
 
39
- it 'accepts multiline hashes for no space' do
40
- inspect_source(cop,
41
- ['h = {',
42
- ' a: 1,',
43
- ' b: 2,',
44
- '}'])
45
- expect(cop.offences).to be_empty
46
- end
36
+ it 'accepts multiline hashes for no space' do
37
+ inspect_source(cop,
38
+ ['h = {',
39
+ ' a: 1,',
40
+ ' b: 2,',
41
+ '}'])
42
+ expect(cop.offences).to be_empty
43
+ end
47
44
 
48
- it 'accepts empty hashes without spaces' do
49
- inspect_source(cop, ['h = {}'])
50
- expect(cop.offences).to be_empty
51
- end
52
- end
45
+ it 'accepts empty hashes without spaces' do
46
+ inspect_source(cop, ['h = {}'])
47
+ expect(cop.offences).to be_empty
48
+ end
49
+ end
53
50
 
54
- it 'accepts hashes with spaces by default' do
55
- inspect_source(cop,
56
- ['h = { a: 1, b: 2 }',
57
- 'h = { a => 1 }'])
58
- expect(cop.offences).to be_empty
59
- end
51
+ it 'accepts hashes with spaces by default' do
52
+ inspect_source(cop,
53
+ ['h = { a: 1, b: 2 }',
54
+ 'h = { a => 1 }'])
55
+ expect(cop.offences).to be_empty
56
+ end
60
57
 
61
- it 'accepts empty hashes without spaces by default' do
62
- inspect_source(cop, ['h = {}'])
63
- expect(cop.offences).to be_empty
64
- end
58
+ it 'accepts empty hashes without spaces by default' do
59
+ inspect_source(cop, ['h = {}'])
60
+ expect(cop.offences).to be_empty
61
+ end
65
62
 
66
- it 'accepts empty hashes without spaces even if configured true' do
67
- inspect_source(cop, ['h = {}'])
68
- expect(cop.offences).to be_empty
69
- end
63
+ it 'accepts empty hashes without spaces even if configured true' do
64
+ inspect_source(cop, ['h = {}'])
65
+ expect(cop.offences).to be_empty
66
+ end
70
67
 
71
- it 'accepts hash literals with no braces' do
72
- inspect_source(cop, ['x(a: b.c)'])
73
- expect(cop.offences).to be_empty
74
- end
68
+ it 'accepts hash literals with no braces' do
69
+ inspect_source(cop, ['x(a: b.c)'])
70
+ expect(cop.offences).to be_empty
71
+ end
75
72
 
76
- it 'can handle interpolation in a braceless hash literal' do
77
- # A tricky special case where the closing brace of the
78
- # interpolation risks getting confused for a hash literal brace.
79
- inspect_source(cop, ['f(get: "#{x}")'])
80
- expect(cop.offences).to be_empty
81
- end
82
- end
83
- end
73
+ it 'can handle interpolation in a braceless hash literal' do
74
+ # A tricky special case where the closing brace of the
75
+ # interpolation risks getting confused for a hash literal brace.
76
+ inspect_source(cop, ['f(get: "#{x}")'])
77
+ expect(cop.offences).to be_empty
84
78
  end
85
79
  end
@@ -2,32 +2,26 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- module Cop
7
- module Style
8
- describe SpaceInsideParens do
9
- subject(:space) { SpaceInsideParens.new }
5
+ describe Rubocop::Cop::Style::SpaceInsideParens do
6
+ subject(:cop) { described_class.new }
10
7
 
11
- it 'registers an offence for spaces inside parens' do
12
- inspect_source(space, ['f( 3)',
13
- 'g(3 )'])
14
- expect(space.messages).to eq(
15
- ['Space inside parentheses detected.',
16
- 'Space inside parentheses detected.'])
17
- end
8
+ it 'registers an offence for spaces inside parens' do
9
+ inspect_source(cop, ['f( 3)',
10
+ 'g(3 )'])
11
+ expect(cop.messages).to eq(
12
+ ['Space inside parentheses detected.',
13
+ 'Space inside parentheses detected.'])
14
+ end
18
15
 
19
- it 'accepts parentheses in block parameter list' do
20
- inspect_source(space,
21
- ['list.inject(Tms.new) { |sum, (label, item)|',
22
- '}'])
23
- expect(space.messages).to be_empty
24
- end
16
+ it 'accepts parentheses in block parameter list' do
17
+ inspect_source(cop,
18
+ ['list.inject(Tms.new) { |sum, (label, item)|',
19
+ '}'])
20
+ expect(cop.messages).to be_empty
21
+ end
25
22
 
26
- it 'accepts parentheses with no spaces' do
27
- inspect_source(space, ['split("\n")'])
28
- expect(space.messages).to be_empty
29
- end
30
- end
31
- end
23
+ it 'accepts parentheses with no spaces' do
24
+ inspect_source(cop, ['split("\n")'])
25
+ expect(cop.messages).to be_empty
32
26
  end
33
27
  end
@@ -2,51 +2,45 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- module Cop
7
- module Style
8
- describe SpecialGlobalVars do
9
- subject(:cop) { described_class.new }
10
-
11
- it 'registers an offence for $:' do
12
- inspect_source(cop, ['puts $:'])
13
- expect(cop.offences.size).to eq(1)
14
- expect(cop.messages)
15
- .to eq(['Prefer $LOAD_PATH over $:.'])
16
- end
17
-
18
- it 'registers an offence for $"' do
19
- inspect_source(cop, ['puts $"'])
20
- expect(cop.offences.size).to eq(1)
21
- expect(cop.messages)
22
- .to eq(['Prefer $LOADED_FEATURES over $".'])
23
- end
24
-
25
- it 'registers an offence for $0' do
26
- inspect_source(cop, ['puts $0'])
27
- expect(cop.offences.size).to eq(1)
28
- expect(cop.messages)
29
- .to eq(['Prefer $PROGRAM_NAME over $0.'])
30
- end
31
-
32
- it 'registers an offence for $$' do
33
- inspect_source(cop, ['puts $$'])
34
- expect(cop.offences.size).to eq(1)
35
- expect(cop.messages)
36
- .to eq(['Prefer $PID or $PROCESS_ID from English library' +
37
- ' over $$.'])
38
- end
39
-
40
- it 'does not register an offence for backrefs like $1' do
41
- inspect_source(cop, ['puts $1'])
42
- expect(cop.offences).to be_empty
43
- end
44
-
45
- it 'auto-corrects $: to $LOAD_PATH' do
46
- new_source = autocorrect_source(cop, '$:')
47
- expect(new_source).to eq('$LOAD_PATH')
48
- end
49
- end
50
- end
5
+ describe Rubocop::Cop::Style::SpecialGlobalVars do
6
+ subject(:cop) { described_class.new }
7
+
8
+ it 'registers an offence for $:' do
9
+ inspect_source(cop, ['puts $:'])
10
+ expect(cop.offences.size).to eq(1)
11
+ expect(cop.messages)
12
+ .to eq(['Prefer $LOAD_PATH over $:.'])
13
+ end
14
+
15
+ it 'registers an offence for $"' do
16
+ inspect_source(cop, ['puts $"'])
17
+ expect(cop.offences.size).to eq(1)
18
+ expect(cop.messages)
19
+ .to eq(['Prefer $LOADED_FEATURES over $".'])
20
+ end
21
+
22
+ it 'registers an offence for $0' do
23
+ inspect_source(cop, ['puts $0'])
24
+ expect(cop.offences.size).to eq(1)
25
+ expect(cop.messages)
26
+ .to eq(['Prefer $PROGRAM_NAME over $0.'])
27
+ end
28
+
29
+ it 'registers an offence for $$' do
30
+ inspect_source(cop, ['puts $$'])
31
+ expect(cop.offences.size).to eq(1)
32
+ expect(cop.messages)
33
+ .to eq(['Prefer $PID or $PROCESS_ID from English library' +
34
+ ' over $$.'])
35
+ end
36
+
37
+ it 'does not register an offence for backrefs like $1' do
38
+ inspect_source(cop, ['puts $1'])
39
+ expect(cop.offences).to be_empty
40
+ end
41
+
42
+ it 'auto-corrects $: to $LOAD_PATH' do
43
+ new_source = autocorrect_source(cop, '$:')
44
+ expect(new_source).to eq('$LOAD_PATH')
51
45
  end
52
46
  end