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,31 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Lint::LiteralInInterpolation do
6
- subject(:cop) { described_class.new }
7
-
8
- %w(1 2.0 [1] {}).each do |lit|
9
- it "registers an offense for #{lit} in interpolation" do
10
- inspect_source(cop,
11
- "\"this is the \#{#{lit}}\"")
12
- expect(cop.offenses.size).to eq(1)
13
- end
14
-
15
- it "registers an offense only for final #{lit} in interpolation" do
16
- inspect_source(cop,
17
- "\"this is the \#{#{lit};#{lit}}\"")
18
- expect(cop.offenses.size).to eq(1)
19
- end
20
- end
21
-
22
- it 'accepts empty interpolation' do
23
- inspect_source(cop, '"this is #{} silly"')
24
- expect(cop.offenses).to be_empty
25
- end
26
-
27
- it 'accepts strings like __FILE__' do
28
- inspect_source(cop, '"this is #{__FILE__} silly"')
29
- expect(cop.offenses).to be_empty
30
- end
31
- end
@@ -1,27 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Lint::Loop do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for begin/end/while' do
9
- inspect_source(cop, 'begin something; top; end while test')
10
- expect(cop.offenses.size).to eq(1)
11
- end
12
-
13
- it 'registers an offense for begin/end/until' do
14
- inspect_source(cop, 'begin something; top; end until test')
15
- expect(cop.offenses.size).to eq(1)
16
- end
17
-
18
- it 'accepts normal while' do
19
- inspect_source(cop, 'while test; one; two; end')
20
- expect(cop.offenses).to be_empty
21
- end
22
-
23
- it 'accepts normal until' do
24
- inspect_source(cop, 'until test; one; two; end')
25
- expect(cop.offenses).to be_empty
26
- end
27
- end
@@ -1,57 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Lint::ParenthesesAsGroupedExpression do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for method call with space before the ' \
9
- 'parenthesis' do
10
- inspect_source(cop, 'a.func (x)')
11
- expect(cop.offenses.size).to eq(1)
12
- end
13
-
14
- it 'registers an offense for predicate method call with space ' \
15
- 'before the parenthesis' do
16
- inspect_source(cop, 'is? (x)')
17
- expect(cop.offenses.size).to eq(1)
18
- end
19
-
20
- it 'registers an offense for math expression' do
21
- inspect_source(cop, 'puts (2 + 3) * 4')
22
- expect(cop.offenses.size).to eq(1)
23
- end
24
-
25
- it 'accepts a method call without arguments' do
26
- inspect_source(cop, 'func')
27
- expect(cop.offenses).to be_empty
28
- end
29
-
30
- it 'accepts a method call with arguments but no parentheses' do
31
- inspect_source(cop, 'puts x')
32
- expect(cop.offenses).to be_empty
33
- end
34
-
35
- it 'accepts a chain of method calls' do
36
- inspect_source(cop, ['a.b',
37
- 'a.b 1',
38
- 'a.b(1)'])
39
- expect(cop.offenses).to be_empty
40
- end
41
-
42
- it 'accepts method with parens as arg to method without' do
43
- inspect_source(cop, 'a b(c)')
44
- expect(cop.offenses).to be_empty
45
- end
46
-
47
- it 'accepts an operator call with argument in parentheses' do
48
- inspect_source(cop, ['a % (b + c)',
49
- 'a.b = (c == d)'])
50
- expect(cop.offenses).to be_empty
51
- end
52
-
53
- it 'accepts a space inside opening paren followed by left paren' do
54
- inspect_source(cop, 'a( (b) )')
55
- expect(cop.offenses).to be_empty
56
- end
57
- end
@@ -1,82 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Lint::RequireParentheses do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for missing parentheses around expression with ' \
9
- '&& operator' do
10
- inspect_source(cop, ["if day.is? 'monday' && month == :jan",
11
- ' foo',
12
- 'end'])
13
- expect(cop.highlights).to eq(["day.is? 'monday' && month == :jan"])
14
- expect(cop.messages)
15
- .to eq(['Use parentheses in the method call to avoid confusion about ' \
16
- 'precedence.'])
17
- end
18
-
19
- it 'registers an offense for missing parentheses around expression with ' \
20
- '|| operator' do
21
- inspect_source(cop, "day_is? 'tuesday' || true")
22
- expect(cop.highlights).to eq(["day_is? 'tuesday' || true"])
23
- end
24
-
25
- it 'registers an offense for missing parentheses around expression in ' \
26
- 'ternary' do
27
- inspect_source(cop, "wd.include? 'tuesday' && true == true ? a : b")
28
- expect(cop.highlights).to eq(["wd.include? 'tuesday' && true == true"])
29
- end
30
-
31
- it 'accepts missing parentheses around expression with + operator' do
32
- inspect_source(cop, ["if day_is? 'tuesday' + rest",
33
- 'end'])
34
- expect(cop.offenses).to be_empty
35
- end
36
-
37
- it 'accepts method calls without parentheses followed by keyword and/or' do
38
- inspect_source(cop, ["if day.is? 'tuesday' and month == :jan",
39
- 'end',
40
- "if day.is? 'tuesday' or month == :jan",
41
- 'end'])
42
- expect(cop.offenses).to be_empty
43
- end
44
-
45
- it 'accepts method calls that are all operations' do
46
- inspect_source(cop, ['if current_level == max + 1',
47
- 'end'])
48
- expect(cop.offenses).to be_empty
49
- end
50
-
51
- it 'accepts condition that is not a call' do
52
- inspect_source(cop, ['if @debug',
53
- 'end'])
54
- expect(cop.offenses).to be_empty
55
- end
56
-
57
- it 'accepts parentheses around expression with boolean operator' do
58
- inspect_source(cop, ["if day.is?('tuesday' && true == true)",
59
- 'end'])
60
- expect(cop.offenses).to be_empty
61
- end
62
-
63
- it 'accepts method call with parentheses in ternary' do
64
- inspect_source(cop, "wd.include?('tuesday' && true == true) ? a : b")
65
- expect(cop.offenses).to be_empty
66
- end
67
-
68
- it 'accepts missing parentheses when method is not a predicate' do
69
- inspect_source(cop, "weekdays.foo 'tuesday' && true == true")
70
- expect(cop.offenses).to be_empty
71
- end
72
-
73
- it 'accepts calls to methods that are setters' do
74
- inspect_source(cop, 's.version = @version || ">= 1.8.5"')
75
- expect(cop.offenses).to be_empty
76
- end
77
-
78
- it 'accepts calls to methods that are operators' do
79
- inspect_source(cop, 'a[b || c]')
80
- expect(cop.offenses).to be_empty
81
- end
82
- end
@@ -1,123 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Lint::RescueException do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for rescue from Exception' do
9
- inspect_source(cop,
10
- ['begin',
11
- ' something',
12
- 'rescue Exception',
13
- ' #do nothing',
14
- 'end'])
15
- expect(cop.offenses.size).to eq(1)
16
- end
17
-
18
- it 'registers an offense for rescue with ::Exception' do
19
- inspect_source(cop,
20
- ['begin',
21
- ' something',
22
- 'rescue ::Exception',
23
- ' #do nothing',
24
- 'end'])
25
- expect(cop.offenses.size).to eq(1)
26
- end
27
-
28
- it 'registers an offense for rescue with StandardError, Exception' do
29
- inspect_source(cop,
30
- ['begin',
31
- ' something',
32
- 'rescue StandardError, Exception',
33
- ' #do nothing',
34
- 'end'])
35
- expect(cop.offenses.size).to eq(1)
36
- end
37
-
38
- it 'registers an offense for rescue with Exception => e' do
39
- inspect_source(cop,
40
- ['begin',
41
- ' something',
42
- 'rescue Exception => e',
43
- ' #do nothing',
44
- 'end'])
45
- expect(cop.offenses.size).to eq(1)
46
- end
47
-
48
- it 'does not register an offense for rescue with no class' do
49
- inspect_source(cop,
50
- ['begin',
51
- ' something',
52
- ' return',
53
- 'rescue',
54
- ' file.close',
55
- 'end'])
56
- expect(cop.offenses).to be_empty
57
- end
58
-
59
- it 'does not register an offense for rescue with no class and => e' do
60
- inspect_source(cop,
61
- ['begin',
62
- ' something',
63
- ' return',
64
- 'rescue => e',
65
- ' file.close',
66
- 'end'])
67
- expect(cop.offenses).to be_empty
68
- end
69
-
70
- it 'does not register an offense for rescue with other class' do
71
- inspect_source(cop,
72
- ['begin',
73
- ' something',
74
- ' return',
75
- 'rescue ArgumentError => e',
76
- ' file.close',
77
- 'end'])
78
- expect(cop.offenses).to be_empty
79
- end
80
-
81
- it 'does not register an offense for rescue with other classes' do
82
- inspect_source(cop,
83
- ['begin',
84
- ' something',
85
- ' return',
86
- 'rescue EOFError, ArgumentError => e',
87
- ' file.close',
88
- 'end'])
89
- expect(cop.offenses).to be_empty
90
- end
91
-
92
- it 'does not register an offense for rescue with a module prefix' do
93
- inspect_source(cop,
94
- ['begin',
95
- ' something',
96
- ' return',
97
- 'rescue Test::Exception => e',
98
- ' file.close',
99
- 'end'])
100
- expect(cop.offenses).to be_empty
101
- end
102
-
103
- it 'does not crash when the splat operator is used in a rescue' do
104
- inspect_source(cop,
105
- ['ERRORS = [Exception]',
106
- 'begin',
107
- ' a = 3 / 0',
108
- 'rescue *ERRORS',
109
- ' puts e',
110
- 'end'])
111
- expect(cop.offenses).to be_empty
112
- end
113
-
114
- it 'does not crash when the namespace of a rescued class is in a local ' \
115
- 'variable' do
116
- inspect_source(cop,
117
- ['adapter = current_adapter',
118
- 'begin',
119
- 'rescue adapter::ParseError',
120
- 'end'])
121
- expect(cop.offenses).to be_empty
122
- end
123
- end
@@ -1,237 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Lint::ShadowingOuterLocalVariable do
6
- subject(:cop) { described_class.new }
7
-
8
- context 'when a block argument has same name ' \
9
- 'as an outer scope variable' do
10
- let(:source) do
11
- [
12
- 'def some_method',
13
- ' foo = 1',
14
- ' puts foo',
15
- ' 1.times do |foo|',
16
- ' end',
17
- 'end'
18
- ]
19
- end
20
-
21
- it 'registers an offense' do
22
- inspect_source(cop, source)
23
- expect(cop.offenses.size).to eq(1)
24
- expect(cop.offenses.first.message)
25
- .to eq('Shadowing outer local variable - `foo`.')
26
- expect(cop.offenses.first.line).to eq(4)
27
- end
28
-
29
- include_examples 'mimics MRI 2.1'
30
- end
31
-
32
- context 'when a splat block argument has same name ' \
33
- 'as an outer scope variable' do
34
- let(:source) do
35
- [
36
- 'def some_method',
37
- ' foo = 1',
38
- ' puts foo',
39
- ' 1.times do |*foo|',
40
- ' end',
41
- 'end'
42
- ]
43
- end
44
-
45
- it 'registers an offense' do
46
- inspect_source(cop, source)
47
- expect(cop.offenses.size).to eq(1)
48
- expect(cop.offenses.first.message)
49
- .to eq('Shadowing outer local variable - `foo`.')
50
- expect(cop.offenses.first.line).to eq(4)
51
- end
52
-
53
- include_examples 'mimics MRI 2.1'
54
- end
55
-
56
- context 'when a block block argument has same name ' \
57
- 'as an outer scope variable' do
58
- let(:source) do
59
- [
60
- 'def some_method',
61
- ' foo = 1',
62
- ' puts foo',
63
- ' proc_taking_block = proc do |&foo|',
64
- ' end',
65
- ' proc_taking_block.call do',
66
- ' end',
67
- 'end'
68
- ]
69
- end
70
-
71
- it 'registers an offense' do
72
- inspect_source(cop, source)
73
- expect(cop.offenses.size).to eq(1)
74
- expect(cop.offenses.first.message)
75
- .to eq('Shadowing outer local variable - `foo`.')
76
- expect(cop.offenses.first.line).to eq(4)
77
- end
78
-
79
- include_examples 'mimics MRI 2.1'
80
- end
81
-
82
- context 'when a block local variable has same name ' \
83
- 'as an outer scope variable' do
84
- let(:source) do
85
- [
86
- 'def some_method',
87
- ' foo = 1',
88
- ' puts foo',
89
- ' 1.times do |i; foo|',
90
- ' puts foo',
91
- ' end',
92
- 'end'
93
- ]
94
- end
95
-
96
- it 'registers an offense' do
97
- inspect_source(cop, source)
98
- expect(cop.offenses.size).to eq(1)
99
- expect(cop.offenses.first.message)
100
- .to eq('Shadowing outer local variable - `foo`.')
101
- expect(cop.offenses.first.line).to eq(4)
102
- end
103
-
104
- include_examples 'mimics MRI 2.1', 'shadowing'
105
- end
106
-
107
- context 'when a block argument has different name ' \
108
- 'with outer scope variables' do
109
- let(:source) do
110
- [
111
- 'def some_method',
112
- ' foo = 1',
113
- ' puts foo',
114
- ' 1.times do |bar|',
115
- ' end',
116
- 'end'
117
- ]
118
- end
119
-
120
- include_examples 'accepts'
121
- include_examples 'mimics MRI 2.1'
122
- end
123
-
124
- context 'when an outer scope variable is reassigned in a block' do
125
- let(:source) do
126
- [
127
- 'def some_method',
128
- ' foo = 1',
129
- ' puts foo',
130
- ' 1.times do',
131
- ' foo = 2',
132
- ' end',
133
- 'end'
134
- ]
135
- end
136
-
137
- include_examples 'accepts'
138
- include_examples 'mimics MRI 2.1'
139
- end
140
-
141
- context 'when an outer scope variable is referenced in a block' do
142
- let(:source) do
143
- [
144
- 'def some_method',
145
- ' foo = 1',
146
- ' puts foo',
147
- ' 1.times do',
148
- ' puts foo',
149
- ' end',
150
- 'end'
151
- ]
152
- end
153
-
154
- include_examples 'accepts'
155
- include_examples 'mimics MRI 2.1'
156
- end
157
-
158
- context 'when multiple block arguments have same name "_"' do
159
- let(:source) do
160
- [
161
- 'def some_method',
162
- ' 1.times do |_, foo, _|',
163
- ' end',
164
- 'end'
165
- ]
166
- end
167
-
168
- include_examples 'accepts'
169
- include_examples 'mimics MRI 2.1'
170
- end
171
-
172
- context 'when multiple block arguments have ' \
173
- 'a same name starts with "_"' do
174
- let(:source) do
175
- [
176
- 'def some_method',
177
- ' 1.times do |_foo, bar, _foo|',
178
- ' end',
179
- 'end'
180
- ]
181
- end
182
-
183
- include_examples 'accepts' unless RUBY_VERSION < '2.0'
184
- include_examples 'mimics MRI 2.1'
185
- end
186
-
187
- context 'when a block argument has same name "_" ' \
188
- 'as outer scope variable "_"' do
189
- let(:source) do
190
- [
191
- 'def some_method',
192
- ' _ = 1',
193
- ' puts _',
194
- ' 1.times do |_|',
195
- ' end',
196
- 'end'
197
- ]
198
- end
199
-
200
- include_examples 'accepts'
201
- include_examples 'mimics MRI 2.1'
202
- end
203
-
204
- context 'when a block argument has a same name starts with "_" ' \
205
- 'as an outer scope variable' do
206
- let(:source) do
207
- [
208
- 'def some_method',
209
- ' _foo = 1',
210
- ' puts _foo',
211
- ' 1.times do |_foo|',
212
- ' end',
213
- 'end'
214
- ]
215
- end
216
-
217
- include_examples 'accepts'
218
- include_examples 'mimics MRI 2.1'
219
- end
220
-
221
- context 'when a method argument has same name ' \
222
- 'as an outer scope variable' do
223
- let(:source) do
224
- [
225
- 'class SomeClass',
226
- ' foo = 1',
227
- ' puts foo',
228
- ' def some_method(foo)',
229
- ' end',
230
- 'end'
231
- ]
232
- end
233
-
234
- include_examples 'accepts'
235
- include_examples 'mimics MRI 2.1'
236
- end
237
- end