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,65 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Lint::ElseLayout do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for expr on same line as else' do
9
- inspect_source(cop,
10
- ['if something',
11
- ' test',
12
- 'else ala',
13
- ' something',
14
- ' test',
15
- 'end'
16
- ])
17
- expect(cop.offenses.size).to eq(1)
18
- end
19
-
20
- it 'accepts proper else' do
21
- inspect_source(cop,
22
- ['if something',
23
- ' test',
24
- 'else',
25
- ' something',
26
- ' test',
27
- 'end'
28
- ])
29
- expect(cop.offenses).to be_empty
30
- end
31
-
32
- it 'accepts single-expr else regardless of layout' do
33
- inspect_source(cop,
34
- ['if something',
35
- ' test',
36
- 'else bala',
37
- 'end'
38
- ])
39
- expect(cop.offenses).to be_empty
40
- end
41
-
42
- it 'can handle elsifs' do
43
- inspect_source(cop,
44
- ['if something',
45
- ' test',
46
- 'elsif something',
47
- ' bala',
48
- 'else ala',
49
- ' something',
50
- ' test',
51
- 'end'
52
- ])
53
- expect(cop.offenses.size).to eq(1)
54
- end
55
-
56
- it 'handles ternary ops' do
57
- inspect_source(cop, 'x ? a : b')
58
- expect(cop.offenses).to be_empty
59
- end
60
-
61
- it 'handles modifier forms' do
62
- inspect_source(cop, 'x if something')
63
- expect(cop.offenses).to be_empty
64
- end
65
- end
@@ -1,27 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Lint::EmptyEnsure do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for empty ensure' do
9
- inspect_source(cop,
10
- ['begin',
11
- ' something',
12
- 'ensure',
13
- 'end'])
14
- expect(cop.offenses.size).to eq(1)
15
- end
16
-
17
- it 'does not register an offense for non-empty ensure' do
18
- inspect_source(cop,
19
- ['begin',
20
- ' something',
21
- ' return',
22
- 'ensure',
23
- ' file.close',
24
- 'end'])
25
- expect(cop.offenses).to be_empty
26
- end
27
- end
@@ -1,18 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Lint::EmptyInterpolation do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for #{} in interpolation' do
9
- inspect_source(cop, '"this is the #{}"')
10
- expect(cop.offenses.size).to eq(1)
11
- expect(cop.highlights).to eq(['#{}'])
12
- end
13
-
14
- it 'accepts non-empty interpolation' do
15
- inspect_source(cop, '"this is #{top} silly"')
16
- expect(cop.offenses).to be_empty
17
- end
18
- end
@@ -1,91 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Lint::EndAlignment, :config do
6
- subject(:cop) { described_class.new(config) }
7
- let(:cop_config) { { 'AlignWith' => 'keyword' } }
8
- let(:opposite) do
9
- cop_config['AlignWith'] == 'keyword' ? 'variable' : 'keyword'
10
- end
11
-
12
- include_examples 'misaligned', '', 'class', 'Test', ' end'
13
- include_examples 'misaligned', '', 'module', 'Test', ' end'
14
- include_examples 'misaligned', '', 'if', 'test', ' end'
15
- include_examples 'misaligned', '', 'unless', 'test', ' end'
16
- include_examples 'misaligned', '', 'while', 'test', ' end'
17
- include_examples 'misaligned', '', 'until', 'test', ' end'
18
-
19
- include_examples 'aligned', 'class', 'Test', 'end'
20
- include_examples 'aligned', 'module', 'Test', 'end'
21
- include_examples 'aligned', 'if', 'test', 'end'
22
- include_examples 'aligned', 'unless', 'test', 'end'
23
- include_examples 'aligned', 'while', 'test', 'end'
24
- include_examples 'aligned', 'until', 'test', 'end'
25
-
26
- it 'can handle ternary if' do
27
- inspect_source(cop, 'a = cond ? x : y')
28
- expect(cop.offenses).to be_empty
29
- end
30
-
31
- it 'can handle modifier if' do
32
- inspect_source(cop, 'a = x if cond')
33
- expect(cop.offenses).to be_empty
34
- end
35
-
36
- it 'registers an offense for correct + opposite' do
37
- inspect_source(cop, ['x = if a',
38
- ' a1',
39
- ' end',
40
- 'y = if b',
41
- ' b1',
42
- 'end'])
43
- expect(cop.offenses.size).to eq(1)
44
- expect(cop.messages.first)
45
- .to eq('`end` at 6, 0 is not aligned with `if` at 4, 4')
46
- expect(cop.highlights.first).to eq('end')
47
- expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
48
- end
49
-
50
- context 'regarding assignment' do
51
- context 'when AlignWith is keyword' do
52
- include_examples 'misaligned', 'var = ', 'if', 'test', 'end'
53
- include_examples 'misaligned', 'var = ', 'unless', 'test', 'end'
54
- include_examples 'misaligned', 'var = ', 'while', 'test', 'end'
55
- include_examples 'misaligned', 'var = ', 'until', 'test', 'end'
56
-
57
- include_examples 'aligned', 'var = if', 'test', ' end'
58
- include_examples 'aligned', 'var = unless', 'test', ' end'
59
- include_examples 'aligned', 'var = while', 'test', ' end'
60
- include_examples 'aligned', 'var = until', 'test', ' end'
61
- end
62
-
63
- context 'when AlignWith is variable' do
64
- let(:cop_config) { { 'AlignWith' => 'variable' } }
65
-
66
- include_examples 'aligned', 'var = if', 'test', 'end'
67
- include_examples 'aligned', 'var = unless', 'test', 'end'
68
- include_examples 'aligned', 'var = while', 'test', 'end'
69
- include_examples 'aligned', 'var = until', 'test', 'end'
70
- include_examples 'aligned', 'var = until', 'test', 'end.abc.join("")'
71
- include_examples 'aligned', 'var = until', 'test', 'end.abc.tap {}'
72
-
73
- include_examples 'misaligned', '', 'var = if', 'test', ' end'
74
- include_examples 'misaligned', '', 'var = unless', 'test', ' end'
75
- include_examples 'misaligned', '', 'var = while', 'test', ' end'
76
- include_examples 'misaligned', '', 'var = until', 'test', ' end'
77
- include_examples 'misaligned', '', 'var = until', 'test', ' end.j'
78
-
79
- include_examples 'aligned', '@var = if', 'test', 'end'
80
- include_examples 'aligned', '@@var = if', 'test', 'end'
81
- include_examples 'aligned', '$var = if', 'test', 'end'
82
- include_examples 'aligned', 'CNST = if', 'test', 'end'
83
- include_examples 'aligned', 'a, b = if', 'test', 'end'
84
- include_examples 'aligned', 'var ||= if', 'test', 'end'
85
- include_examples 'aligned', 'var &&= if', 'test', 'end'
86
- include_examples 'aligned', 'var += if', 'test', 'end'
87
- include_examples 'aligned', 'h[k] = if', 'test', 'end'
88
- include_examples 'aligned', 'h.k = if', 'test', 'end'
89
- end
90
- end
91
- end
@@ -1,29 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Lint::EndInMethod do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'reports an offense for def with an END inside' do
9
- src = ['def test',
10
- ' END { something }',
11
- 'end']
12
- inspect_source(cop, src)
13
- expect(cop.offenses.size).to eq(1)
14
- end
15
-
16
- it 'reports an offense for defs with an END inside' do
17
- src = ['def self.test',
18
- ' END { something }',
19
- 'end']
20
- inspect_source(cop, src)
21
- expect(cop.offenses.size).to eq(1)
22
- end
23
-
24
- it 'accepts END outside of def(s)' do
25
- src = 'END { something }'
26
- inspect_source(cop, src)
27
- expect(cop.offenses).to be_empty
28
- end
29
- end
@@ -1,39 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Lint::EnsureReturn do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for return in ensure' do
9
- inspect_source(cop,
10
- ['begin',
11
- ' something',
12
- 'ensure',
13
- ' file.close',
14
- ' return',
15
- 'end'])
16
- expect(cop.offenses.size).to eq(1)
17
- end
18
-
19
- it 'does not register an offense for return outside ensure' do
20
- inspect_source(cop,
21
- ['begin',
22
- ' something',
23
- ' return',
24
- 'ensure',
25
- ' file.close',
26
- 'end'])
27
- expect(cop.offenses).to be_empty
28
- end
29
-
30
- it 'does not check when ensure block has no body' do
31
- expect do
32
- inspect_source(cop,
33
- ['begin',
34
- ' something',
35
- 'ensure',
36
- 'end'])
37
- end.to_not raise_exception
38
- end
39
- end
@@ -1,33 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Lint::Eval do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for eval as function' do
9
- inspect_source(cop,
10
- 'eval(something)')
11
- expect(cop.offenses.size).to eq(1)
12
- expect(cop.highlights) .to eq(['eval'])
13
- end
14
-
15
- it 'registers an offense for eval as command' do
16
- inspect_source(cop,
17
- 'eval something')
18
- expect(cop.offenses.size).to eq(1)
19
- expect(cop.highlights) .to eq(['eval'])
20
- end
21
-
22
- it 'does not register an offense for eval as variable' do
23
- inspect_source(cop,
24
- 'eval = something')
25
- expect(cop.offenses).to be_empty
26
- end
27
-
28
- it 'does not register an offense for eval as method' do
29
- inspect_source(cop,
30
- 'something.eval')
31
- expect(cop.offenses).to be_empty
32
- end
33
- end
@@ -1,30 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Lint::HandleExceptions do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for empty rescue block' do
9
- inspect_source(cop,
10
- ['begin',
11
- ' something',
12
- 'rescue',
13
- ' #do nothing',
14
- 'end'])
15
- expect(cop.offenses.size).to eq(1)
16
- expect(cop.messages)
17
- .to eq(['Do not suppress exceptions.'])
18
- end
19
-
20
- it 'does not register an offense for rescue with body' do
21
- inspect_source(cop,
22
- ['begin',
23
- ' something',
24
- ' return',
25
- 'rescue',
26
- ' file.close',
27
- 'end'])
28
- expect(cop.offenses).to be_empty
29
- end
30
- end
@@ -1,33 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Lint::InvalidCharacterLiteral do
6
- subject(:cop) { described_class.new }
7
-
8
- # Is there a way to emit this warning without syntax error?
9
- #
10
- # $ ruby -w
11
- # p(? )
12
- # -:1: warning: invalid character syntax; use ?\s
13
- # -:1: syntax error, unexpected '?', expecting ')'
14
- # p(? )
15
- # ^
16
- #
17
- # https://github.com/ruby/ruby/blob/v2_1_0/parse.y#L7276
18
- # https://github.com/whitequark/parser/blob/v2.1.2/lib/parser/lexer.rl#L1660
19
- context 'with a non-escaped whitespace character literal' do
20
- let(:source) { 'p(? )' }
21
-
22
- it 'registers an offense' do
23
- pending 'Is there a way to emit this warning without syntax errors?'
24
-
25
- inspect_source(cop, source)
26
-
27
- expect(cop.offenses.size).to eq(1)
28
- expect(cop.offenses.first.message)
29
- .to eq('Invalid character literal; use ?\s')
30
- expect(cop.highlights).to eq([' '])
31
- end
32
- end
33
- end
@@ -1,172 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Lint::LiteralInCondition do
6
- subject(:cop) { described_class.new }
7
-
8
- %w(1 2.0 [1] {}).each do |lit|
9
- it "registers an offense for literal #{lit} in if" do
10
- inspect_source(cop,
11
- ["if #{lit}",
12
- ' top',
13
- 'end'
14
- ])
15
- expect(cop.offenses.size).to eq(1)
16
- end
17
-
18
- it "registers an offense for literal #{lit} in while" do
19
- inspect_source(cop,
20
- ["while #{lit}",
21
- ' top',
22
- 'end'
23
- ])
24
- expect(cop.offenses.size).to eq(1)
25
- end
26
-
27
- it "registers an offense for literal #{lit} in post-loop while" do
28
- inspect_source(cop,
29
- ['begin',
30
- ' top',
31
- "end while(#{lit})"
32
- ])
33
- expect(cop.offenses.size).to eq(1)
34
- end
35
-
36
- it "registers an offense for literal #{lit} in until" do
37
- inspect_source(cop,
38
- ["until #{lit}",
39
- ' top',
40
- 'end'
41
- ])
42
- expect(cop.offenses.size).to eq(1)
43
- end
44
-
45
- it "registers an offense for literal #{lit} in post-loop until" do
46
- inspect_source(cop,
47
- ['begin',
48
- ' top',
49
- "end until #{lit}"
50
- ])
51
- expect(cop.offenses.size).to eq(1)
52
- end
53
-
54
- it "registers an offense for literal #{lit} in case" do
55
- inspect_source(cop,
56
- ["case #{lit}",
57
- 'when x then top',
58
- 'end'
59
- ])
60
- expect(cop.offenses.size).to eq(1)
61
- end
62
-
63
- it "registers an offense for literal #{lit} in a when " \
64
- 'of a case without anything after case keyword' do
65
- inspect_source(cop,
66
- ['case',
67
- "when #{lit} then top",
68
- 'end'])
69
- expect(cop.offenses.size).to eq(1)
70
- end
71
-
72
- it "accepts literal #{lit} in a when of a case with " \
73
- 'something after case keyword' do
74
- inspect_source(cop,
75
- ['case x',
76
- "when #{lit} then top",
77
- 'end'
78
- ])
79
- expect(cop.offenses).to be_empty
80
- end
81
-
82
- it "registers an offense for literal #{lit} in &&" do
83
- inspect_source(cop,
84
- ["if x && #{lit}",
85
- ' top',
86
- 'end'
87
- ])
88
- expect(cop.offenses.size).to eq(1)
89
- end
90
-
91
- it "registers an offense for literal #{lit} in complex cond" do
92
- inspect_source(cop,
93
- ["if x && !(a && #{lit}) && y && z",
94
- ' top',
95
- 'end'
96
- ])
97
- expect(cop.offenses.size).to eq(1)
98
- end
99
-
100
- it "registers an offense for literal #{lit} in !" do
101
- inspect_source(cop,
102
- ["if !#{lit}",
103
- ' top',
104
- 'end'
105
- ])
106
- expect(cop.offenses.size).to eq(1)
107
- end
108
-
109
- it "registers an offense for literal #{lit} in complex !" do
110
- inspect_source(cop,
111
- ["if !(x && (y && #{lit}))",
112
- ' top',
113
- 'end'
114
- ])
115
- expect(cop.offenses.size).to eq(1)
116
- end
117
-
118
- it "accepts literal #{lit} if it's not an and/or operand" do
119
- inspect_source(cop,
120
- ["if test(#{lit})",
121
- ' top',
122
- 'end'
123
- ])
124
- expect(cop.offenses).to be_empty
125
- end
126
-
127
- it "accepts literal #{lit} in non-toplevel and/or" do
128
- inspect_source(cop,
129
- ["if (a || #{lit}).something",
130
- ' top',
131
- 'end'
132
- ])
133
- expect(cop.offenses).to be_empty
134
- end
135
- end
136
-
137
- it 'accepts array literal in case, if it has non-literal elements' do
138
- inspect_source(cop,
139
- ['case [1, 2, x]',
140
- 'when [1, 2, 5] then top',
141
- 'end'
142
- ])
143
- expect(cop.offenses).to be_empty
144
- end
145
-
146
- it 'accepts array literal in case, if it has non-literal elements' do
147
- inspect_source(cop,
148
- ['case [1, 2, [x, 1]]',
149
- 'when [1, 2, 5] then top',
150
- 'end'
151
- ])
152
- expect(cop.offenses).to be_empty
153
- end
154
-
155
- it 'registers an offense for case with a primitive array condition' do
156
- inspect_source(cop,
157
- ['case [1, 2, [3, 4]]',
158
- 'when [1, 2, 5] then top',
159
- 'end'
160
- ])
161
- expect(cop.offenses.size).to eq(1)
162
- end
163
-
164
- it 'accepts dstr literal in case' do
165
- inspect_source(cop,
166
- ['case "#{x}"',
167
- 'when [1, 2, 5] then top',
168
- 'end'
169
- ])
170
- expect(cop.offenses).to be_empty
171
- end
172
- end