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,57 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::PredicateName, :config do
6
- subject(:cop) { described_class.new(config) }
7
-
8
- context 'with blacklisted prefices' do
9
- let(:cop_config) do
10
- { 'NamePrefix' => %w(has_ is_),
11
- 'NamePrefixBlacklist' => %w(has_ is_) }
12
- end
13
-
14
- %w(has is).each do |prefix|
15
- it 'registers an offense when method name starts with known prefix' do
16
- inspect_source(cop, ["def #{prefix}_attr",
17
- ' # ...',
18
- 'end'])
19
- expect(cop.offenses.size).to eq(1)
20
- expect(cop.messages).to eq(["Rename `#{prefix}_attr` to `attr?`."])
21
- expect(cop.highlights).to eq(["#{prefix}_attr"])
22
- end
23
- end
24
-
25
- it 'accepts method name that starts with unknown prefix' do
26
- inspect_source(cop, ['def have_attr',
27
- ' # ...',
28
- 'end'])
29
- expect(cop.offenses).to be_empty
30
- end
31
-
32
- context 'with blacklisted prefices' do
33
- let(:cop_config) do
34
- { 'NamePrefix' => %w(has_ is_), 'NamePrefixBlacklist' => [] }
35
- end
36
-
37
- %w(has is).each do |prefix|
38
- it 'registers an offense when method name starts with known prefix' do
39
- inspect_source(cop, ["def #{prefix}_attr",
40
- ' # ...',
41
- 'end'])
42
- expect(cop.offenses.size).to eq(1)
43
- expect(cop.messages)
44
- .to eq(["Rename `#{prefix}_attr` to `#{prefix}_attr?`."])
45
- expect(cop.highlights).to eq(["#{prefix}_attr"])
46
- end
47
- end
48
-
49
- it 'accepts method name that starts with unknown prefix' do
50
- inspect_source(cop, ['def have_attr',
51
- ' # ...',
52
- 'end'])
53
- expect(cop.offenses).to be_empty
54
- end
55
- end
56
- end
57
- end
@@ -1,27 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::Proc do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for a Proc.new call' do
9
- inspect_source(cop, 'f = Proc.new { |x| puts x }')
10
- expect(cop.offenses.size).to eq(1)
11
- end
12
-
13
- it 'accepts the proc method' do
14
- inspect_source(cop, 'f = proc { |x| puts x }')
15
- expect(cop.offenses).to be_empty
16
- end
17
-
18
- it 'accepts the Proc.new call outside of block' do
19
- inspect_source(cop, 'p = Proc.new')
20
- expect(cop.offenses).to be_empty
21
- end
22
-
23
- it 'auto-corrects Proc.new to proc' do
24
- corrected = autocorrect_source(cop, ['Proc.new { test }'])
25
- expect(corrected).to eq 'proc { test }'
26
- end
27
- end
@@ -1,87 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::RaiseArgs, :config do
6
- subject(:cop) { described_class.new(config) }
7
-
8
- context 'when enforced style is compact' do
9
- let(:cop_config) { { 'EnforcedStyle' => 'compact' } }
10
-
11
- it 'reports an offense for a raise with 2 args' do
12
- inspect_source(cop, 'raise RuntimeError, msg')
13
- expect(cop.offenses.size).to eq(1)
14
- expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' => 'exploded')
15
- end
16
-
17
- it 'reports an offense for correct + opposite' do
18
- inspect_source(cop, ['if a',
19
- ' raise RuntimeError, msg',
20
- 'else',
21
- ' raise Ex.new(msg)',
22
- 'end'])
23
- expect(cop.offenses.size).to eq(1)
24
- expect(cop.messages)
25
- .to eq(['Provide an exception object as an argument to `raise`.'])
26
- expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
27
- end
28
-
29
- it 'reports an offense for a raise with 3 args' do
30
- inspect_source(cop, 'raise RuntimeError, msg, caller')
31
- expect(cop.offenses.size).to eq(1)
32
- end
33
-
34
- it 'accepts a raise with msg argument' do
35
- inspect_source(cop, 'raise msg')
36
- expect(cop.offenses).to be_empty
37
- end
38
-
39
- it 'accepts a raise with an exception argument' do
40
- inspect_source(cop, 'raise Ex.new(msg)')
41
- expect(cop.offenses).to be_empty
42
- end
43
- end
44
-
45
- context 'when enforced style is exploded' do
46
- let(:cop_config) { { 'EnforcedStyle' => 'exploded' } }
47
-
48
- it 'reports an offense for a raise with exception object' do
49
- inspect_source(cop, 'raise Ex.new(msg)')
50
- expect(cop.offenses.size).to eq(1)
51
- expect(cop.messages)
52
- .to eq(['Provide an exception class and message ' \
53
- 'as arguments to `raise`.'])
54
- expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' => 'compact')
55
- end
56
-
57
- it 'reports an offense for opposite + correct' do
58
- inspect_source(cop, ['if a',
59
- ' raise RuntimeError, msg',
60
- 'else',
61
- ' raise Ex.new(msg)',
62
- 'end'])
63
- expect(cop.offenses.size).to eq(1)
64
- expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
65
- end
66
-
67
- it 'accepts exception constructor with more than 1 argument' do
68
- inspect_source(cop, 'raise RuntimeError.new(a1, a2, a3)')
69
- expect(cop.offenses).to be_empty
70
- end
71
-
72
- it 'accepts a raise with 3 args' do
73
- inspect_source(cop, 'raise RuntimeError, msg, caller')
74
- expect(cop.offenses).to be_empty
75
- end
76
-
77
- it 'accepts a raise with 2 args' do
78
- inspect_source(cop, 'raise RuntimeError, msg')
79
- expect(cop.offenses).to be_empty
80
- end
81
-
82
- it 'accepts a raise with msg argument' do
83
- inspect_source(cop, 'raise msg')
84
- expect(cop.offenses).to be_empty
85
- end
86
- end
87
- end
@@ -1,121 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::RedundantBegin do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'reports an offense for single line def with redundant begin block' do
9
- src = ' def func; begin; x; y; rescue; z end end'
10
- inspect_source(cop, src)
11
- expect(cop.offenses.size).to eq(1)
12
- end
13
-
14
- it 'reports an offense for def with redundant begin block' do
15
- src = ['def func',
16
- ' begin',
17
- ' ala',
18
- ' rescue => e',
19
- ' bala',
20
- ' end',
21
- 'end']
22
- inspect_source(cop, src)
23
- expect(cop.offenses.size).to eq(1)
24
- end
25
-
26
- it 'reports an offense for defs with redundant begin block' do
27
- src = ['def Test.func',
28
- ' begin',
29
- ' ala',
30
- ' rescue => e',
31
- ' bala',
32
- ' end',
33
- 'end']
34
- inspect_source(cop, src)
35
- expect(cop.offenses.size).to eq(1)
36
- end
37
-
38
- it 'accepts a def with required begin block' do
39
- src = ['def func',
40
- ' begin',
41
- ' ala',
42
- ' rescue => e',
43
- ' bala',
44
- ' end',
45
- ' something',
46
- 'end']
47
- inspect_source(cop, src)
48
- expect(cop.offenses).to be_empty
49
- end
50
-
51
- it 'accepts a defs with required begin block' do
52
- src = ['def Test.func',
53
- ' begin',
54
- ' ala',
55
- ' rescue => e',
56
- ' bala',
57
- ' end',
58
- ' something',
59
- 'end']
60
- inspect_source(cop, src)
61
- expect(cop.offenses).to be_empty
62
- end
63
-
64
- it 'auto-corrects by removing redundant begin blocks' do
65
- src = [' def func',
66
- ' begin',
67
- ' foo',
68
- ' bar',
69
- ' rescue',
70
- ' baz',
71
- ' end',
72
- ' end'].join("\n")
73
- result_src = [' def func',
74
- ' foo',
75
- ' bar',
76
- ' rescue',
77
- ' baz',
78
- ' end'].join("\n")
79
- new_source = autocorrect_source(cop, src)
80
- expect(new_source).to eq(result_src)
81
- end
82
-
83
- it 'auto-corrects by removing redundant begin blocks' do
84
- src = ' def func; begin; x; y; rescue; z end end'
85
- result_src = ' def func; x; y; rescue; z end'
86
- new_source = autocorrect_source(cop, src)
87
- expect(new_source).to eq(result_src)
88
- end
89
-
90
- it "doesn't modify spacing when auto-correcting" do
91
- src = ['def method',
92
- ' begin',
93
- ' BlockA do |strategy|',
94
- ' foo',
95
- ' end',
96
- '',
97
- ' BlockB do |portfolio|',
98
- ' foo',
99
- ' end',
100
- '',
101
- ' rescue => e',
102
- ' bar',
103
- ' end',
104
- 'end']
105
-
106
- result_src = ['def method',
107
- ' BlockA do |strategy|',
108
- ' foo',
109
- ' end',
110
- '',
111
- ' BlockB do |portfolio|',
112
- ' foo',
113
- ' end',
114
- '',
115
- 'rescue => e',
116
- ' bar',
117
- 'end'].join("\n")
118
- new_source = autocorrect_source(cop, src)
119
- expect(new_source).to eq(result_src)
120
- end
121
- end
@@ -1,59 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::RedundantException do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'reports an offense for a raise with RuntimeError' do
9
- inspect_source(cop, 'raise RuntimeError, msg')
10
- expect(cop.offenses.size).to eq(1)
11
- end
12
-
13
- it 'reports an offense for a fail with RuntimeError' do
14
- inspect_source(cop, 'fail RuntimeError, msg')
15
- expect(cop.offenses.size).to eq(1)
16
- end
17
-
18
- it 'accepts a raise with RuntimeError if it does not have 2 args' do
19
- inspect_source(cop, 'raise RuntimeError, msg, caller')
20
- expect(cop.offenses).to be_empty
21
- end
22
-
23
- it 'accepts a fail with RuntimeError if it does not have 2 args' do
24
- inspect_source(cop, 'fail RuntimeError, msg, caller')
25
- expect(cop.offenses).to be_empty
26
- end
27
-
28
- it 'auto-corrects a raise by removing RuntimeError' do
29
- src = 'raise RuntimeError, msg'
30
- result_src = 'raise msg'
31
- new_src = autocorrect_source(cop, src)
32
- expect(new_src).to eq(result_src)
33
- end
34
-
35
- it 'auto-corrects a fil by removing RuntimeError' do
36
- src = 'fail RuntimeError, msg'
37
- result_src = 'fail msg'
38
- new_src = autocorrect_source(cop, src)
39
- expect(new_src).to eq(result_src)
40
- end
41
-
42
- it 'does not modify raise w/ RuntimeError if it does not have 2 args' do
43
- src = 'raise runtimeError, msg, caller'
44
- new_src = autocorrect_source(cop, src)
45
- expect(new_src).to eq(src)
46
- end
47
-
48
- it 'does not modify fail w/ RuntimeError if it does not have 2 args' do
49
- src = 'fail RuntimeError, msg, caller'
50
- new_src = autocorrect_source(cop, src)
51
- expect(new_src).to eq(src)
52
- end
53
-
54
- it 'does not modify rescue w/ non redundant error' do
55
- src = 'fail OtherError, msg'
56
- new_src = autocorrect_source(cop, src)
57
- expect(new_src).to eq(src)
58
- end
59
- end
@@ -1,171 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::RedundantReturn, :config do
6
- subject(:cop) { described_class.new(config) }
7
- let(:cop_config) { { 'AllowMultipleReturnValues' => false } }
8
-
9
- it 'reports an offense for def with only a return' do
10
- src = ['def func',
11
- ' return something',
12
- 'end']
13
- inspect_source(cop, src)
14
- expect(cop.offenses.size).to eq(1)
15
- end
16
-
17
- it 'reports an offense for defs with only a return' do
18
- src = ['def Test.func',
19
- ' return something',
20
- 'end']
21
- inspect_source(cop, src)
22
- expect(cop.offenses.size).to eq(1)
23
- end
24
-
25
- it 'reports an offense for def ending with return' do
26
- src = ['def func',
27
- ' one',
28
- ' two',
29
- ' return something',
30
- 'end']
31
- inspect_source(cop, src)
32
- expect(cop.offenses.size).to eq(1)
33
- end
34
-
35
- it 'reports an offense for defs ending with return' do
36
- src = ['def func',
37
- ' one',
38
- ' two',
39
- ' return something',
40
- 'end']
41
- inspect_source(cop, src)
42
- expect(cop.offenses.size).to eq(1)
43
- end
44
-
45
- it 'accepts return in a non-final position' do
46
- src = ['def func',
47
- ' return something if something_else',
48
- 'end']
49
- inspect_source(cop, src)
50
- expect(cop.offenses).to be_empty
51
- end
52
-
53
- it 'does not blow up on empty method body' do
54
- src = ['def func',
55
- 'end']
56
- inspect_source(cop, src)
57
- expect(cop.offenses).to be_empty
58
- end
59
-
60
- it 'auto-corrects by removing redundant returns' do
61
- src = ['def func',
62
- ' one',
63
- ' two',
64
- ' return something',
65
- 'end'].join("\n")
66
- result_src = ['def func',
67
- ' one',
68
- ' two',
69
- ' something',
70
- 'end'].join("\n")
71
- new_source = autocorrect_source(cop, src)
72
- expect(new_source).to eq(result_src)
73
- end
74
-
75
- context 'when multi-value returns are not allowed' do
76
- it 'reports an offense for def with only a return' do
77
- src = ['def func',
78
- ' return something, test',
79
- 'end']
80
- inspect_source(cop, src)
81
- expect(cop.offenses.size).to eq(1)
82
- end
83
-
84
- it 'reports an offense for defs with only a return' do
85
- src = ['def Test.func',
86
- ' return something, test',
87
- 'end']
88
- inspect_source(cop, src)
89
- expect(cop.offenses.size).to eq(1)
90
- end
91
-
92
- it 'reports an offense for def ending with return' do
93
- src = ['def func',
94
- ' one',
95
- ' two',
96
- ' return something, test',
97
- 'end']
98
- inspect_source(cop, src)
99
- expect(cop.offenses.size).to eq(1)
100
- end
101
-
102
- it 'reports an offense for defs ending with return' do
103
- src = ['def func',
104
- ' one',
105
- ' two',
106
- ' return something, test',
107
- 'end']
108
- inspect_source(cop, src)
109
- expect(cop.offenses.size).to eq(1)
110
- end
111
-
112
- it 'auto-corrects by making implicit arrays explicit' do
113
- src = ['def func',
114
- ' return 1, 2',
115
- 'end'].join("\n")
116
- result_src = ['def func',
117
- ' [1, 2]', # Just 1, 2 is not valid Ruby.
118
- 'end'].join("\n")
119
- new_source = autocorrect_source(cop, src)
120
- expect(new_source).to eq(result_src)
121
- end
122
- end
123
-
124
- context 'when multi-value returns are allowed' do
125
- let(:cop_config) { { 'AllowMultipleReturnValues' => true } }
126
-
127
- it 'accepts def with only a return' do
128
- src = ['def func',
129
- ' return something, test',
130
- 'end']
131
- inspect_source(cop, src)
132
- expect(cop.offenses).to be_empty
133
- end
134
-
135
- it 'accepts defs with only a return' do
136
- src = ['def Test.func',
137
- ' return something, test',
138
- 'end']
139
- inspect_source(cop, src)
140
- expect(cop.offenses).to be_empty
141
- end
142
-
143
- it 'accepts def ending with return' do
144
- src = ['def func',
145
- ' one',
146
- ' two',
147
- ' return something, test',
148
- 'end']
149
- inspect_source(cop, src)
150
- expect(cop.offenses).to be_empty
151
- end
152
-
153
- it 'accepts defs ending with return' do
154
- src = ['def func',
155
- ' one',
156
- ' two',
157
- ' return something, test',
158
- 'end']
159
- inspect_source(cop, src)
160
- expect(cop.offenses).to be_empty
161
- end
162
-
163
- it 'does not auto-correct' do
164
- src = ['def func',
165
- ' return 1, 2',
166
- 'end'].join("\n")
167
- new_source = autocorrect_source(cop, src)
168
- expect(new_source).to eq(src)
169
- end
170
- end
171
- end