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,18 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::MultilineTernaryOperator do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers offense for a multiline ternary operator expression' do
9
- inspect_source(cop, ['a = cond ?',
10
- ' b : c'])
11
- expect(cop.offenses.size).to eq(1)
12
- end
13
-
14
- it 'accepts a single line ternary operator expression' do
15
- inspect_source(cop, 'a = cond ? b : c')
16
- expect(cop.offenses).to be_empty
17
- end
18
- end
@@ -1,102 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::NegatedIf do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for if with exclamation point condition' do
9
- inspect_source(cop,
10
- ['if !a_condition',
11
- ' some_method',
12
- 'end',
13
- 'some_method if !a_condition'
14
- ])
15
- expect(cop.messages).to eq(
16
- ['Favor `unless` over `if` for negative ' \
17
- 'conditions.'] * 2)
18
- end
19
-
20
- it 'registers an offense for unless with exclamation point condition' do
21
- inspect_source(cop,
22
- ['unless !a_condition',
23
- ' some_method',
24
- 'end',
25
- 'some_method unless !a_condition'
26
- ])
27
- expect(cop.messages).to eq(['Favor `if` over `unless` for negative ' \
28
- 'conditions.'] * 2)
29
- end
30
-
31
- it 'registers an offense for if with "not" condition' do
32
- inspect_source(cop,
33
- ['if not a_condition',
34
- ' some_method',
35
- 'end',
36
- 'some_method if not a_condition'])
37
- expect(cop.messages).to eq(
38
- ['Favor `unless` over `if` for negative ' \
39
- 'conditions.'] * 2)
40
- expect(cop.offenses.map(&:line)).to eq([1, 4])
41
- end
42
-
43
- it 'accepts an if/else with negative condition' do
44
- inspect_source(cop,
45
- ['if !a_condition',
46
- ' some_method',
47
- 'else',
48
- ' something_else',
49
- 'end',
50
- 'if not a_condition',
51
- ' some_method',
52
- 'elsif other_condition',
53
- ' something_else',
54
- 'end'])
55
- expect(cop.offenses).to be_empty
56
- end
57
-
58
- it 'accepts an if where only part of the condition is negated' do
59
- inspect_source(cop,
60
- ['if !condition && another_condition',
61
- ' some_method',
62
- 'end',
63
- 'if not condition or another_condition',
64
- ' some_method',
65
- 'end',
66
- 'some_method if not condition or another_condition'])
67
- expect(cop.offenses).to be_empty
68
- end
69
-
70
- it 'is not confused by negated elsif' do
71
- inspect_source(cop,
72
- ['if test.is_a?(String)',
73
- ' 3',
74
- 'elsif test.is_a?(Array)',
75
- ' 2',
76
- 'elsif !test.nil?',
77
- ' 1',
78
- 'end'])
79
-
80
- expect(cop.offenses).to be_empty
81
- end
82
-
83
- it 'does not blow up for ternary ops' do
84
- inspect_source(cop, 'a ? b : c')
85
- expect(cop.offenses).to be_empty
86
- end
87
-
88
- it 'autocorrects by replacing if not with unless' do
89
- corrected = autocorrect_source(cop, 'something if !x.even?')
90
- expect(corrected).to eq 'something unless x.even?'
91
- end
92
-
93
- it 'autocorrects by replacing parenthesized if not with unless' do
94
- corrected = autocorrect_source(cop, 'something if (!x.even?)')
95
- expect(corrected).to eq 'something unless (x.even?)'
96
- end
97
-
98
- it 'autocorrects by replacing unless not with if' do
99
- corrected = autocorrect_source(cop, 'something unless !x.even?')
100
- expect(corrected).to eq 'something if x.even?'
101
- end
102
- end
@@ -1,64 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::NegatedWhile do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for while with exclamation point condition' do
9
- inspect_source(cop,
10
- ['while !a_condition',
11
- ' some_method',
12
- 'end',
13
- 'some_method while !a_condition'
14
- ])
15
- expect(cop.messages).to eq(
16
- ['Favor `until` over `while` for negative conditions.'] * 2)
17
- end
18
-
19
- it 'registers an offense for until with exclamation point condition' do
20
- inspect_source(cop,
21
- ['until !a_condition',
22
- ' some_method',
23
- 'end',
24
- 'some_method until !a_condition'
25
- ])
26
- expect(cop.messages)
27
- .to eq(['Favor `while` over `until` for negative conditions.'] * 2)
28
- end
29
-
30
- it 'registers an offense for while with "not" condition' do
31
- inspect_source(cop,
32
- ['while (not a_condition)',
33
- ' some_method',
34
- 'end',
35
- 'some_method while not a_condition'])
36
- expect(cop.messages).to eq(
37
- ['Favor `until` over `while` for negative conditions.'] * 2)
38
- expect(cop.offenses.map(&:line)).to eq([1, 4])
39
- end
40
-
41
- it 'accepts an while where only part of the condition is negated' do
42
- inspect_source(cop,
43
- ['while !a_condition && another_condition',
44
- ' some_method',
45
- 'end',
46
- 'while not a_condition or another_condition',
47
- ' some_method',
48
- 'end',
49
- 'some_method while not a_condition or other_cond'])
50
- expect(cop.messages).to be_empty
51
- end
52
-
53
- it 'autocorrects by replacing while not with until' do
54
- corrected = autocorrect_source(cop, ['something while !x.even?',
55
- 'something while(!x.even?)'])
56
- expect(corrected).to eq ['something until x.even?',
57
- 'something until(x.even?)'].join("\n")
58
- end
59
-
60
- it 'autocorrects by replacing until not with while' do
61
- corrected = autocorrect_source(cop, 'something until !x.even?')
62
- expect(corrected).to eq 'something while x.even?'
63
- end
64
- end
@@ -1,21 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::NestedTernaryOperator do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for a nested ternary operator expression' do
9
- inspect_source(cop, 'a ? (b ? b1 : b2) : a2')
10
- expect(cop.offenses.size).to eq(1)
11
- end
12
-
13
- it 'accepts a non-nested ternary operator within an if' do
14
- inspect_source(cop, ['a = if x',
15
- ' cond ? b : c',
16
- 'else',
17
- ' d',
18
- 'end'])
19
- expect(cop.offenses).to be_empty
20
- end
21
- end
@@ -1,301 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::Next, :config do
6
- subject(:cop) { described_class.new(config) }
7
- let(:cop_config) { { 'MinBodyLength' => 1 } }
8
-
9
- it 'finds all kind of loops with condition at the end of the iteration' do
10
- # TODO: Split this long example into multiple examples.
11
- inspect_source(cop,
12
- ['3.downto(1) do',
13
- ' if o == 1',
14
- ' puts o',
15
- ' end',
16
- 'end',
17
- '',
18
- '[].each do |o|',
19
- ' if o == 1',
20
- ' puts o',
21
- ' end',
22
- 'end',
23
- '',
24
- '[].each_with_object({}) do |o, a|',
25
- ' if o == 1',
26
- ' a[o] = {}',
27
- ' end',
28
- 'end',
29
- '',
30
- 'for o in 1..3 do',
31
- ' if o == 1',
32
- ' puts o',
33
- ' end',
34
- 'end',
35
- '',
36
- 'loop do',
37
- ' if o == 1',
38
- ' puts o',
39
- ' end',
40
- 'end',
41
- '',
42
- '{}.map do |k, v|',
43
- ' if v == 1',
44
- ' puts k',
45
- ' end',
46
- 'end',
47
- '',
48
- '3.times do |o|',
49
- ' if o == 1',
50
- ' puts o',
51
- ' end',
52
- 'end',
53
- '',
54
- 'until false',
55
- ' if o == 1',
56
- ' puts o',
57
- ' end',
58
- 'end',
59
- '',
60
- 'while true',
61
- ' if o == 1',
62
- ' puts o',
63
- ' end',
64
- 'end'])
65
- expect(cop.offenses.size).to eq(9)
66
- expect(cop.offenses.map(&:line).sort).to eq([1, 7, 13, 19, 25, 31, 37, 43,
67
- 49])
68
- expect(cop.messages) .to eq(['Use `next` to skip iteration.'] * 9)
69
- expect(cop.highlights).to eq(%w(downto each each_with_object for loop map
70
- times until while))
71
- end
72
-
73
- it 'finds loop with condition at the end in different styles' do
74
- inspect_source(cop,
75
- ['[].each do |o|',
76
- ' if o == 1',
77
- ' puts o',
78
- ' end',
79
- 'end',
80
- '',
81
- '[].each do |o|',
82
- ' puts o',
83
- ' if o == 1',
84
- ' puts o',
85
- ' end',
86
- 'end',
87
- '',
88
- '[].each do |o|',
89
- ' unless o == 1',
90
- ' puts o',
91
- ' end',
92
- 'end'])
93
-
94
- expect(cop.offenses.size).to eq(3)
95
- expect(cop.offenses.map(&:line).sort).to eq([1, 7, 14])
96
- expect(cop.messages)
97
- .to eq(['Use `next` to skip iteration.'] * 3)
98
- expect(cop.highlights).to eq(['each'] * 3)
99
- end
100
-
101
- it 'ignores empty blocks' do
102
- inspect_source(cop,
103
- ['[].each do', 'end',
104
- '[].each { }'])
105
- expect(cop.offenses.size).to eq(0)
106
- end
107
-
108
- it 'ignores loops with conditional break' do
109
- inspect_source(cop,
110
- ['loop do',
111
- " puts ''",
112
- ' break if o == 1',
113
- 'end',
114
- '',
115
- 'loop do',
116
- ' break if o == 1',
117
- 'end',
118
- '',
119
- 'loop do',
120
- " puts ''",
121
- ' break unless o == 1',
122
- 'end',
123
- '',
124
- 'loop do',
125
- ' break unless o == 1',
126
- 'end',
127
- '',
128
- 'loop do',
129
- ' if o == 1',
130
- ' break',
131
- ' end',
132
- 'end'])
133
- expect(cop.offenses.size).to eq(0)
134
- end
135
-
136
- it 'ignores loops with conditional return' do
137
- inspect_source(cop,
138
- ['loop do',
139
- " puts ''",
140
- ' return if o == 1',
141
- 'end',
142
- '',
143
- 'loop do',
144
- " puts ''",
145
- ' if o == 1',
146
- ' return',
147
- ' end',
148
- 'end'])
149
- expect(cop.offenses.size).to eq(0)
150
- end
151
-
152
- context 'EnforcedStyle: skip_modifier_ifs' do
153
- let(:cop_config) do
154
- { 'EnforcedStyle' => 'skip_modifier_ifs' }
155
- end
156
-
157
- it 'ignores modifier ifs' do
158
- inspect_source(cop,
159
- ['[].each do |o|',
160
- ' puts o if o == 1',
161
- 'end',
162
- '',
163
- '[].each do |o|',
164
- ' puts o unless o == 1',
165
- 'end'])
166
-
167
- expect(cop.offenses.size).to eq(0)
168
- end
169
- end
170
-
171
- context 'EnforcedStyle: always' do
172
- let(:cop_config) do
173
- { 'EnforcedStyle' => 'always' }
174
- end
175
-
176
- it 'does not ignore modifier ifs' do
177
- inspect_source(cop,
178
- ['[].each do |o|',
179
- ' puts o if o == 1',
180
- 'end',
181
- '',
182
- '[].each do |o|',
183
- ' puts o unless o == 1',
184
- 'end'])
185
-
186
- expect(cop.offenses.size).to eq(2)
187
- expect(cop.offenses.map(&:line).sort).to eq([1, 5])
188
- expect(cop.messages)
189
- .to eq(['Use `next` to skip iteration.'] * 2)
190
- expect(cop.highlights).to eq(['each'] * 2)
191
- end
192
- end
193
-
194
- it 'ignores loops with conditions at the end with else' do
195
- inspect_source(cop,
196
- ['[].each do |o|',
197
- ' if o == 1',
198
- ' puts o',
199
- ' else',
200
- " puts 'no'",
201
- ' end',
202
- 'end',
203
- '',
204
- '[].each do |o|',
205
- ' puts o',
206
- ' if o == 1',
207
- ' puts o',
208
- ' else',
209
- " puts 'no'",
210
- ' end',
211
- 'end',
212
- '',
213
- '[].each do |o|',
214
- ' unless o == 1',
215
- ' puts o',
216
- ' else',
217
- " puts 'no'",
218
- ' end',
219
- 'end'])
220
-
221
- expect(cop.offenses.size).to eq(0)
222
- end
223
-
224
- it 'ignores loops with conditions at the end with ternary op' do
225
- inspect_source(cop,
226
- ['[].each do |o|',
227
- ' o == x ? y : z',
228
- 'end'
229
- ])
230
-
231
- expect(cop.offenses.size).to eq(0)
232
- end
233
-
234
- # https://github.com/bbatsov/rubocop/issues/1115
235
- it 'ignores super nodes' do
236
- inspect_source(cop,
237
- ['def foo',
238
- ' super(a, a) { a }',
239
- 'end'])
240
- expect(cop.offenses.size).to eq(0)
241
- end
242
-
243
- it 'does not blow up on empty body until block' do
244
- inspect_source(cop, 'until sup; end')
245
- expect(cop.offenses.size).to eq(0)
246
- end
247
-
248
- it 'does not crash with an empty body branch' do
249
- inspect_source(cop,
250
- ['loop do',
251
- ' if true',
252
- ' end',
253
- 'end'])
254
- expect(cop.offenses).to be_empty
255
- end
256
-
257
- context 'MinBodyLength: 3' do
258
- let(:cop_config) do
259
- { 'MinBodyLength' => 3 }
260
- end
261
-
262
- it 'accepts if whose body has 1 line' do
263
- inspect_source(cop,
264
- ['arr.each do |e|',
265
- ' if something',
266
- ' work',
267
- ' end',
268
- 'end'])
269
- expect(cop.offenses).to be_empty
270
- end
271
-
272
- it 'reports an offense for if whose body has 3 lines' do
273
- inspect_source(cop,
274
- ['arr.each do |e|',
275
- ' if something',
276
- ' work',
277
- ' work',
278
- ' work',
279
- ' end',
280
- 'end'])
281
- expect(cop.offenses.size).to eq(1)
282
- expect(cop.highlights).to eq(['each'])
283
- end
284
- end
285
-
286
- context 'Invalid MinBodyLength' do
287
- let(:cop_config) do
288
- { 'MinBodyLength' => -2 }
289
- end
290
-
291
- it 'fails with an error' do
292
- source = ['loop do',
293
- ' if o == 1',
294
- ' puts o',
295
- ' end',
296
- 'end']
297
- expect { inspect_source(cop, source) }
298
- .to raise_error('MinBodyLength needs to be a positive integer!')
299
- end
300
- end
301
- end