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
@@ -7,13 +7,13 @@ DEFAULT_CONFIG = Rubocop::Config.load_file('config/default.yml')
7
7
  describe Rubocop::Config do
8
8
  include FileHelper
9
9
 
10
- subject(:configuration) { Rubocop::Config.new(hash, loaded_path) }
10
+ subject(:configuration) { described_class.new(hash, loaded_path) }
11
11
  let(:hash) { {} }
12
12
  let(:loaded_path) { 'example/.rubocop.yml' }
13
13
 
14
14
  describe '.configuration_file_for', :isolated_environment do
15
15
  subject(:configuration_file_for) do
16
- Rubocop::Config.configuration_file_for(dir_path)
16
+ described_class.configuration_file_for(dir_path)
17
17
  end
18
18
 
19
19
  context 'when no config file exists in ancestor directories' do
@@ -65,7 +65,7 @@ describe Rubocop::Config do
65
65
 
66
66
  describe '.configuration_from_file', :isolated_environment do
67
67
  subject(:configuration_from_file) do
68
- Rubocop::Config.configuration_from_file(file_path)
68
+ described_class.configuration_from_file(file_path)
69
69
  end
70
70
 
71
71
  context 'with any config file' do
@@ -233,7 +233,7 @@ describe Rubocop::Config do
233
233
 
234
234
  describe '.load_file', :isolated_environment do
235
235
  subject(:load_file) do
236
- Rubocop::Config.load_file(configuration_path)
236
+ described_class.load_file(configuration_path)
237
237
  end
238
238
 
239
239
  let(:configuration_path) { '.rubocop.yml' }
@@ -251,7 +251,7 @@ describe Rubocop::Config do
251
251
  end
252
252
 
253
253
  describe '.merge' do
254
- subject(:merge) { Rubocop::Config.merge(base, derived) }
254
+ subject(:merge) { described_class.merge(base, derived) }
255
255
 
256
256
  let(:base) do
257
257
  {
@@ -281,7 +281,7 @@ describe Rubocop::Config do
281
281
  after(:each) { $stdout = STDOUT }
282
282
 
283
283
  subject(:configuration) do
284
- Rubocop::Config.load_file(configuration_path)
284
+ described_class.load_file(configuration_path)
285
285
  end
286
286
 
287
287
  let(:configuration_path) { '.rubocop.yml' }
@@ -296,7 +296,7 @@ describe Rubocop::Config do
296
296
  end
297
297
 
298
298
  it 'raises validation error' do
299
- e = Rubocop::Config::ValidationError
299
+ e = described_class::ValidationError
300
300
  expect { configuration.validate }.to raise_error(e) do |error|
301
301
  expect(error.message).to start_with('unrecognized cop LyneLenth')
302
302
  end
@@ -313,7 +313,7 @@ describe Rubocop::Config do
313
313
  end
314
314
 
315
315
  it 'raises validation error' do
316
- e = Rubocop::Config::ValidationError
316
+ e = described_class::ValidationError
317
317
  expect { configuration.validate }.to raise_error(e) do |error|
318
318
  expect(error.message).to
319
319
  start_with('unrecognized parameter LineLength:Min')
@@ -376,7 +376,7 @@ describe Rubocop::Config do
376
376
 
377
377
  describe '#patterns_to_include' do
378
378
  subject(:patterns_to_include) do
379
- configuration = Rubocop::Config.new(hash, loaded_path)
379
+ configuration = described_class.new(hash, loaded_path)
380
380
  configuration.patterns_to_include
381
381
  end
382
382
 
@@ -403,7 +403,7 @@ describe Rubocop::Config do
403
403
 
404
404
  describe '#patterns_to_exclude' do
405
405
  subject(:patterns_to_exclude) do
406
- configuration = Rubocop::Config.new(hash, loaded_path)
406
+ configuration = described_class.new(hash, loaded_path)
407
407
  configuration.patterns_to_exclude
408
408
  end
409
409
 
@@ -427,8 +427,8 @@ describe Rubocop::Config do
427
427
 
428
428
  describe 'configuration for SymbolArray', :isolated_environment do
429
429
  let(:config) do
430
- config_path = Rubocop::Config.configuration_file_for('.')
431
- Rubocop::Config.configuration_from_file(config_path)
430
+ config_path = described_class.configuration_file_for('.')
431
+ described_class.configuration_from_file(config_path)
432
432
  end
433
433
 
434
434
  context 'when no config file exists for the target file' do
@@ -461,7 +461,7 @@ describe Rubocop::Config do
461
461
  describe 'configuration for SymbolName' do
462
462
  describe 'AllowCamelCase' do
463
463
  it 'is enabled by default' do
464
- default_config = Rubocop::Config.default_configuration
464
+ default_config = described_class.default_configuration
465
465
  symbol_name_config = default_config.for_cop('SymbolName')
466
466
  expect(symbol_name_config['AllowCamelCase']).to be_true
467
467
  end
@@ -2,49 +2,50 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- describe ConfigStore do
7
- subject(:config_store) { ConfigStore.new }
5
+ describe Rubocop::ConfigStore do
6
+ subject(:config_store) { described_class.new }
8
7
 
9
- before do
10
- Config.stub(:configuration_file_for) do |arg|
11
- # File tree:
12
- # file1
13
- # dir/.rubocop.yml
14
- # dir/file2
15
- # dir/subdir/file3
16
- (arg =~ /dir/ ? 'dir' : '.') + '/.rubocop.yml'
17
- end
18
- Config.stub(:configuration_from_file) { |arg| arg }
19
- Config.stub(:load_file) { |arg| "#{arg} loaded" }
20
- Config.stub(:merge_with_default) { |config, file| "merged #{config}" }
8
+ before do
9
+ Rubocop::Config.stub(:configuration_file_for) do |arg|
10
+ # File tree:
11
+ # file1
12
+ # dir/.rubocop.yml
13
+ # dir/file2
14
+ # dir/subdir/file3
15
+ (arg =~ /dir/ ? 'dir' : '.') + '/.rubocop.yml'
16
+ end
17
+ Rubocop::Config.stub(:configuration_from_file) { |arg| arg }
18
+ Rubocop::Config.stub(:load_file) { |arg| "#{arg} loaded" }
19
+ Rubocop::Config.stub(:merge_with_default) do |config, file|
20
+ "merged #{config}"
21
21
  end
22
+ end
22
23
 
23
- describe '.for' do
24
- it 'always uses config specified in command line' do
25
- config_store.set_options_config(:options_config)
26
- expect(config_store.for('file1')).to eq('merged options_config loaded')
27
- end
24
+ describe '.for' do
25
+ it 'always uses config specified in command line' do
26
+ config_store.set_options_config(:options_config)
27
+ expect(config_store.for('file1')).to eq('merged options_config loaded')
28
+ end
28
29
 
29
- context 'when no config specified in command line' do
30
- it 'gets config path and config from cache if available' do
31
- Config.should_receive(:configuration_file_for).once.with('dir')
32
- Config.should_receive(:configuration_file_for).once.with('dir/' +
33
- 'subdir')
34
- # The stub returns the same config path for dir and dir/subdir.
35
- Config.should_receive(:configuration_from_file).once
36
- .with('dir/.rubocop.yml')
30
+ context 'when no config specified in command line' do
31
+ it 'gets config path and config from cache if available' do
32
+ Rubocop::Config.should_receive(:configuration_file_for).once
33
+ .with('dir')
34
+ Rubocop::Config.should_receive(:configuration_file_for).once
35
+ .with('dir/subdir')
36
+ # The stub returns the same config path for dir and dir/subdir.
37
+ Rubocop::Config.should_receive(:configuration_from_file).once
38
+ .with('dir/.rubocop.yml')
37
39
 
38
- config_store.for('dir/file2')
39
- config_store.for('dir/file2')
40
- config_store.for('dir/subdir/file3')
41
- end
40
+ config_store.for('dir/file2')
41
+ config_store.for('dir/file2')
42
+ config_store.for('dir/subdir/file3')
43
+ end
42
44
 
43
- it 'searches for config path if not available in cache' do
44
- Config.should_receive(:configuration_file_for).once
45
- Config.should_receive(:configuration_from_file).once
46
- config_store.for('file1')
47
- end
45
+ it 'searches for config path if not available in cache' do
46
+ Rubocop::Config.should_receive(:configuration_file_for).once
47
+ Rubocop::Config.should_receive(:configuration_from_file).once
48
+ config_store.for('file1')
48
49
  end
49
50
  end
50
51
  end
@@ -3,68 +3,64 @@
3
3
 
4
4
  require 'spec_helper'
5
5
 
6
- module Rubocop
7
- module Cop
8
- describe Commissioner do
9
- describe '#investigate' do
10
- let(:cop) { double(Cop, offences: []).as_null_object }
6
+ describe Rubocop::Cop::Commissioner do
7
+ describe '#investigate' do
8
+ let(:cop) { double(Rubocop::Cop, offences: []).as_null_object }
11
9
 
12
- it 'returns all offences found by the cops' do
13
- cop.stub(:offences).and_return([1])
10
+ it 'returns all offences found by the cops' do
11
+ cop.stub(:offences).and_return([1])
14
12
 
15
- commissioner = Commissioner.new([cop])
16
- source = []
17
- processed_source = parse_source(source)
13
+ commissioner = described_class.new([cop])
14
+ source = []
15
+ processed_source = parse_source(source)
18
16
 
19
- expect(commissioner.investigate(processed_source)).to eq [1]
20
- end
17
+ expect(commissioner.investigate(processed_source)).to eq [1]
18
+ end
21
19
 
22
- it 'traverses the AST and invoke cops specific callbacks' do
23
- cop.should_receive(:on_def)
20
+ it 'traverses the AST and invoke cops specific callbacks' do
21
+ cop.should_receive(:on_def)
24
22
 
25
- commissioner = Commissioner.new([cop])
26
- source = ['def method', '1', 'end']
27
- processed_source = parse_source(source)
23
+ commissioner = described_class.new([cop])
24
+ source = ['def method', '1', 'end']
25
+ processed_source = parse_source(source)
28
26
 
29
- commissioner.investigate(processed_source)
30
- end
27
+ commissioner.investigate(processed_source)
28
+ end
31
29
 
32
- it 'passes the input params to all cops that implement their own #investigate method' do
33
- source = []
34
- processed_source = parse_source(source)
35
- cop.should_receive(:investigate).with(processed_source)
30
+ it 'passes the input params to all cops that implement their own #investigate method' do
31
+ source = []
32
+ processed_source = parse_source(source)
33
+ cop.should_receive(:investigate).with(processed_source)
36
34
 
37
- commissioner = Commissioner.new([cop])
35
+ commissioner = described_class.new([cop])
38
36
 
39
- commissioner.investigate(processed_source)
40
- end
37
+ commissioner.investigate(processed_source)
38
+ end
41
39
 
42
- it 'stores all errors raised by the cops' do
43
- cop.stub(:on_def) { raise RuntimeError }
40
+ it 'stores all errors raised by the cops' do
41
+ cop.stub(:on_def) { fail RuntimeError }
44
42
 
45
- commissioner = Commissioner.new([cop])
46
- source = ['def method', '1', 'end']
47
- processed_source = parse_source(source)
43
+ commissioner = described_class.new([cop])
44
+ source = ['def method', '1', 'end']
45
+ processed_source = parse_source(source)
48
46
 
49
- commissioner.investigate(processed_source)
47
+ commissioner.investigate(processed_source)
50
48
 
51
- expect(commissioner.errors[cop].size).to eq(1)
52
- expect(commissioner.errors[cop][0]).to be_instance_of(RuntimeError)
53
- end
49
+ expect(commissioner.errors[cop].size).to eq(1)
50
+ expect(commissioner.errors[cop][0]).to be_instance_of(RuntimeError)
51
+ end
54
52
 
55
- context 'when passed :raise_error option' do
56
- it 're-raises the exception received while processing' do
57
- cop.stub(:on_def) { raise RuntimeError }
53
+ context 'when passed :raise_error option' do
54
+ it 're-raises the exception received while processing' do
55
+ cop.stub(:on_def) { fail RuntimeError }
58
56
 
59
- commissioner = Commissioner.new([cop], raise_error: true)
60
- source = ['def method', '1', 'end']
61
- processed_source = parse_source(source)
57
+ commissioner = described_class.new([cop], raise_error: true)
58
+ source = ['def method', '1', 'end']
59
+ processed_source = parse_source(source)
62
60
 
63
- expect do
64
- commissioner.investigate(processed_source)
65
- end.to raise_error(RuntimeError)
66
- end
67
- end
61
+ expect do
62
+ commissioner.investigate(processed_source)
63
+ end.to raise_error(RuntimeError)
68
64
  end
69
65
  end
70
66
  end
@@ -2,99 +2,94 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- module Cop
7
- describe Cop do
8
- subject(:cop) { Cop.new }
9
- let(:location) do
10
- source_buffer = Parser::Source::Buffer.new('test', 1)
11
- source_buffer.source = "a\n"
12
- Parser::Source::Range.new(source_buffer, 0, 1)
13
- end
5
+ describe Rubocop::Cop::Cop do
6
+ subject(:cop) { described_class.new }
7
+ let(:location) do
8
+ source_buffer = Parser::Source::Buffer.new('test', 1)
9
+ source_buffer.source = "a\n"
10
+ Parser::Source::Range.new(source_buffer, 0, 1)
11
+ end
14
12
 
15
- it 'initially has 0 offences' do
16
- expect(cop.offences).to be_empty
17
- end
13
+ it 'initially has 0 offences' do
14
+ expect(cop.offences).to be_empty
15
+ end
18
16
 
19
- it 'keeps track of offences' do
20
- cop.convention(nil, location, 'message')
17
+ it 'keeps track of offences' do
18
+ cop.convention(nil, location, 'message')
21
19
 
22
- expect(cop.offences.size).to eq(1)
23
- end
20
+ expect(cop.offences.size).to eq(1)
21
+ end
24
22
 
25
- it 'will report registered offences' do
26
- cop.convention(nil, location, 'message')
23
+ it 'will report registered offences' do
24
+ cop.convention(nil, location, 'message')
27
25
 
28
- expect(cop.offences).not_to be_empty
29
- end
26
+ expect(cop.offences).not_to be_empty
27
+ end
30
28
 
31
- it 'registers offence with its name' do
32
- cop = Style::For.new
33
- cop.convention(nil, location, 'message')
34
- expect(cop.offences.first.cop_name).to eq('For')
35
- end
29
+ it 'registers offence with its name' do
30
+ cop = Rubocop::Cop::Style::For.new
31
+ cop.convention(nil, location, 'message')
32
+ expect(cop.offences.first.cop_name).to eq('For')
33
+ end
36
34
 
37
- context 'with no submodule' do
38
- subject(:cop) { Cop }
39
- it('has right name') { expect(cop.cop_name).to eq('Cop') }
40
- it('has right type') { expect(cop.cop_type).to eq(:cop) }
41
- end
35
+ context 'with no submodule' do
36
+ subject(:cop) { described_class }
37
+ it('has right name') { expect(cop.cop_name).to eq('Cop') }
38
+ it('has right type') { expect(cop.cop_type).to eq(:cop) }
39
+ end
42
40
 
43
- context 'with style cops' do
44
- subject(:cop) { Style::For }
45
- it('has right name') { expect(cop.cop_name).to eq('For') }
46
- it('has right type') { expect(cop.cop_type).to eq(:style) }
47
- end
41
+ context 'with style cops' do
42
+ subject(:cop) { Rubocop::Cop::Style::For }
43
+ it('has right name') { expect(cop.cop_name).to eq('For') }
44
+ it('has right type') { expect(cop.cop_type).to eq(:style) }
45
+ end
48
46
 
49
- context 'with lint cops' do
50
- subject(:cop) { Lint::Loop }
51
- it('has right name') { expect(cop.cop_name).to eq('Loop') }
52
- it('has right type') { expect(cop.cop_type).to eq(:lint) }
53
- end
47
+ context 'with lint cops' do
48
+ subject(:cop) { Rubocop::Cop::Lint::Loop }
49
+ it('has right name') { expect(cop.cop_name).to eq('Loop') }
50
+ it('has right type') { expect(cop.cop_type).to eq(:lint) }
51
+ end
54
52
 
55
- context 'with rails cops' do
56
- subject(:cop) { Rails::Validation }
57
- it('has right name') { expect(cop.cop_name).to eq('Validation') }
58
- it('has right type') { expect(cop.cop_type).to eq(:rails) }
59
- end
53
+ context 'with rails cops' do
54
+ subject(:cop) { Rubocop::Cop::Rails::Validation }
55
+ it('has right name') { expect(cop.cop_name).to eq('Validation') }
56
+ it('has right type') { expect(cop.cop_type).to eq(:rails) }
57
+ end
60
58
 
61
- describe 'CopStore' do
62
- context '#types' do
63
- subject { Rubocop::Cop::Cop.all.types }
64
- it('has types') { expect(subject.length).not_to eq(0) }
65
- it { should include :lint }
66
- it do
67
- pending 'Rails cops are usually removed after CLI start, ' +
68
- 'so CLI spec impacts this one'
69
- should include :rails
70
- end
71
- it { should include :style }
72
- it 'contains every value only once' do
73
- expect(subject.length).to eq(subject.uniq.length)
74
- end
59
+ describe 'CopStore' do
60
+ context '#types' do
61
+ subject { described_class.all.types }
62
+ it('has types') { expect(subject.length).not_to eq(0) }
63
+ it { should include :lint }
64
+ it do
65
+ pending 'Rails cops are usually removed after CLI start, ' +
66
+ 'so CLI spec impacts this one'
67
+ should include :rails
68
+ end
69
+ it { should include :style }
70
+ it 'contains every value only once' do
71
+ expect(subject.length).to eq(subject.uniq.length)
72
+ end
73
+ end
74
+ context '#with_type' do
75
+ let(:types) { described_class.all.types }
76
+ it 'has at least one cop per type' do
77
+ types.each do |c|
78
+ expect(described_class.all.with_type(c).length).to be > 0
75
79
  end
76
- context '#with_type' do
77
- let(:types) { Rubocop::Cop::Cop.all.types }
78
- it 'has at least one cop per type' do
79
- types.each do |c|
80
- expect(Rubocop::Cop::Cop.all.with_type(c).length).to be > 0
81
- end
82
- end
83
-
84
- it 'has each cop in exactly one type' do
85
- sum = 0
86
- types.each do |c|
87
- sum = sum + Rubocop::Cop::Cop.all.with_type(c).length
88
- end
89
- expect(sum).to be Rubocop::Cop::Cop.all.length
90
- end
80
+ end
91
81
 
92
- it 'returns 0 for an invalid type' do
93
- expect(Rubocop::Cop::Cop.all.with_type('x').length).to be 0
94
- end
82
+ it 'has each cop in exactly one type' do
83
+ sum = 0
84
+ types.each do |c|
85
+ sum = sum + described_class.all.with_type(c).length
95
86
  end
87
+ expect(sum).to be described_class.all.length
96
88
  end
97
89
 
90
+ it 'returns 0 for an invalid type' do
91
+ expect(described_class.all.with_type('x').length).to be 0
92
+ end
98
93
  end
99
94
  end
100
95
  end