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,278 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Lint::UnusedMethodArgument do
6
- subject(:cop) { described_class.new }
7
-
8
- describe 'inspection' do
9
- before do
10
- inspect_source(cop, source)
11
- end
12
-
13
- context 'when a method takes multiple arguments' do
14
- context 'and an argument is unused' do
15
- let(:source) { <<-END }
16
- def some_method(foo, bar)
17
- puts bar
18
- end
19
- END
20
-
21
- it 'registers an offense' do
22
- expect(cop.offenses.size).to eq(1)
23
- expect(cop.offenses.first.message).to eq(
24
- 'Unused method argument - `foo`. ' \
25
- "If it's necessary, use `_` or `_foo` " \
26
- "as an argument name to indicate that it won't be used."
27
- )
28
- expect(cop.offenses.first.severity.name).to eq(:warning)
29
- expect(cop.offenses.first.line).to eq(1)
30
- expect(cop.highlights).to eq(['foo'])
31
- end
32
- end
33
-
34
- context 'and all the arguments are unused' do
35
- let(:source) { <<-END }
36
- def some_method(foo, bar)
37
- end
38
- END
39
-
40
- it 'registers offenses and suggests the use of `*`' do
41
- expect(cop.offenses.size).to eq(2)
42
- expect(cop.offenses.first.message).to eq(
43
- 'Unused method argument - `foo`. ' \
44
- "If it's necessary, use `_` or `_foo` " \
45
- "as an argument name to indicate that it won't be used. " \
46
- 'You can also write as `some_method(*)` if you want the method ' \
47
- "to accept any arguments but don't care about them.")
48
- end
49
- end
50
- end
51
-
52
- context 'when a required keyword argument is unused', ruby: 2.1 do
53
- let(:source) { <<-END }
54
- def self.some_method(foo, bar:)
55
- puts foo
56
- end
57
- END
58
-
59
- it 'registers an offense but does not suggest underscore-prefix' do
60
- expect(cop.offenses.size).to eq(1)
61
- expect(cop.highlights).to eq(['bar'])
62
- expect(cop.offenses.first.message)
63
- .to eq('Unused method argument - `bar`.')
64
- end
65
- end
66
-
67
- context 'when an optional keyword argument is unused', ruby: 2 do
68
- let(:source) { <<-END }
69
- def self.some_method(foo, bar: 1)
70
- puts foo
71
- end
72
- END
73
-
74
- it 'registers an offense but does not suggest underscore-prefix' do
75
- expect(cop.offenses.size).to eq(1)
76
- expect(cop.highlights).to eq(['bar'])
77
- expect(cop.offenses.first.message)
78
- .to eq('Unused method argument - `bar`.')
79
- end
80
- end
81
-
82
- context 'when a singleton method argument is unused' do
83
- let(:source) { <<-END }
84
- def self.some_method(foo)
85
- end
86
- END
87
-
88
- it 'registers an offense' do
89
- expect(cop.offenses.size).to eq(1)
90
- expect(cop.offenses.first.line).to eq(1)
91
- expect(cop.highlights).to eq(['foo'])
92
- end
93
- end
94
-
95
- context 'when an underscore-prefixed method argument is unused' do
96
- let(:source) { <<-END }
97
- def some_method(_foo)
98
- end
99
- END
100
-
101
- it 'accepts' do
102
- expect(cop.offenses).to be_empty
103
- end
104
- end
105
-
106
- context 'when a method argument is used' do
107
- let(:source) { <<-END }
108
- def some_method(foo)
109
- puts foo
110
- end
111
- END
112
-
113
- it 'accepts' do
114
- expect(cop.offenses).to be_empty
115
- end
116
- end
117
-
118
- context 'when a variable is unused' do
119
- let(:source) { <<-END }
120
- def some_method
121
- foo = 1
122
- end
123
- END
124
-
125
- it 'does not care' do
126
- expect(cop.offenses).to be_empty
127
- end
128
- end
129
-
130
- context 'when a block argument is unused' do
131
- let(:source) { <<-END }
132
- 1.times do |foo|
133
- end
134
- END
135
-
136
- it 'does not care' do
137
- expect(cop.offenses).to be_empty
138
- end
139
- end
140
-
141
- context 'in a method calling `super` without arguments' do
142
- context 'when a method argument is not used explicitly' do
143
- let(:source) { <<-END }
144
- def some_method(foo)
145
- super
146
- end
147
- END
148
-
149
- it 'accepts since the arguments are guaranteed to be the same as ' \
150
- "superclass' ones and the user has no control on them" do
151
- expect(cop.offenses).to be_empty
152
- end
153
- end
154
- end
155
-
156
- context 'in a method calling `super` with arguments' do
157
- context 'when a method argument is unused' do
158
- let(:source) { <<-END }
159
- def some_method(foo)
160
- super(:something)
161
- end
162
- END
163
-
164
- it 'registers an offense' do
165
- expect(cop.offenses.size).to eq(1)
166
- expect(cop.offenses.first.line).to eq(1)
167
- expect(cop.highlights).to eq(['foo'])
168
- end
169
- end
170
- end
171
- end
172
-
173
- describe 'auto-correction' do
174
- let(:corrected_source) { autocorrect_source(cop, source) }
175
-
176
- context 'when multiple arguments are unused' do
177
- let(:source) { <<-END }
178
- def some_method(foo, bar)
179
- end
180
- END
181
-
182
- let(:expected_source) { <<-END }
183
- def some_method(_foo, _bar)
184
- end
185
- END
186
-
187
- it 'adds underscore-prefix to them' do
188
- expect(corrected_source).to eq(expected_source)
189
- end
190
- end
191
-
192
- context 'when only a part of arguments is unused' do
193
- let(:source) { <<-END }
194
- def some_method(foo, bar)
195
- puts foo
196
- end
197
- END
198
-
199
- let(:expected_source) { <<-END }
200
- def some_method(foo, _bar)
201
- puts foo
202
- end
203
- END
204
-
205
- it 'modifies only the unused one' do
206
- expect(corrected_source).to eq(expected_source)
207
- end
208
- end
209
-
210
- context 'when there are some whitespaces around the argument' do
211
- let(:source) { <<-END }
212
- def some_method(foo,
213
- bar)
214
- puts foo
215
- end
216
- END
217
-
218
- let(:expected_source) { <<-END }
219
- def some_method(foo,
220
- _bar)
221
- puts foo
222
- end
223
- END
224
-
225
- it 'preserves the whitespace' do
226
- expect(corrected_source).to eq(expected_source)
227
- end
228
- end
229
-
230
- context 'when a splat argument is unused' do
231
- let(:source) { <<-END }
232
- def some_method(foo, *bar)
233
- puts foo
234
- end
235
- END
236
-
237
- let(:expected_source) { <<-END }
238
- def some_method(foo, *_bar)
239
- puts foo
240
- end
241
- END
242
-
243
- it 'preserves the splat' do
244
- expect(corrected_source).to eq(expected_source)
245
- end
246
- end
247
-
248
- context 'when an unused argument has default value' do
249
- let(:source) { <<-END }
250
- def some_method(foo, bar = 1)
251
- puts foo
252
- end
253
- END
254
-
255
- let(:expected_source) { <<-END }
256
- def some_method(foo, _bar = 1)
257
- puts foo
258
- end
259
- END
260
-
261
- it 'preserves the default value' do
262
- expect(corrected_source).to eq(expected_source)
263
- end
264
- end
265
-
266
- context 'when a keyword argument is unused', ruby: 2 do
267
- let(:source) { <<-END }
268
- def some_method(foo, bar: 1)
269
- puts foo
270
- end
271
- END
272
-
273
- it 'ignores that since modifying the name changes the method interface' do
274
- expect(corrected_source).to eq(source)
275
- end
276
- end
277
- end
278
- end
@@ -1,192 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Lint::UselessAccessModifier do
6
- subject(:cop) { described_class.new }
7
-
8
- context 'when an access modifier has no effect' do
9
- let(:source) do
10
- [
11
- 'class SomeClass',
12
- ' def some_method',
13
- ' puts 10',
14
- ' end',
15
- ' private',
16
- ' def self.some_method',
17
- ' puts 10',
18
- ' end',
19
- 'end'
20
- ]
21
- end
22
-
23
- it 'registers an offense' do
24
- inspect_source(cop, source)
25
- expect(cop.offenses.size).to eq(1)
26
- expect(cop.offenses.first.message)
27
- .to eq('Useless `private` access modifier.')
28
- expect(cop.offenses.first.line).to eq(5)
29
- expect(cop.highlights).to eq(['private'])
30
- end
31
- end
32
-
33
- context 'when an access modifier has no methods' do
34
- let(:source) do
35
- [
36
- 'class SomeClass',
37
- ' protected',
38
- 'end'
39
- ]
40
- end
41
-
42
- it 'registers an offense' do
43
- inspect_source(cop, source)
44
- expect(cop.offenses.size).to eq(1)
45
- expect(cop.offenses.first.message)
46
- .to eq('Useless `protected` access modifier.')
47
- expect(cop.offenses.first.line).to eq(2)
48
- expect(cop.highlights).to eq(['protected'])
49
- end
50
- end
51
-
52
- context 'when an access modifier is followed by attr_*' do
53
- let(:source) do
54
- [
55
- 'class SomeClass',
56
- ' protected',
57
- ' attr_accessor :some_property',
58
- 'end'
59
- ]
60
- end
61
-
62
- it 'does not register an offense' do
63
- inspect_source(cop, source)
64
- expect(cop.offenses.size).to eq(0)
65
- end
66
- end
67
-
68
- context 'when an access modifier is followed by a ' \
69
- 'class method defined on constant' do
70
- let(:source) do
71
- [
72
- 'class SomeClass',
73
- ' protected',
74
- ' def SomeClass.some_method',
75
- ' end',
76
- 'end'
77
- ]
78
- end
79
-
80
- it 'registers an offense' do
81
- inspect_source(cop, source)
82
- expect(cop.offenses.size).to eq(1)
83
- expect(cop.offenses.first.message)
84
- .to eq('Useless `protected` access modifier.')
85
- expect(cop.offenses.first.line).to eq(2)
86
- expect(cop.highlights).to eq(['protected'])
87
- end
88
- end
89
-
90
- context 'when consecutive access modifiers' do
91
- let(:source) do
92
- [
93
- 'class SomeClass',
94
- ' private',
95
- ' private',
96
- ' def some_method',
97
- ' puts 10',
98
- ' end',
99
- ' def some_other_method',
100
- ' puts 10',
101
- ' end',
102
- 'end'
103
- ]
104
- end
105
-
106
- it 'registers an offense' do
107
- inspect_source(cop, source)
108
- expect(cop.offenses.size).to eq(1)
109
- expect(cop.offenses.first.message)
110
- .to eq('Useless `private` access modifier.')
111
- expect(cop.offenses.first.line).to eq(2)
112
- expect(cop.highlights).to eq(['private'])
113
- end
114
- end
115
-
116
- context 'when passing method as symbol' do
117
- let(:source) do
118
- [
119
- 'class SomeClass',
120
- ' def some_method',
121
- ' puts 10',
122
- ' end',
123
- ' private :some_method',
124
- 'end'
125
- ]
126
- end
127
-
128
- it 'does not register an offense' do
129
- inspect_source(cop, source)
130
- expect(cop.offenses.size).to eq(0)
131
- end
132
- end
133
-
134
- context 'when class is empty save modifier' do
135
- let(:source) do
136
- [
137
- 'class SomeClass',
138
- ' private',
139
- 'end'
140
- ]
141
- end
142
-
143
- it 'registers an offense' do
144
- inspect_source(cop, source)
145
- expect(cop.offenses.size).to eq(1)
146
- expect(cop.offenses.first.message)
147
- .to eq('Useless `private` access modifier.')
148
- expect(cop.offenses.first.line).to eq(2)
149
- expect(cop.highlights).to eq(['private'])
150
- end
151
- end
152
-
153
- context 'when multiple class definitions in file but only one has offense' do
154
- let(:source) do
155
- [
156
- 'class SomeClass',
157
- ' private',
158
- 'end',
159
- 'class SomeOtherClass',
160
- 'end'
161
- ]
162
- end
163
-
164
- it 'registers an offense' do
165
- inspect_source(cop, source)
166
- expect(cop.offenses.size).to eq(1)
167
- expect(cop.offenses.first.message)
168
- .to eq('Useless `private` access modifier.')
169
- expect(cop.offenses.first.line).to eq(2)
170
- expect(cop.highlights).to eq(['private'])
171
- end
172
- end
173
-
174
- if RUBY_ENGINE == 'ruby' && RUBY_VERSION.start_with?('2.1')
175
- context 'ruby 2.1 style modifiers' do
176
- let(:source) do
177
- [
178
- 'class SomeClass',
179
- ' private def some_method',
180
- ' puts 10',
181
- ' end',
182
- 'end'
183
- ]
184
- end
185
-
186
- it 'does not register an offense' do
187
- inspect_source(cop, source)
188
- expect(cop.offenses.size).to eq(0)
189
- end
190
- end
191
- end
192
- end