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,186 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::RedundantSelf do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'reports an offense a self receiver on an rvalue' do
9
- src = 'a = self.b'
10
- inspect_source(cop, src)
11
- expect(cop.offenses.size).to eq(1)
12
- end
13
-
14
- it 'accepts a self receiver on an lvalue of an assignment' do
15
- src = 'self.a = b'
16
- inspect_source(cop, src)
17
- expect(cop.offenses).to be_empty
18
- end
19
-
20
- it 'accepts a self receiver on an lvalue of an or-assignment' do
21
- src = 'self.logger ||= Rails.logger'
22
- inspect_source(cop, src)
23
- expect(cop.offenses).to be_empty
24
- end
25
-
26
- it 'accepts a self receiver on an lvalue of an and-assignment' do
27
- src = 'self.flag &&= value'
28
- inspect_source(cop, src)
29
- expect(cop.offenses).to be_empty
30
- end
31
-
32
- it 'accepts a self receiver on an lvalue of a plus-assignment' do
33
- src = 'self.sum += 10'
34
- inspect_source(cop, src)
35
- expect(cop.offenses).to be_empty
36
- end
37
-
38
- it 'accepts a self receiver with the square bracket operator' do
39
- src = 'self[a]'
40
- inspect_source(cop, src)
41
- expect(cop.offenses).to be_empty
42
- end
43
-
44
- it 'accepts a self receiver with the double less-than operator' do
45
- src = 'self << a'
46
- inspect_source(cop, src)
47
- expect(cop.offenses).to be_empty
48
- end
49
-
50
- it 'accepts a self receiver for methods named like ruby keywords' do
51
- src = ['a = self.class',
52
- 'self.for(deps, [], true)',
53
- 'self.and(other)',
54
- 'self.or(other)',
55
- 'self.alias',
56
- 'self.begin',
57
- 'self.break',
58
- 'self.case',
59
- 'self.def',
60
- 'self.defined',
61
- 'self.do',
62
- 'self.else',
63
- 'self.elsif',
64
- 'self.end',
65
- 'self.ensure',
66
- 'self.false',
67
- 'self.if',
68
- 'self.in',
69
- 'self.module',
70
- 'self.next',
71
- 'self.nil',
72
- 'self.not',
73
- 'self.redo',
74
- 'self.rescue',
75
- 'self.retry',
76
- 'self.return',
77
- 'self.self',
78
- 'self.super',
79
- 'self.then',
80
- 'self.true',
81
- 'self.undef',
82
- 'self.unless',
83
- 'self.until',
84
- 'self.when',
85
- 'self.while',
86
- 'self.yield'
87
- ]
88
- inspect_source(cop, src)
89
- expect(cop.offenses).to be_empty
90
- end
91
-
92
- describe 'instance methods' do
93
- it 'accepts a self receiver used to distinguish from blockarg' do
94
- src = ['def requested_specs(&groups)',
95
- ' some_method(self.groups)',
96
- 'end'
97
- ]
98
- inspect_source(cop, src)
99
- expect(cop.offenses).to be_empty
100
- end
101
-
102
- it 'accepts a self receiver used to distinguish from argument' do
103
- src = ['def requested_specs(groups)',
104
- ' some_method(self.groups)',
105
- 'end'
106
- ]
107
- inspect_source(cop, src)
108
- expect(cop.offenses).to be_empty
109
- end
110
-
111
- it 'accepts a self receiver used to distinguish from argument' do
112
- src = ['def requested_specs(final = true)',
113
- ' something if self.final != final',
114
- 'end'
115
- ]
116
- inspect_source(cop, src)
117
- expect(cop.offenses).to be_empty
118
- end
119
-
120
- it 'accepts a self receiver used to distinguish from local variable' do
121
- src = ['def requested_specs',
122
- ' @requested_specs ||= begin',
123
- ' groups = self.groups - Bundler.settings.without',
124
- ' groups.map! { |g| g.to_sym }',
125
- ' specs_for(groups)',
126
- ' end',
127
- 'end'
128
- ]
129
- inspect_source(cop, src)
130
- expect(cop.offenses).to be_empty
131
- end
132
- end
133
-
134
- describe 'class methods' do
135
- it 'accepts a self receiver used to distinguish from blockarg' do
136
- src = ['def self.requested_specs(&groups)',
137
- ' some_method(self.groups)',
138
- 'end'
139
- ]
140
- inspect_source(cop, src)
141
- expect(cop.offenses).to be_empty
142
- end
143
-
144
- it 'accepts a self receiver used to distinguish from argument' do
145
- src = ['def self.requested_specs(groups)',
146
- ' some_method(self.groups)',
147
- 'end'
148
- ]
149
- inspect_source(cop, src)
150
- expect(cop.offenses).to be_empty
151
- end
152
-
153
- it 'accepts a self receiver used to distinguish from argument' do
154
- src = ['def self.requested_specs(final = true)',
155
- ' something if self.final != final',
156
- 'end'
157
- ]
158
- inspect_source(cop, src)
159
- expect(cop.offenses).to be_empty
160
- end
161
-
162
- it 'accepts a self receiver used to distinguish from local variable' do
163
- src = ['def self.requested_specs',
164
- ' @requested_specs ||= begin',
165
- ' groups = self.groups - Bundler.settings.without',
166
- ' groups.map! { |g| g.to_sym }',
167
- ' specs_for(groups)',
168
- ' end',
169
- 'end'
170
- ]
171
- inspect_source(cop, src)
172
- expect(cop.offenses).to be_empty
173
- end
174
- end
175
-
176
- it 'accepts a self receiver used to distinguish from constant' do
177
- src = 'self.Foo'
178
- inspect_source(cop, src)
179
- expect(cop.offenses).to be_empty
180
- end
181
-
182
- it 'auto-corrects by removing redundant self' do
183
- new_source = autocorrect_source(cop, 'self.x')
184
- expect(new_source).to eq('x')
185
- end
186
- end
@@ -1,188 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::RegexpLiteral, :config do
6
- subject(:cop) { described_class.new(config) }
7
-
8
- before { described_class.slash_count = nil }
9
-
10
- context 'when MaxSlashes is -1' do
11
- let(:cop_config) { { 'MaxSlashes' => -1 } }
12
-
13
- it 'fails' do
14
- expect { inspect_source(cop, 'x =~ /home/') }
15
- .to raise_error(RuntimeError)
16
- end
17
- end
18
-
19
- context 'when MaxSlashes is 0' do
20
- let(:cop_config) { { 'MaxSlashes' => 0 } }
21
-
22
- it 'registers an offense for one slash in // regexp' do
23
- inspect_source(cop, 'x =~ /home\//')
24
- expect(cop.messages)
25
- .to eq(['Use %r for regular expressions matching more ' \
26
- "than 0 '/' characters."])
27
- end
28
-
29
- it 'accepts zero slashes in // regexp' do
30
- inspect_source(cop, 'z =~ /a/')
31
- expect(cop.offenses).to be_empty
32
- end
33
-
34
- it 'registers an offense for zero slashes in %r regexp' do
35
- inspect_source(cop, 'y =~ %r(etc)')
36
- expect(cop.messages)
37
- .to eq(['Use %r only for regular expressions matching more ' \
38
- "than 0 '/' characters."])
39
- end
40
-
41
- it 'accepts %r regexp with one slash' do
42
- inspect_source(cop, 'x =~ %r(/home)')
43
- expect(cop.offenses).to be_empty
44
- end
45
-
46
- describe '--auto-gen-config' do
47
- subject(:cop) { described_class.new(config, auto_gen_config: true) }
48
-
49
- it 'sets MaxSlashes: 1 for one slash in // regexp' do
50
- inspect_source(cop, 'x =~ /home\//')
51
- expect(cop.config_to_allow_offenses).to eq('MaxSlashes' => 1)
52
- end
53
-
54
- it 'disables the cop for zero slashes in %r regexp' do
55
- inspect_source(cop, 'y =~ %r(etc)')
56
- expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
57
- end
58
-
59
- it 'generates nothing if there are no offenses' do
60
- inspect_source(cop, 'x =~ %r(/home)')
61
- expect(cop.config_to_allow_offenses).to eq(nil)
62
- end
63
- end
64
- end
65
-
66
- context 'when MaxSlashes is 1' do
67
- let(:cop_config) { { 'MaxSlashes' => 1 } }
68
-
69
- it 'registers an offense for two slashes in // regexp' do
70
- inspect_source(cop, ['x =~ /home\/\//',
71
- 'y =~ /etc\/top\//'])
72
- expect(cop.messages)
73
- .to eq(['Use %r for regular expressions matching more ' \
74
- "than 1 '/' character."] * 2)
75
- end
76
-
77
- it 'registers offenses for slashes with too many' do
78
- inspect_source(cop, 'x =~ /home\/\/\//')
79
- expect(cop.messages)
80
- .to eq(['Use %r for regular expressions matching more ' \
81
- "than 1 '/' character."])
82
- end
83
-
84
- it 'registers offenses for %r with too few' do
85
- inspect_source(cop, ['x =~ /home\/\/\//',
86
- 'y =~ %r{home}'])
87
- expect(cop.messages)
88
- .to eq(['Use %r for regular expressions matching more ' \
89
- "than 1 '/' character.",
90
- 'Use %r only for regular expressions matching more ' \
91
- "than 1 '/' character."])
92
- end
93
-
94
- it 'accepts zero or one slash in // regexp' do
95
- inspect_source(cop, ['x =~ /\/home/',
96
- 'y =~ /\//',
97
- 'w =~ /\//m',
98
- 'z =~ /a/'])
99
- expect(cop.offenses).to be_empty
100
- end
101
-
102
- it 'ignores slashes do not belong // regexp' do
103
- inspect_source(cop, 'x =~ /\s{#{x[/\s+/].length}}/')
104
- expect(cop.offenses).to be_empty
105
- end
106
-
107
- it 'registers an offense for zero or one slash in %r regexp' do
108
- inspect_source(cop, ['x =~ %r(/home)',
109
- 'y =~ %r(etc)'])
110
- expect(cop.messages)
111
- .to eq(['Use %r only for regular expressions matching more ' \
112
- "than 1 '/' character."] * 2)
113
- end
114
-
115
- it 'accepts %r regexp with two or more slashes' do
116
- inspect_source(cop, ['x =~ %r(/home/)',
117
- 'y =~ %r(/////)'])
118
- expect(cop.offenses).to be_empty
119
- end
120
-
121
- describe '--auto-gen-config' do
122
- subject(:cop) { described_class.new(config, auto_gen_config: true) }
123
-
124
- it 'sets MaxSlashes: 2 for two slashes in // and 3 in %r' do
125
- inspect_source(cop, ['x =~ /home\/\//',
126
- 'y =~ %r{/usr/lib/ext}'])
127
- expect(cop.config_to_allow_offenses).to eq('MaxSlashes' => 2)
128
- end
129
-
130
- it 'sets MaxSlashes: 0 for one slash in %r regexp' do
131
- inspect_source(cop, 'x =~ %r{/home}')
132
- expect(cop.config_to_allow_offenses).to eq('MaxSlashes' => 0)
133
- end
134
-
135
- it 'disables the cop for zero or one slash in %r regexp' do
136
- inspect_source(cop, ['x =~ %r(/home)',
137
- 'y =~ %r(etc)'])
138
- expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
139
- end
140
-
141
- it 'disables the cop for // with too many and %r with too few' do
142
- inspect_source(cop, ['x =~ /home\/\/\//',
143
- 'y =~ %r{home}'])
144
- expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
145
- end
146
-
147
- it 'disables the cop for %r with too few and // with too many' do
148
- inspect_source(cop, ['y =~ %r{home}',
149
- 'x =~ /home\/\//'])
150
- expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
151
- end
152
-
153
- context 'when Enabled has been set to false' do
154
- before do
155
- inspect_source(cop, ['x =~ /home\/\/\//',
156
- 'y =~ %r{/home/}'])
157
- end
158
-
159
- it 'does not change it' do
160
- inspect_source(cop, 'x =~ %r{/home}')
161
- expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
162
- end
163
- end
164
- end
165
-
166
- context 'when --auto-gen-config is not given' do
167
- subject(:cop) { described_class.new(config) }
168
-
169
- it 'does not set MaxSlashes' do
170
- inspect_source(cop, ['x =~ /home\/\//',
171
- 'y =~ %r{/usr/lib/ext}'])
172
- expect(cop.config_to_allow_offenses).to eq(nil)
173
- end
174
- end
175
- end
176
-
177
- context 'across multiple files (instances)' do
178
- let(:cop_config) { { 'MaxSlashes' => 0 } }
179
-
180
- it 'preserves slash count for --auto-gen-config' do
181
- 2.times do |i|
182
- cop = described_class.new(config, auto_gen_config: true)
183
- inspect_source(cop, "/http:#{'\/' * (i + 1)}/")
184
- end
185
- expect(described_class.slash_count['/']).to eq(Set.new([0, 1, 2]))
186
- end
187
- end
188
- end
@@ -1,116 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::RescueModifier do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for modifier rescue' do
9
- inspect_source(cop,
10
- 'method rescue handle')
11
- expect(cop.offenses.size).to eq(1)
12
- expect(cop.messages)
13
- .to eq(['Avoid using `rescue` in its modifier form.'])
14
- end
15
-
16
- it 'handles more complex expression with modifier rescue' do
17
- inspect_source(cop,
18
- 'method1 or method2 rescue handle')
19
- expect(cop.offenses.size).to eq(1)
20
- expect(cop.messages)
21
- .to eq(['Avoid using `rescue` in its modifier form.'])
22
- end
23
-
24
- it 'handles modifier rescue in normal rescue' do
25
- inspect_source(cop,
26
- ['begin',
27
- ' test rescue modifier_handle',
28
- 'rescue',
29
- ' normal_handle',
30
- 'end'])
31
- expect(cop.offenses.size).to eq(1)
32
- expect(cop.offenses.first.line).to eq(2)
33
- end
34
-
35
- it 'does not register an offense for normal rescue' do
36
- inspect_source(cop,
37
- ['begin',
38
- ' test',
39
- 'rescue',
40
- ' handle',
41
- 'end'])
42
- expect(cop.offenses).to be_empty
43
- end
44
-
45
- it 'does not register an offense for normal rescue with ensure' do
46
- inspect_source(cop,
47
- ['begin',
48
- ' test',
49
- 'rescue',
50
- ' handle',
51
- 'ensure',
52
- ' cleanup',
53
- 'end'])
54
- expect(cop.offenses).to be_empty
55
- end
56
-
57
- it 'does not register an offense for nested normal rescue' do
58
- inspect_source(cop,
59
- ['begin',
60
- ' begin',
61
- ' test',
62
- ' rescue',
63
- ' handle_inner',
64
- ' end',
65
- 'rescue',
66
- ' handle_outer',
67
- 'end'])
68
- expect(cop.offenses).to be_empty
69
- end
70
-
71
- context 'when an instance method has implicit begin' do
72
- it 'accepts normal rescue' do
73
- inspect_source(cop,
74
- ['def some_method',
75
- ' test',
76
- 'rescue',
77
- ' handle',
78
- 'end'])
79
- expect(cop.offenses).to be_empty
80
- end
81
-
82
- it 'handles modifier rescue in body of implicit begin' do
83
- inspect_source(cop,
84
- ['def some_method',
85
- ' test rescue modifier_handle',
86
- 'rescue',
87
- ' normal_handle',
88
- 'end'])
89
- expect(cop.offenses.size).to eq(1)
90
- expect(cop.offenses.first.line).to eq(2)
91
- end
92
- end
93
-
94
- context 'when a singleton method has implicit begin' do
95
- it 'accepts normal rescue' do
96
- inspect_source(cop,
97
- ['def self.some_method',
98
- ' test',
99
- 'rescue',
100
- ' handle',
101
- 'end'])
102
- expect(cop.offenses).to be_empty
103
- end
104
-
105
- it 'handles modifier rescue in body of implicit begin' do
106
- inspect_source(cop,
107
- ['def self.some_method',
108
- ' test rescue modifier_handle',
109
- 'rescue',
110
- ' normal_handle',
111
- 'end'])
112
- expect(cop.offenses.size).to eq(1)
113
- expect(cop.offenses.first.line).to eq(2)
114
- end
115
- end
116
- end