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,49 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::SelfAssignment do
6
- subject(:cop) { described_class.new }
7
-
8
- [:+, :-, :*, :**, :/, :|, :&].product(['x', '@x', '@@x']).each do |op, var|
9
- it "registers an offense for non-shorthand assignment #{op} and #{var}" do
10
- inspect_source(cop,
11
- "#{var} = #{var} #{op} y")
12
- expect(cop.offenses.size).to eq(1)
13
- expect(cop.messages)
14
- .to eq(["Use self-assignment shorthand `#{op}=`."])
15
- end
16
-
17
- it "accepts shorthand assignment for #{op} and #{var}" do
18
- inspect_source(cop,
19
- "#{var} #{op}= y")
20
- expect(cop.offenses).to be_empty
21
- end
22
-
23
- it "auto-corrects a non-shorthand assignment #{op} and #{var}" do
24
- new_source = autocorrect_source(cop, "#{var} = #{var} #{op} y")
25
- expect(new_source).to eq("#{var} #{op}= y")
26
- end
27
- end
28
-
29
- ['||', '&&'].product(['x', '@x', '@@x']).each do |op, var|
30
- it "registers an offense for non-shorthand assignment #{op} and #{var}" do
31
- inspect_source(cop,
32
- "#{var} = #{var} #{op} y")
33
- expect(cop.offenses.size).to eq(1)
34
- expect(cop.messages)
35
- .to eq(["Use self-assignment shorthand `#{op}=`."])
36
- end
37
-
38
- it "accepts shorthand assignment for #{op} and #{var}" do
39
- inspect_source(cop,
40
- "#{var} #{op}= y")
41
- expect(cop.offenses).to be_empty
42
- end
43
-
44
- it "auto-corrects a non-shorthand assignment #{op} and #{var}" do
45
- new_source = autocorrect_source(cop, "#{var} = #{var} #{op} y")
46
- expect(new_source).to eq("#{var} #{op}= y")
47
- end
48
- end
49
- end
@@ -1,114 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::Semicolon, :config do
6
- subject(:cop) { described_class.new(config) }
7
- let(:cop_config) { { 'AllowAsExpressionSeparator' => false } }
8
-
9
- it 'registers an offense for a single expression' do
10
- inspect_source(cop,
11
- 'puts "this is a test";')
12
- expect(cop.offenses.size).to eq(1)
13
- end
14
-
15
- it 'registers an offense for several expressions' do
16
- inspect_source(cop,
17
- 'puts "this is a test"; puts "So is this"')
18
- expect(cop.offenses.size).to eq(1)
19
- end
20
-
21
- it 'registers an offense for one line method with two statements' do
22
- inspect_source(cop,
23
- 'def foo(a) x(1); y(2); z(3); end')
24
- expect(cop.offenses.size).to eq(1)
25
- end
26
-
27
- it 'accepts semicolon before end if so configured' do
28
- inspect_source(cop,
29
- 'def foo(a) z(3); end')
30
- expect(cop.offenses).to be_empty
31
- end
32
-
33
- it 'accepts semicolon after params if so configured' do
34
- inspect_source(cop,
35
- 'def foo(a); z(3) end')
36
- expect(cop.offenses).to be_empty
37
- end
38
-
39
- it 'accepts one line method definitions' do
40
- inspect_source(cop,
41
- ['def foo1; x(3) end',
42
- 'def initialize(*_); end',
43
- 'def foo2() x(3); end',
44
- 'def foo3; x(3); end'])
45
- expect(cop.offenses).to be_empty
46
- end
47
-
48
- it 'accepts one line empty class definitions' do
49
- inspect_source(cop,
50
- ['# Prefer a single-line format for class ...',
51
- 'class Foo < Exception; end',
52
- '',
53
- 'class Bar; end'])
54
- expect(cop.offenses).to be_empty
55
- end
56
-
57
- it 'accepts one line empty method definitions' do
58
- inspect_source(cop,
59
- ['# One exception to the rule are empty-body methods',
60
- 'def no_op; end',
61
- '',
62
- 'def foo; end'])
63
- expect(cop.offenses).to be_empty
64
- end
65
-
66
- it 'accepts one line empty module definitions' do
67
- inspect_source(cop,
68
- 'module Foo; end')
69
- expect(cop.offenses).to be_empty
70
- end
71
-
72
- it 'registers an offense for semicolon at the end no matter what' do
73
- inspect_source(cop,
74
- 'module Foo; end;')
75
- expect(cop.offenses.size).to eq(1)
76
- end
77
-
78
- it 'accept semicolons inside strings' do
79
- inspect_source(cop,
80
- ['string = ";',
81
- 'multi-line string"'])
82
- expect(cop.offenses).to be_empty
83
- end
84
-
85
- it 'auto-corrects semicolons when syntactically possible' do
86
- corrected =
87
- autocorrect_source(cop,
88
- ['module Foo; end;',
89
- 'puts "this is a test";',
90
- 'puts "this is a test"; puts "So is this"',
91
- 'def foo(a) x(1); y(2); z(3); end'])
92
- expect(corrected)
93
- .to eq(['module Foo; end',
94
- 'puts "this is a test"',
95
- 'puts "this is a test"; puts "So is this"',
96
- 'def foo(a) x(1); y(2); z(3); end'].join("\n"))
97
- end
98
-
99
- context 'when AllowAsExpressionSeparator is true' do
100
- let(:cop_config) { { 'AllowAsExpressionSeparator' => true } }
101
-
102
- it 'accepts several expressions' do
103
- inspect_source(cop,
104
- 'puts "this is a test"; puts "So is this"')
105
- expect(cop.offenses).to be_empty
106
- end
107
-
108
- it 'accepts one line method with two statements' do
109
- inspect_source(cop,
110
- 'def foo(a) x(1); y(2); z(3); end')
111
- expect(cop.offenses).to be_empty
112
- end
113
- end
114
- end
@@ -1,289 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::SignalException, :config do
6
- subject(:cop) { described_class.new(config) }
7
-
8
- context 'when enforced style is `semantic`' do
9
- let(:cop_config) { { 'EnforcedStyle' => 'semantic' } }
10
-
11
- it 'registers an offense for raise in begin section' do
12
- inspect_source(cop,
13
- ['begin',
14
- ' raise',
15
- 'rescue Exception',
16
- ' #do nothing',
17
- 'end'])
18
- expect(cop.offenses.size).to eq(1)
19
- expect(cop.messages)
20
- .to eq(['Use `fail` instead of `raise` to signal exceptions.'])
21
- end
22
-
23
- it 'registers an offense for raise in def body' do
24
- inspect_source(cop,
25
- ['def test',
26
- ' raise',
27
- 'rescue Exception',
28
- ' #do nothing',
29
- 'end'])
30
- expect(cop.offenses.size).to eq(1)
31
- expect(cop.messages)
32
- .to eq(['Use `fail` instead of `raise` to signal exceptions.'])
33
- end
34
-
35
- it 'registers an offense for fail in rescue section' do
36
- inspect_source(cop,
37
- ['begin',
38
- ' fail',
39
- 'rescue Exception',
40
- ' fail',
41
- 'end'])
42
- expect(cop.offenses.size).to eq(1)
43
- expect(cop.messages)
44
- .to eq(['Use `raise` instead of `fail` to rethrow exceptions.'])
45
- end
46
-
47
- it 'accepts raise in rescue section' do
48
- inspect_source(cop,
49
- ['begin',
50
- ' fail',
51
- 'rescue Exception',
52
- ' raise RuntimeError',
53
- 'end'])
54
- expect(cop.offenses).to be_empty
55
- end
56
-
57
- it 'accepts raise in def with multiple rescues' do
58
- inspect_source(cop,
59
- ['def test',
60
- ' fail',
61
- 'rescue StandardError',
62
- ' # handle error',
63
- 'rescue Exception',
64
- ' raise',
65
- 'end'])
66
- expect(cop.offenses).to be_empty
67
- end
68
-
69
- it 'registers an offense for fail in def rescue section' do
70
- inspect_source(cop,
71
- ['def test',
72
- ' fail',
73
- 'rescue Exception',
74
- ' fail',
75
- 'end'])
76
- expect(cop.offenses.size).to eq(1)
77
- expect(cop.messages)
78
- .to eq(['Use `raise` instead of `fail` to rethrow exceptions.'])
79
- end
80
-
81
- it 'registers an offense for fail in second rescue' do
82
- inspect_source(cop,
83
- ['def test',
84
- ' fail',
85
- 'rescue StandardError',
86
- ' # handle error',
87
- 'rescue Exception',
88
- ' fail',
89
- 'end'])
90
- expect(cop.offenses.size).to eq(1)
91
- end
92
-
93
- it 'registers only offense for one raise that should be fail' do
94
- # This is a special case that has caused double reporting.
95
- inspect_source(cop,
96
- ['map do',
97
- " raise 'I'",
98
- 'end.flatten.compact'])
99
- expect(cop.offenses.size).to eq(1)
100
- expect(cop.messages)
101
- .to eq(['Use `fail` instead of `raise` to signal exceptions.'])
102
- end
103
-
104
- it 'accepts raise in def rescue section' do
105
- inspect_source(cop,
106
- ['def test',
107
- ' fail',
108
- 'rescue Exception',
109
- ' raise',
110
- 'end'])
111
- expect(cop.offenses).to be_empty
112
- end
113
-
114
- it 'registers an offense for raise not in a begin/rescue/end' do
115
- inspect_source(cop,
116
- ["case cop_config['EnforcedStyle']",
117
- "when 'single_quotes' then true",
118
- "when 'double_quotes' then false",
119
- "else raise 'Unknown StringLiterals style'",
120
- 'end'])
121
- expect(cop.offenses.size).to eq(1)
122
- expect(cop.messages)
123
- .to eq(['Use `fail` instead of `raise` to signal exceptions.'])
124
- end
125
-
126
- it 'registers one offense for each raise' do
127
- inspect_source(cop,
128
- ['cop.stub(:on_def) { raise RuntimeError }',
129
- 'cop.stub(:on_def) { raise RuntimeError }'])
130
- expect(cop.offenses.size).to eq(2)
131
- expect(cop.messages)
132
- .to eq(['Use `fail` instead of `raise` to signal exceptions.'] * 2)
133
- end
134
-
135
- it 'is not confused by nested begin/rescue' do
136
- inspect_source(cop,
137
- ['begin',
138
- ' raise',
139
- ' begin',
140
- ' raise',
141
- ' rescue',
142
- ' fail',
143
- ' end',
144
- 'rescue Exception',
145
- ' #do nothing',
146
- 'end'])
147
- expect(cop.offenses.size).to eq(3)
148
- expect(cop.messages)
149
- .to eq(['Use `fail` instead of `raise` to signal exceptions.'] * 2 +
150
- ['Use `raise` instead of `fail` to rethrow exceptions.'])
151
- end
152
-
153
- it 'auto-corrects raise to fail when appropriate' do
154
- new_source = autocorrect_source(cop,
155
- ['begin',
156
- ' raise',
157
- 'rescue Exception',
158
- ' raise',
159
- 'end'])
160
- expect(new_source).to eq(['begin',
161
- ' fail',
162
- 'rescue Exception',
163
- ' raise',
164
- 'end'].join("\n"))
165
- end
166
-
167
- it 'auto-corrects fail to raise when appropriate' do
168
- new_source = autocorrect_source(cop,
169
- ['begin',
170
- ' fail',
171
- 'rescue Exception',
172
- ' fail',
173
- 'end'])
174
- expect(new_source).to eq(['begin',
175
- ' fail',
176
- 'rescue Exception',
177
- ' raise',
178
- 'end'].join("\n"))
179
- end
180
- end
181
-
182
- context 'when enforced style is `raise`' do
183
- let(:cop_config) { { 'EnforcedStyle' => 'only_raise' } }
184
-
185
- it 'registers an offense for fail in begin section' do
186
- inspect_source(cop,
187
- ['begin',
188
- ' fail',
189
- 'rescue Exception',
190
- ' #do nothing',
191
- 'end'])
192
- expect(cop.offenses.size).to eq(1)
193
- expect(cop.messages)
194
- .to eq(['Always use `raise` to signal exceptions.'])
195
- end
196
-
197
- it 'registers an offense for fail in def body' do
198
- inspect_source(cop,
199
- ['def test',
200
- ' fail',
201
- 'rescue Exception',
202
- ' #do nothing',
203
- 'end'])
204
- expect(cop.offenses.size).to eq(1)
205
- expect(cop.messages)
206
- .to eq(['Always use `raise` to signal exceptions.'])
207
- end
208
-
209
- it 'registers an offense for fail in rescue section' do
210
- inspect_source(cop,
211
- ['begin',
212
- ' raise',
213
- 'rescue Exception',
214
- ' fail',
215
- 'end'])
216
- expect(cop.offenses.size).to eq(1)
217
- expect(cop.messages)
218
- .to eq(['Always use `raise` to signal exceptions.'])
219
- end
220
-
221
- it 'auto-corrects fail to raise always' do
222
- new_source = autocorrect_source(cop,
223
- ['begin',
224
- ' fail',
225
- 'rescue Exception',
226
- ' fail',
227
- 'end'])
228
- expect(new_source).to eq(['begin',
229
- ' raise',
230
- 'rescue Exception',
231
- ' raise',
232
- 'end'].join("\n"))
233
- end
234
- end
235
-
236
- context 'when enforced style is `fail`' do
237
- let(:cop_config) { { 'EnforcedStyle' => 'only_fail' } }
238
-
239
- it 'registers an offense for raise in begin section' do
240
- inspect_source(cop,
241
- ['begin',
242
- ' raise',
243
- 'rescue Exception',
244
- ' #do nothing',
245
- 'end'])
246
- expect(cop.offenses.size).to eq(1)
247
- expect(cop.messages)
248
- .to eq(['Always use `fail` to signal exceptions.'])
249
- end
250
-
251
- it 'registers an offense for raise in def body' do
252
- inspect_source(cop,
253
- ['def test',
254
- ' raise',
255
- 'rescue Exception',
256
- ' #do nothing',
257
- 'end'])
258
- expect(cop.offenses.size).to eq(1)
259
- expect(cop.messages)
260
- .to eq(['Always use `fail` to signal exceptions.'])
261
- end
262
-
263
- it 'registers an offense for raise in rescue section' do
264
- inspect_source(cop,
265
- ['begin',
266
- ' fail',
267
- 'rescue Exception',
268
- ' raise',
269
- 'end'])
270
- expect(cop.offenses.size).to eq(1)
271
- expect(cop.messages)
272
- .to eq(['Always use `fail` to signal exceptions.'])
273
- end
274
-
275
- it 'auto-corrects raise to fail always' do
276
- new_source = autocorrect_source(cop,
277
- ['begin',
278
- ' raise',
279
- 'rescue Exception',
280
- ' raise',
281
- 'end'])
282
- expect(new_source).to eq(['begin',
283
- ' fail',
284
- 'rescue Exception',
285
- ' fail',
286
- 'end'].join("\n"))
287
- end
288
- end
289
- end