rubocop 0.29.1 → 0.30.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 (341) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +73 -1
  3. data/README.md +11 -2
  4. data/config/default.yml +194 -6
  5. data/config/disabled.yml +25 -1
  6. data/config/enabled.yml +74 -12
  7. data/lib/rubocop.rb +19 -2
  8. data/lib/rubocop/config.rb +23 -3
  9. data/lib/rubocop/config_loader.rb +9 -1
  10. data/lib/rubocop/cop/autocorrect_logic.rb +26 -0
  11. data/lib/rubocop/cop/cop.rb +33 -17
  12. data/lib/rubocop/cop/lint/assignment_in_condition.rb +16 -4
  13. data/lib/rubocop/cop/lint/block_alignment.rb +5 -14
  14. data/lib/rubocop/cop/lint/literal_in_interpolation.rb +1 -1
  15. data/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +61 -0
  16. data/lib/rubocop/cop/lint/void.rb +11 -3
  17. data/lib/rubocop/cop/mixin/on_normal_if_unless.rb +17 -0
  18. data/lib/rubocop/cop/performance/detect.rb +72 -0
  19. data/lib/rubocop/cop/performance/flat_map.rb +64 -0
  20. data/lib/rubocop/cop/performance/reverse_each.rb +43 -0
  21. data/lib/rubocop/cop/performance/sample.rb +58 -0
  22. data/lib/rubocop/cop/performance/size.rb +64 -0
  23. data/lib/rubocop/cop/rails/date.rb +121 -0
  24. data/lib/rubocop/cop/rails/find_by.rb +52 -0
  25. data/lib/rubocop/cop/rails/find_each.rb +41 -0
  26. data/lib/rubocop/cop/rails/time_zone.rb +93 -0
  27. data/lib/rubocop/cop/style/auto_resource_cleanup.rb +45 -0
  28. data/lib/rubocop/cop/style/block_delimiters.rb +186 -0
  29. data/lib/rubocop/cop/style/closing_parenthesis_indentation.rb +76 -0
  30. data/lib/rubocop/cop/style/command_literal.rb +120 -0
  31. data/lib/rubocop/cop/style/copyright.rb +87 -0
  32. data/lib/rubocop/cop/style/documentation.rb +32 -0
  33. data/lib/rubocop/cop/style/empty_else.rb +85 -16
  34. data/lib/rubocop/cop/style/encoding.rb +14 -2
  35. data/lib/rubocop/cop/style/end_of_line.rb +5 -0
  36. data/lib/rubocop/cop/style/hash_syntax.rb +86 -23
  37. data/lib/rubocop/cop/style/if_unless_modifier.rb +15 -0
  38. data/lib/rubocop/cop/style/indentation_consistency.rb +13 -6
  39. data/lib/rubocop/cop/style/indentation_width.rb +34 -10
  40. data/lib/rubocop/cop/style/lambda.rb +32 -17
  41. data/lib/rubocop/cop/style/line_end_concatenation.rb +4 -0
  42. data/lib/rubocop/cop/style/missing_else.rb +72 -0
  43. data/lib/rubocop/cop/style/regexp_literal.rb +89 -58
  44. data/lib/rubocop/cop/style/space_around_operators.rb +13 -2
  45. data/lib/rubocop/cop/style/space_before_block_braces.rb +3 -3
  46. data/lib/rubocop/cop/style/space_inside_block_braces.rb +9 -5
  47. data/lib/rubocop/cop/style/symbol_literal.rb +36 -0
  48. data/lib/rubocop/cop/style/trailing_blank_lines.rb +7 -0
  49. data/lib/rubocop/cop/style/trailing_comma.rb +21 -7
  50. data/lib/rubocop/cop/style/trivial_accessors.rb +17 -3
  51. data/lib/rubocop/cop/style/unneeded_capital_w.rb +4 -6
  52. data/lib/rubocop/cop/style/while_until_modifier.rb +10 -0
  53. data/lib/rubocop/cop/util.rb +24 -19
  54. data/lib/rubocop/cop/variable_force.rb +14 -0
  55. data/lib/rubocop/cop/variable_force/reference.rb +10 -4
  56. data/lib/rubocop/formatter/html_formatter.rb +10 -4
  57. data/lib/rubocop/formatter/text_util.rb +5 -7
  58. data/lib/rubocop/options.rb +47 -45
  59. data/lib/rubocop/path_util.rb +12 -8
  60. data/lib/rubocop/processed_source.rb +12 -1
  61. data/lib/rubocop/rake_task.rb +2 -2
  62. data/lib/rubocop/version.rb +1 -1
  63. data/relnotes/v0.30.0.md +145 -0
  64. data/rubocop.gemspec +15 -3
  65. metadata +22 -545
  66. data/.gitignore +0 -54
  67. data/.rspec +0 -1
  68. data/.rubocop.yml +0 -11
  69. data/.rubocop_todo.yml +0 -28
  70. data/.travis.yml +0 -22
  71. data/Gemfile +0 -15
  72. data/Rakefile +0 -41
  73. data/lib/rubocop/cop/style/blocks.rb +0 -80
  74. data/lib/rubocop/cop/style/unneeded_percent_x.rb +0 -25
  75. data/logo/rubocop-final-logo.eps +0 -0
  76. data/spec/.rubocop.yml +0 -5
  77. data/spec/fixtures/html_formatter/expected.html +0 -495
  78. data/spec/fixtures/html_formatter/project/app/controllers/application_controller.rb +0 -5
  79. data/spec/fixtures/html_formatter/project/app/controllers/books_controller.rb +0 -74
  80. data/spec/fixtures/html_formatter/project/app/models/book.rb +0 -5
  81. data/spec/isolated_environment_spec.rb +0 -24
  82. data/spec/project_spec.rb +0 -119
  83. data/spec/rubocop/cli_spec.rb +0 -2740
  84. data/spec/rubocop/comment_config_spec.rb +0 -105
  85. data/spec/rubocop/config_loader_spec.rb +0 -377
  86. data/spec/rubocop/config_spec.rb +0 -235
  87. data/spec/rubocop/config_store_spec.rb +0 -53
  88. data/spec/rubocop/cop/commissioner_spec.rb +0 -85
  89. data/spec/rubocop/cop/cop_spec.rb +0 -135
  90. data/spec/rubocop/cop/corrector_spec.rb +0 -59
  91. data/spec/rubocop/cop/force_spec.rb +0 -29
  92. data/spec/rubocop/cop/lint/ambiguous_operator_spec.rb +0 -113
  93. data/spec/rubocop/cop/lint/ambiguous_regexp_literal_spec.rb +0 -35
  94. data/spec/rubocop/cop/lint/assignment_in_condition_spec.rb +0 -130
  95. data/spec/rubocop/cop/lint/block_alignment_spec.rb +0 -533
  96. data/spec/rubocop/cop/lint/condition_position_spec.rb +0 -51
  97. data/spec/rubocop/cop/lint/debugger_spec.rb +0 -73
  98. data/spec/rubocop/cop/lint/def_end_alignment_spec.rb +0 -108
  99. data/spec/rubocop/cop/lint/deprecated_class_methods_spec.rb +0 -38
  100. data/spec/rubocop/cop/lint/duplicate_methods_spec.rb +0 -189
  101. data/spec/rubocop/cop/lint/else_layout_spec.rb +0 -65
  102. data/spec/rubocop/cop/lint/empty_ensure_spec.rb +0 -27
  103. data/spec/rubocop/cop/lint/empty_interpolation_spec.rb +0 -18
  104. data/spec/rubocop/cop/lint/end_alignment_spec.rb +0 -91
  105. data/spec/rubocop/cop/lint/end_in_method_spec.rb +0 -29
  106. data/spec/rubocop/cop/lint/ensure_return_spec.rb +0 -39
  107. data/spec/rubocop/cop/lint/eval_spec.rb +0 -33
  108. data/spec/rubocop/cop/lint/handle_exceptions_spec.rb +0 -30
  109. data/spec/rubocop/cop/lint/invalid_character_literal_spec.rb +0 -33
  110. data/spec/rubocop/cop/lint/literal_in_condition_spec.rb +0 -172
  111. data/spec/rubocop/cop/lint/literal_in_interpolation_spec.rb +0 -31
  112. data/spec/rubocop/cop/lint/loop_spec.rb +0 -27
  113. data/spec/rubocop/cop/lint/parentheses_as_grouped_expression_spec.rb +0 -57
  114. data/spec/rubocop/cop/lint/require_parentheses_spec.rb +0 -82
  115. data/spec/rubocop/cop/lint/rescue_exception_spec.rb +0 -123
  116. data/spec/rubocop/cop/lint/shadowing_outer_local_variable_spec.rb +0 -237
  117. data/spec/rubocop/cop/lint/space_before_first_arg_spec.rb +0 -66
  118. data/spec/rubocop/cop/lint/string_conversion_in_interpolation_spec.rb +0 -51
  119. data/spec/rubocop/cop/lint/syntax_spec.rb +0 -34
  120. data/spec/rubocop/cop/lint/underscore_prefixed_variable_name_spec.rb +0 -179
  121. data/spec/rubocop/cop/lint/unreachable_code_spec.rb +0 -63
  122. data/spec/rubocop/cop/lint/unused_block_argument_spec.rb +0 -231
  123. data/spec/rubocop/cop/lint/unused_method_argument_spec.rb +0 -278
  124. data/spec/rubocop/cop/lint/useless_access_modifier_spec.rb +0 -192
  125. data/spec/rubocop/cop/lint/useless_assignment_spec.rb +0 -1778
  126. data/spec/rubocop/cop/lint/useless_comparison_spec.rb +0 -30
  127. data/spec/rubocop/cop/lint/useless_else_without_rescue_spec.rb +0 -48
  128. data/spec/rubocop/cop/lint/useless_setter_call_spec.rb +0 -211
  129. data/spec/rubocop/cop/lint/void_spec.rb +0 -64
  130. data/spec/rubocop/cop/metrics/abc_size_spec.rb +0 -109
  131. data/spec/rubocop/cop/metrics/block_nesting_spec.rb +0 -156
  132. data/spec/rubocop/cop/metrics/class_length_spec.rb +0 -131
  133. data/spec/rubocop/cop/metrics/cyclomatic_complexity_spec.rb +0 -204
  134. data/spec/rubocop/cop/metrics/line_length_spec.rb +0 -136
  135. data/spec/rubocop/cop/metrics/method_length_spec.rb +0 -147
  136. data/spec/rubocop/cop/metrics/parameter_lists_spec.rb +0 -44
  137. data/spec/rubocop/cop/metrics/perceived_complexity_spec.rb +0 -222
  138. data/spec/rubocop/cop/offense_spec.rb +0 -133
  139. data/spec/rubocop/cop/rails/action_filter_spec.rb +0 -64
  140. data/spec/rubocop/cop/rails/default_scope_spec.rb +0 -37
  141. data/spec/rubocop/cop/rails/delegate_spec.rb +0 -177
  142. data/spec/rubocop/cop/rails/has_and_belongs_to_many_spec.rb +0 -13
  143. data/spec/rubocop/cop/rails/output_spec.rb +0 -37
  144. data/spec/rubocop/cop/rails/read_write_attribute_spec.rb +0 -130
  145. data/spec/rubocop/cop/rails/scope_args_spec.rb +0 -25
  146. data/spec/rubocop/cop/rails/validation_spec.rb +0 -28
  147. data/spec/rubocop/cop/severity_spec.rb +0 -113
  148. data/spec/rubocop/cop/style/access_modifier_indentation_spec.rb +0 -421
  149. data/spec/rubocop/cop/style/accessor_method_name_spec.rb +0 -81
  150. data/spec/rubocop/cop/style/alias_spec.rb +0 -59
  151. data/spec/rubocop/cop/style/align_array_spec.rb +0 -123
  152. data/spec/rubocop/cop/style/align_hash_spec.rb +0 -411
  153. data/spec/rubocop/cop/style/align_parameters_spec.rb +0 -431
  154. data/spec/rubocop/cop/style/and_or_spec.rb +0 -235
  155. data/spec/rubocop/cop/style/array_join_spec.rb +0 -29
  156. data/spec/rubocop/cop/style/ascii_comments_spec.rb +0 -21
  157. data/spec/rubocop/cop/style/ascii_identifiers_spec.rb +0 -36
  158. data/spec/rubocop/cop/style/attr_spec.rb +0 -29
  159. data/spec/rubocop/cop/style/bare_percent_literals_spec.rb +0 -132
  160. data/spec/rubocop/cop/style/begin_block_spec.rb +0 -13
  161. data/spec/rubocop/cop/style/block_comments_spec.rb +0 -45
  162. data/spec/rubocop/cop/style/block_end_newline_spec.rb +0 -61
  163. data/spec/rubocop/cop/style/blocks_spec.rb +0 -121
  164. data/spec/rubocop/cop/style/braces_around_hash_parameters_spec.rb +0 -288
  165. data/spec/rubocop/cop/style/case_equality_spec.rb +0 -13
  166. data/spec/rubocop/cop/style/case_indentation_spec.rb +0 -293
  167. data/spec/rubocop/cop/style/character_literal_spec.rb +0 -37
  168. data/spec/rubocop/cop/style/class_and_module_camel_case_spec.rb +0 -40
  169. data/spec/rubocop/cop/style/class_and_module_children_spec.rb +0 -133
  170. data/spec/rubocop/cop/style/class_check_spec.rb +0 -41
  171. data/spec/rubocop/cop/style/class_methods_spec.rb +0 -80
  172. data/spec/rubocop/cop/style/class_vars_spec.rb +0 -19
  173. data/spec/rubocop/cop/style/collection_methods_spec.rb +0 -48
  174. data/spec/rubocop/cop/style/colon_method_call_spec.rb +0 -65
  175. data/spec/rubocop/cop/style/comment_annotation_spec.rb +0 -86
  176. data/spec/rubocop/cop/style/comment_indentation_spec.rb +0 -179
  177. data/spec/rubocop/cop/style/constant_name_spec.rb +0 -65
  178. data/spec/rubocop/cop/style/def_with_parentheses_spec.rb +0 -43
  179. data/spec/rubocop/cop/style/deprecated_hash_methods_spec.rb +0 -45
  180. data/spec/rubocop/cop/style/documentation_spec.rb +0 -146
  181. data/spec/rubocop/cop/style/dot_position_spec.rb +0 -132
  182. data/spec/rubocop/cop/style/double_negation_spec.rb +0 -22
  183. data/spec/rubocop/cop/style/each_with_object_spec.rb +0 -73
  184. data/spec/rubocop/cop/style/else_alignment_spec.rb +0 -506
  185. data/spec/rubocop/cop/style/empty_else_spec.rb +0 -100
  186. data/spec/rubocop/cop/style/empty_line_between_defs_spec.rb +0 -135
  187. data/spec/rubocop/cop/style/empty_lines_around_access_modifier_spec.rb +0 -178
  188. data/spec/rubocop/cop/style/empty_lines_around_block_body_spec.rb +0 -103
  189. data/spec/rubocop/cop/style/empty_lines_around_class_body_spec.rb +0 -135
  190. data/spec/rubocop/cop/style/empty_lines_around_method_body_spec.rb +0 -90
  191. data/spec/rubocop/cop/style/empty_lines_around_module_body_spec.rb +0 -79
  192. data/spec/rubocop/cop/style/empty_lines_spec.rb +0 -51
  193. data/spec/rubocop/cop/style/empty_literal_spec.rb +0 -117
  194. data/spec/rubocop/cop/style/encoding_spec.rb +0 -139
  195. data/spec/rubocop/cop/style/end_block_spec.rb +0 -13
  196. data/spec/rubocop/cop/style/end_of_line_spec.rb +0 -65
  197. data/spec/rubocop/cop/style/even_odd_spec.rb +0 -164
  198. data/spec/rubocop/cop/style/extra_spacing_spec.rb +0 -68
  199. data/spec/rubocop/cop/style/file_name_spec.rb +0 -84
  200. data/spec/rubocop/cop/style/first_parameter_indentation_spec.rb +0 -304
  201. data/spec/rubocop/cop/style/flip_flop_spec.rb +0 -23
  202. data/spec/rubocop/cop/style/for_spec.rb +0 -105
  203. data/spec/rubocop/cop/style/format_string_spec.rb +0 -184
  204. data/spec/rubocop/cop/style/global_vars_spec.rb +0 -34
  205. data/spec/rubocop/cop/style/guard_clause_spec.rb +0 -172
  206. data/spec/rubocop/cop/style/hash_syntax_spec.rb +0 -137
  207. data/spec/rubocop/cop/style/if_unless_modifier_spec.rb +0 -146
  208. data/spec/rubocop/cop/style/if_with_semicolon_spec.rb +0 -24
  209. data/spec/rubocop/cop/style/indent_array_spec.rb +0 -173
  210. data/spec/rubocop/cop/style/indent_hash_spec.rb +0 -367
  211. data/spec/rubocop/cop/style/indentation_consistency_spec.rb +0 -509
  212. data/spec/rubocop/cop/style/indentation_width_spec.rb +0 -885
  213. data/spec/rubocop/cop/style/infinite_loop_spec.rb +0 -48
  214. data/spec/rubocop/cop/style/inline_comment_spec.rb +0 -13
  215. data/spec/rubocop/cop/style/lambda_call_spec.rb +0 -65
  216. data/spec/rubocop/cop/style/lambda_spec.rb +0 -76
  217. data/spec/rubocop/cop/style/leading_comment_space_spec.rb +0 -64
  218. data/spec/rubocop/cop/style/line_end_concatenation_spec.rb +0 -184
  219. data/spec/rubocop/cop/style/method_call_parentheses_spec.rb +0 -59
  220. data/spec/rubocop/cop/style/method_called_on_do_end_block_spec.rb +0 -60
  221. data/spec/rubocop/cop/style/method_def_parentheses_spec.rb +0 -108
  222. data/spec/rubocop/cop/style/method_name_spec.rb +0 -125
  223. data/spec/rubocop/cop/style/module_function_spec.rb +0 -24
  224. data/spec/rubocop/cop/style/multiline_block_chain_spec.rb +0 -78
  225. data/spec/rubocop/cop/style/multiline_block_layout_spec.rb +0 -199
  226. data/spec/rubocop/cop/style/multiline_if_then_spec.rb +0 -134
  227. data/spec/rubocop/cop/style/multiline_operation_indentation_spec.rb +0 -464
  228. data/spec/rubocop/cop/style/multiline_ternary_operator_spec.rb +0 -18
  229. data/spec/rubocop/cop/style/negated_if_spec.rb +0 -102
  230. data/spec/rubocop/cop/style/negated_while_spec.rb +0 -64
  231. data/spec/rubocop/cop/style/nested_ternary_operator_spec.rb +0 -21
  232. data/spec/rubocop/cop/style/next_spec.rb +0 -301
  233. data/spec/rubocop/cop/style/nil_comparison_spec.rb +0 -29
  234. data/spec/rubocop/cop/style/non_nil_check_spec.rb +0 -132
  235. data/spec/rubocop/cop/style/not_spec.rb +0 -28
  236. data/spec/rubocop/cop/style/numeric_literals_spec.rb +0 -80
  237. data/spec/rubocop/cop/style/one_line_conditional_spec.rb +0 -13
  238. data/spec/rubocop/cop/style/op_method_spec.rb +0 -85
  239. data/spec/rubocop/cop/style/parentheses_around_condition_spec.rb +0 -161
  240. data/spec/rubocop/cop/style/percent_literal_delimiters_spec.rb +0 -316
  241. data/spec/rubocop/cop/style/percent_q_literals_spec.rb +0 -122
  242. data/spec/rubocop/cop/style/perl_backrefs_spec.rb +0 -22
  243. data/spec/rubocop/cop/style/predicate_name_spec.rb +0 -57
  244. data/spec/rubocop/cop/style/proc_spec.rb +0 -27
  245. data/spec/rubocop/cop/style/raise_args_spec.rb +0 -87
  246. data/spec/rubocop/cop/style/redundant_begin_spec.rb +0 -121
  247. data/spec/rubocop/cop/style/redundant_exception_spec.rb +0 -59
  248. data/spec/rubocop/cop/style/redundant_return_spec.rb +0 -171
  249. data/spec/rubocop/cop/style/redundant_self_spec.rb +0 -186
  250. data/spec/rubocop/cop/style/regexp_literal_spec.rb +0 -188
  251. data/spec/rubocop/cop/style/rescue_modifier_spec.rb +0 -116
  252. data/spec/rubocop/cop/style/self_assignment_spec.rb +0 -49
  253. data/spec/rubocop/cop/style/semicolon_spec.rb +0 -114
  254. data/spec/rubocop/cop/style/signal_exception_spec.rb +0 -289
  255. data/spec/rubocop/cop/style/single_line_block_params_spec.rb +0 -82
  256. data/spec/rubocop/cop/style/single_line_methods_spec.rb +0 -94
  257. data/spec/rubocop/cop/style/single_space_before_first_arg_spec.rb +0 -63
  258. data/spec/rubocop/cop/style/space_after_colon_spec.rb +0 -55
  259. data/spec/rubocop/cop/style/space_after_comma_spec.rb +0 -30
  260. data/spec/rubocop/cop/style/space_after_control_keyword_spec.rb +0 -84
  261. data/spec/rubocop/cop/style/space_after_method_name_spec.rb +0 -70
  262. data/spec/rubocop/cop/style/space_after_not_spec.rb +0 -22
  263. data/spec/rubocop/cop/style/space_after_semicolon_spec.rb +0 -23
  264. data/spec/rubocop/cop/style/space_around_block_parameters_spec.rb +0 -155
  265. data/spec/rubocop/cop/style/space_around_equals_in_parameter_default_spec.rb +0 -95
  266. data/spec/rubocop/cop/style/space_around_operators_spec.rb +0 -330
  267. data/spec/rubocop/cop/style/space_before_block_braces_spec.rb +0 -73
  268. data/spec/rubocop/cop/style/space_before_comma_spec.rb +0 -42
  269. data/spec/rubocop/cop/style/space_before_comment_spec.rb +0 -34
  270. data/spec/rubocop/cop/style/space_before_modifier_keyword_spec.rb +0 -70
  271. data/spec/rubocop/cop/style/space_before_semicolon_spec.rb +0 -28
  272. data/spec/rubocop/cop/style/space_inside_block_braces_spec.rb +0 -317
  273. data/spec/rubocop/cop/style/space_inside_brackets_spec.rb +0 -83
  274. data/spec/rubocop/cop/style/space_inside_hash_literal_braces_spec.rb +0 -147
  275. data/spec/rubocop/cop/style/space_inside_parens_spec.rb +0 -44
  276. data/spec/rubocop/cop/style/space_inside_range_literal_spec.rb +0 -64
  277. data/spec/rubocop/cop/style/special_global_vars_spec.rb +0 -62
  278. data/spec/rubocop/cop/style/string_literals_in_interpolation_spec.rb +0 -99
  279. data/spec/rubocop/cop/style/string_literals_spec.rb +0 -228
  280. data/spec/rubocop/cop/style/struct_inheritance_spec.rb +0 -44
  281. data/spec/rubocop/cop/style/symbol_array_spec.rb +0 -37
  282. data/spec/rubocop/cop/style/symbol_proc_spec.rb +0 -100
  283. data/spec/rubocop/cop/style/tab_spec.rb +0 -47
  284. data/spec/rubocop/cop/style/trailing_blank_lines_spec.rb +0 -83
  285. data/spec/rubocop/cop/style/trailing_comma_spec.rb +0 -390
  286. data/spec/rubocop/cop/style/trailing_whitespace_spec.rb +0 -31
  287. data/spec/rubocop/cop/style/trivial_accessors_spec.rb +0 -558
  288. data/spec/rubocop/cop/style/unless_else_spec.rb +0 -23
  289. data/spec/rubocop/cop/style/unneeded_capital_w_spec.rb +0 -90
  290. data/spec/rubocop/cop/style/unneeded_percent_q_spec.rb +0 -127
  291. data/spec/rubocop/cop/style/unneeded_percent_x_spec.rb +0 -34
  292. data/spec/rubocop/cop/style/variable_interpolation_spec.rb +0 -76
  293. data/spec/rubocop/cop/style/variable_name_spec.rb +0 -107
  294. data/spec/rubocop/cop/style/when_then_spec.rb +0 -42
  295. data/spec/rubocop/cop/style/while_until_do_spec.rb +0 -55
  296. data/spec/rubocop/cop/style/while_until_modifier_spec.rb +0 -93
  297. data/spec/rubocop/cop/style/word_array_spec.rb +0 -117
  298. data/spec/rubocop/cop/team_spec.rb +0 -190
  299. data/spec/rubocop/cop/util_spec.rb +0 -102
  300. data/spec/rubocop/cop/variable_force/assignment_spec.rb +0 -200
  301. data/spec/rubocop/cop/variable_force/locatable_spec.rb +0 -699
  302. data/spec/rubocop/cop/variable_force/reference_spec.rb +0 -19
  303. data/spec/rubocop/cop/variable_force/scope_spec.rb +0 -319
  304. data/spec/rubocop/cop/variable_force/variable_spec.rb +0 -59
  305. data/spec/rubocop/cop/variable_force/variable_table_spec.rb +0 -276
  306. data/spec/rubocop/cop/variable_force_spec.rb +0 -26
  307. data/spec/rubocop/formatter/base_formatter_spec.rb +0 -191
  308. data/spec/rubocop/formatter/clang_style_formatter_spec.rb +0 -114
  309. data/spec/rubocop/formatter/colorizable_spec.rb +0 -107
  310. data/spec/rubocop/formatter/disabled_config_formatter_spec.rb +0 -50
  311. data/spec/rubocop/formatter/disabled_lines_formatter_spec.rb +0 -67
  312. data/spec/rubocop/formatter/emacs_style_formatter_spec.rb +0 -63
  313. data/spec/rubocop/formatter/file_list_formatter_spec.rb +0 -33
  314. data/spec/rubocop/formatter/formatter_set_spec.rb +0 -141
  315. data/spec/rubocop/formatter/fuubar_style_formatter_spec.rb +0 -129
  316. data/spec/rubocop/formatter/html_formatter_spec.rb +0 -48
  317. data/spec/rubocop/formatter/json_formatter_spec.rb +0 -152
  318. data/spec/rubocop/formatter/offense_count_formatter_spec.rb +0 -75
  319. data/spec/rubocop/formatter/progress_formatter_spec.rb +0 -182
  320. data/spec/rubocop/formatter/simple_text_formatter_spec.rb +0 -135
  321. data/spec/rubocop/formatter/text_util_spec.rb +0 -55
  322. data/spec/rubocop/options_spec.rb +0 -181
  323. data/spec/rubocop/path_util_spec.rb +0 -77
  324. data/spec/rubocop/processed_source_spec.rb +0 -184
  325. data/spec/rubocop/rake_task_spec.rb +0 -122
  326. data/spec/rubocop/runner_spec.rb +0 -99
  327. data/spec/rubocop/string_util_spec.rb +0 -46
  328. data/spec/rubocop/target_finder_spec.rb +0 -245
  329. data/spec/rubocop/token_spec.rb +0 -29
  330. data/spec/spec_helper.rb +0 -39
  331. data/spec/support/cop_helper.rb +0 -75
  332. data/spec/support/cops/class_must_be_a_module_cop.rb +0 -19
  333. data/spec/support/cops/module_must_be_a_class_cop.rb +0 -19
  334. data/spec/support/coverage.rb +0 -15
  335. data/spec/support/custom_matchers.rb +0 -58
  336. data/spec/support/file_helper.rb +0 -23
  337. data/spec/support/jruby_workaround.rb +0 -15
  338. data/spec/support/mri_syntax_checker.rb +0 -73
  339. data/spec/support/shared_contexts.rb +0 -53
  340. data/spec/support/shared_examples.rb +0 -55
  341. data/spec/support/statement_modifier_helper.rb +0 -41
@@ -1,42 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::WhenThen do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for when x;' do
9
- inspect_source(cop, ['case a',
10
- 'when b; c',
11
- 'end'])
12
- expect(cop.offenses.size).to eq(1)
13
- end
14
-
15
- it 'accepts when x then' do
16
- inspect_source(cop, ['case a',
17
- 'when b then c',
18
- 'end'])
19
- expect(cop.offenses).to be_empty
20
- end
21
-
22
- it 'accepts ; separating statements in the body of when' do
23
- inspect_source(cop, ['case a',
24
- 'when b then c; d',
25
- 'end',
26
- '',
27
- 'case e',
28
- 'when f',
29
- ' g; h',
30
- 'end'])
31
- expect(cop.offenses).to be_empty
32
- end
33
-
34
- it 'auto-corrects "when x;" with "when x then"' do
35
- new_source = autocorrect_source(cop, ['case a',
36
- 'when b; c',
37
- 'end'])
38
- expect(new_source).to eq(['case a',
39
- 'when b then c',
40
- 'end'].join("\n"))
41
- end
42
- end
@@ -1,55 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::WhileUntilDo do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for do in multiline while' do
9
- inspect_source(cop, ['while cond do',
10
- 'end'])
11
- expect(cop.offenses.size).to eq(1)
12
- end
13
-
14
- it 'registers an offense for do in multiline until' do
15
- inspect_source(cop, ['until cond do',
16
- 'end'])
17
- expect(cop.offenses.size).to eq(1)
18
- end
19
-
20
- it 'accepts do in single-line while' do
21
- inspect_source(cop, 'while cond do something end')
22
- expect(cop.offenses).to be_empty
23
- end
24
-
25
- it 'accepts do in single-line until' do
26
- inspect_source(cop, 'until cond do something end')
27
- expect(cop.offenses).to be_empty
28
- end
29
-
30
- it 'it accepts multi-line while without do' do
31
- inspect_source(cop, ['while cond',
32
- 'end'])
33
- expect(cop.offenses).to be_empty
34
- end
35
-
36
- it 'it accepts multi-line until without do' do
37
- inspect_source(cop, ['until cond',
38
- 'end'])
39
- expect(cop.offenses).to be_empty
40
- end
41
-
42
- it 'auto-corrects the usage of "do" in multiline while' do
43
- new_source = autocorrect_source(cop, ['while cond do',
44
- 'end'])
45
- expect(new_source).to eq(['while cond',
46
- 'end'].join("\n"))
47
- end
48
-
49
- it 'auto-corrects the usage of "do" in multiline until' do
50
- new_source = autocorrect_source(cop, ['until cond do',
51
- 'end'])
52
- expect(new_source).to eq(['until cond',
53
- 'end'].join("\n"))
54
- end
55
- end
@@ -1,93 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::WhileUntilModifier do
6
- include StatementModifierHelper
7
-
8
- subject(:cop) { described_class.new(config) }
9
- let(:config) do
10
- hash = { 'Metrics/LineLength' => { 'Max' => 80 } }
11
- RuboCop::Config.new(hash)
12
- end
13
-
14
- it "accepts multiline unless that doesn't fit on one line" do
15
- check_too_long(cop, 'unless')
16
- end
17
-
18
- it 'accepts multiline unless whose body is more than one line' do
19
- check_short_multiline(cop, 'unless')
20
- end
21
-
22
- it 'registers an offense for multiline while that fits on one line' do
23
- check_really_short(cop, 'while')
24
- end
25
-
26
- it "accepts multiline while that doesn't fit on one line" do
27
- check_too_long(cop, 'while')
28
- end
29
-
30
- it 'accepts multiline while whose body is more than one line' do
31
- check_short_multiline(cop, 'while')
32
- end
33
-
34
- it 'accepts oneline while when condition has local variable assignment' do
35
- inspect_source(cop, ['lines = %w{first second third}',
36
- 'while (line = lines.shift)',
37
- ' puts line',
38
- 'end'])
39
- expect(cop.offenses).to be_empty
40
- end
41
-
42
- it 'registers an offense for oneline while when assignment is in body' do
43
- inspect_source(cop, ['while true',
44
- ' x = 0',
45
- 'end'])
46
- expect(cop.offenses.size).to eq(1)
47
- end
48
-
49
- it 'registers an offense for multiline until that fits on one line' do
50
- check_really_short(cop, 'until')
51
- end
52
-
53
- it "accepts multiline until that doesn't fit on one line" do
54
- check_too_long(cop, 'until')
55
- end
56
-
57
- it 'accepts multiline until whose body is more than one line' do
58
- check_short_multiline(cop, 'until')
59
- end
60
-
61
- it 'accepts an empty condition' do
62
- check_empty(cop, 'while')
63
- check_empty(cop, 'until')
64
- end
65
-
66
- it 'accepts modifier while' do
67
- inspect_source(cop, 'ala while bala')
68
- expect(cop.offenses).to be_empty
69
- end
70
-
71
- it 'accepts modifier until' do
72
- inspect_source(cop, 'ala until bala')
73
- expect(cop.offenses).to be_empty
74
- end
75
-
76
- context 'when the maximum line length is specified by the cop itself' do
77
- let(:config) do
78
- hash = {
79
- 'Metrics/LineLength' => { 'Max' => 100 },
80
- 'Style/WhileUntilModifier' => { 'MaxLineLength' => 80 }
81
- }
82
- RuboCop::Config.new(hash)
83
- end
84
-
85
- it "accepts multiline while that doesn't fit on one line" do
86
- check_too_long(cop, 'while')
87
- end
88
-
89
- it "accepts multiline until that doesn't fit on one line" do
90
- check_too_long(cop, 'until')
91
- end
92
- end
93
- end
@@ -1,117 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::WordArray, :config do
6
- subject(:cop) { described_class.new(config) }
7
- let(:cop_config) { { 'MinSize' => 0, 'WordRegex' => /\A[\p{Word}]+\z/ } }
8
-
9
- it 'registers an offense for arrays of single quoted strings' do
10
- inspect_source(cop,
11
- "['one', 'two', 'three']")
12
- expect(cop.offenses.size).to eq(1)
13
- expect(cop.config_to_allow_offenses).to eq('MinSize' => 3)
14
- end
15
-
16
- it 'registers an offense for arrays of double quoted strings' do
17
- inspect_source(cop,
18
- '["one", "two", "three"]')
19
- expect(cop.offenses.size).to eq(1)
20
- end
21
-
22
- it 'registers an offense for arrays of unicode word characters' do
23
- inspect_source(cop,
24
- '["ВУЗ", "вуз", "中文网"]')
25
- expect(cop.offenses.size).to eq(1)
26
- end
27
-
28
- it 'registers an offense for arrays with character constants' do
29
- inspect_source(cop,
30
- '["one", ?\n]')
31
- expect(cop.offenses.size).to eq(1)
32
- end
33
-
34
- it 'does not register an offense for array of non-words' do
35
- inspect_source(cop,
36
- '["one space", "two", "three"]')
37
- expect(cop.offenses).to be_empty
38
- end
39
-
40
- it 'does not register an offense for array containing non-string' do
41
- inspect_source(cop,
42
- '["one", "two", 3]')
43
- expect(cop.offenses).to be_empty
44
- end
45
-
46
- it 'does not register an offense for array starting with %w' do
47
- inspect_source(cop,
48
- '%w(one two three)')
49
- expect(cop.offenses).to be_empty
50
- end
51
-
52
- it 'does not register an offense for array with one element' do
53
- inspect_source(cop,
54
- '["three"]')
55
- expect(cop.offenses).to be_empty
56
- end
57
-
58
- it 'does not register an offense for array with empty strings' do
59
- inspect_source(cop,
60
- '["", "two", "three"]')
61
- expect(cop.offenses).to be_empty
62
- end
63
-
64
- it 'does not register an offense for array with allowed number of strings' do
65
- cop_config['MinSize'] = 3
66
-
67
- inspect_source(cop,
68
- '["one", "two", "three"]')
69
- expect(cop.offenses).to be_empty
70
- end
71
-
72
- it 'does not register an offense for an array with comments in it' do
73
- inspect_source(cop,
74
- ['[',
75
- '"foo", # comment here',
76
- '"bar", # this thing was done because of a bug',
77
- '"baz" # do not delete this line',
78
- ']'])
79
-
80
- expect(cop.offenses).to be_empty
81
- end
82
-
83
- it 'registers an offense for an array with comments outside of it' do
84
- inspect_source(cop,
85
- ['[',
86
- '"foo",',
87
- '"bar",',
88
- '"baz"',
89
- '] # test'])
90
-
91
- expect(cop.offenses.size).to eq(1)
92
- end
93
-
94
- it 'auto-corrects an array of words' do
95
- new_source = autocorrect_source(cop, "['one', %q(two), 'three']")
96
- expect(new_source).to eq('%w(one two three)')
97
- end
98
-
99
- it 'auto-corrects an array of words and character constants' do
100
- new_source = autocorrect_source(cop, '[%{one}, %Q(two), ?\n, ?\t]')
101
- expect(new_source).to eq('%W(one two \n \t)')
102
- end
103
-
104
- context 'with a custom WordRegex configuration' do
105
- let(:cop_config) { { 'MinSize' => 0, 'WordRegex' => /\A[\w@.]+\z/ } }
106
-
107
- it 'registers an offense for arrays of email addresses' do
108
- inspect_source(cop, "['a@example.com', 'b@example.com']")
109
- expect(cop.offenses.size).to eq(1)
110
- end
111
-
112
- it 'auto-corrects an array of email addresses' do
113
- new_source = autocorrect_source(cop, "['a@example.com', 'b@example.com']")
114
- expect(new_source).to eq('%w(a@example.com b@example.com)')
115
- end
116
- end
117
- end
@@ -1,190 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Team do
6
- subject(:team) { described_class.new(cop_classes, config, options) }
7
- let(:cop_classes) { RuboCop::Cop::Cop.non_rails }
8
- let(:config) { RuboCop::ConfigLoader.default_configuration }
9
- let(:options) { nil }
10
-
11
- describe '#autocorrect?' do
12
- subject { team.autocorrect? }
13
-
14
- context 'when the option argument of .new is omitted' do
15
- subject { described_class.new(cop_classes, config).autocorrect? }
16
- it { should be_falsey }
17
- end
18
-
19
- context 'when { auto_correct: true } is passed to .new' do
20
- let(:options) { { auto_correct: true } }
21
- it { should be_truthy }
22
- end
23
- end
24
-
25
- describe '#debug?' do
26
- subject { team.debug? }
27
-
28
- context 'when the option argument of .new is omitted' do
29
- subject { described_class.new(cop_classes, config).debug? }
30
- it { should be_falsey }
31
- end
32
-
33
- context 'when { debug: true } is passed to .new' do
34
- let(:options) { { debug: true } }
35
- it { should be_truthy }
36
- end
37
- end
38
-
39
- describe '#inspect_file', :isolated_environment do
40
- include FileHelper
41
-
42
- let(:file_path) { '/tmp/example.rb' }
43
- let(:offenses) do
44
- team.inspect_file(RuboCop::ProcessedSource.from_file(file_path))
45
- end
46
-
47
- before do
48
- create_file(file_path, [
49
- '#' * 90,
50
- 'puts test;'
51
- ])
52
- end
53
-
54
- it 'returns offenses' do
55
- expect(offenses).not_to be_empty
56
- expect(offenses.all? { |o| o.is_a?(RuboCop::Cop::Offense) }).to be_truthy
57
- end
58
-
59
- context 'when Parser reports non-fatal warning for the file' do
60
- before do
61
- create_file(file_path, [
62
- '# encoding: utf-8',
63
- '#' * 90,
64
- 'puts *test'
65
- ])
66
- end
67
-
68
- let(:cop_names) { offenses.map(&:cop_name) }
69
-
70
- it 'returns Parser warning offenses' do
71
- expect(cop_names).to include('Lint/AmbiguousOperator')
72
- end
73
-
74
- it 'returns offenses from cops' do
75
- expect(cop_names).to include('Metrics/LineLength')
76
- end
77
- end
78
-
79
- context 'when autocorrection is enabled' do
80
- let(:options) { { auto_correct: true } }
81
-
82
- before do
83
- create_file(file_path, [
84
- '# encoding: utf-8',
85
- 'puts "string"'
86
- ])
87
- end
88
-
89
- it 'does autocorrection' do
90
- team.inspect_file(RuboCop::ProcessedSource.from_file(file_path))
91
- corrected_source = File.read(file_path)
92
- expect(corrected_source).to eq([
93
- '# encoding: utf-8',
94
- "puts 'string'",
95
- ''
96
- ].join("\n"))
97
- end
98
-
99
- it 'still returns offenses' do
100
- expect(offenses.first.cop_name).to eq('Style/StringLiterals')
101
- end
102
- end
103
- end
104
-
105
- describe '#cops' do
106
- subject(:cops) { team.cops }
107
-
108
- it 'returns cop instances' do
109
- expect(cops).not_to be_empty
110
- expect(cops.all? { |c| c.is_a?(RuboCop::Cop::Cop) }).to be_truthy
111
- end
112
-
113
- context 'when only some cop classes are passed to .new' do
114
- let(:cop_classes) do
115
- [RuboCop::Cop::Lint::Void, RuboCop::Cop::Metrics::LineLength]
116
- end
117
-
118
- it 'returns only instances of the classes' do
119
- expect(cops.size).to eq(2)
120
- cops.sort! { |a, b| a.name <=> b.name }
121
- expect(cops[0].name).to eq('Lint/Void')
122
- expect(cops[1].name).to eq('Metrics/LineLength')
123
- end
124
- end
125
-
126
- context 'when some classes are disabled with config' do
127
- let(:disabled_config) do
128
- %w(
129
- Lint/Void
130
- Metrics/LineLength
131
- ).each_with_object({}) do |cop_name, accum|
132
- accum[cop_name] = { 'Enabled' => false }
133
- end
134
- end
135
- let(:config) do
136
- RuboCop::ConfigLoader.merge_with_default(disabled_config, '')
137
- end
138
- let(:cop_names) { cops.map(&:name) }
139
-
140
- it 'does not return instances of the classes' do
141
- expect(cops).not_to be_empty
142
- expect(cop_names).not_to include('Lint/Void')
143
- expect(cop_names).not_to include('Metrics/LineLength')
144
- end
145
- end
146
- end
147
-
148
- describe '#forces' do
149
- subject(:forces) { team.forces }
150
- let(:cop_classes) { RuboCop::Cop::Cop.non_rails }
151
-
152
- it 'returns force instances' do
153
- expect(forces).not_to be_empty
154
-
155
- forces.each do |force|
156
- expect(force).to be_a(RuboCop::Cop::Force)
157
- end
158
- end
159
-
160
- context 'when a cop joined a force' do
161
- let(:cop_classes) { [RuboCop::Cop::Lint::UselessAssignment] }
162
-
163
- it 'returns the force' do
164
- expect(forces.size).to eq(1)
165
- expect(forces.first).to be_a(RuboCop::Cop::VariableForce)
166
- end
167
- end
168
-
169
- context 'when multiple cops joined a same force' do
170
- let(:cop_classes) do
171
- [
172
- RuboCop::Cop::Lint::UselessAssignment,
173
- RuboCop::Cop::Lint::ShadowingOuterLocalVariable
174
- ]
175
- end
176
-
177
- it 'returns only one force instance' do
178
- expect(forces.size).to eq(1)
179
- end
180
- end
181
-
182
- context 'when no cops joined force' do
183
- let(:cop_classes) { [RuboCop::Cop::Style::For] }
184
-
185
- it 'returns nothing' do
186
- expect(forces).to be_empty
187
- end
188
- end
189
- end
190
- end