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,51 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Lint::ConditionPosition do
6
- subject(:cop) { described_class.new }
7
-
8
- %w(if unless while until).each do |keyword|
9
- it 'registers an offense for condition on the next line' do
10
- inspect_source(cop,
11
- ["#{keyword}",
12
- 'x == 10',
13
- 'end'
14
- ])
15
- expect(cop.offenses.size).to eq(1)
16
- end
17
-
18
- it 'accepts condition on the same line' do
19
- inspect_source(cop,
20
- ["#{keyword} x == 10",
21
- ' bala',
22
- 'end'
23
- ])
24
- expect(cop.offenses).to be_empty
25
- end
26
-
27
- it 'accepts condition on a different line for modifiers' do
28
- inspect_source(cop,
29
- ["do_something #{keyword}",
30
- ' something && something_else'])
31
- expect(cop.offenses).to be_empty
32
- end
33
- end
34
-
35
- it 'registers an offense for elsif condition on the next line' do
36
- inspect_source(cop,
37
- ['if something',
38
- ' test',
39
- 'elsif',
40
- ' something',
41
- ' test',
42
- 'end'
43
- ])
44
- expect(cop.offenses.size).to eq(1)
45
- end
46
-
47
- it 'handles ternary ops' do
48
- inspect_source(cop, 'x ? a : b')
49
- expect(cop.offenses).to be_empty
50
- end
51
- end
@@ -1,73 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Lint::Debugger do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'reports an offense for a debugger call' do
9
- src = 'debugger'
10
- inspect_source(cop, src)
11
- expect(cop.offenses.size).to eq(1)
12
- expect(cop.messages).to eq(['Remove debugger entry point `debugger`.'])
13
- expect(cop.highlights).to eq(['debugger'])
14
- end
15
-
16
- it 'reports an offense for a byebug call' do
17
- src = 'byebug'
18
- inspect_source(cop, src)
19
- expect(cop.offenses.size).to eq(1)
20
- expect(cop.messages).to eq(['Remove debugger entry point `byebug`.'])
21
- expect(cop.highlights).to eq(['byebug'])
22
- end
23
-
24
- it 'reports an offense for pry bindings' do
25
- src = ['binding.pry',
26
- 'binding.remote_pry',
27
- 'binding.pry_remote']
28
- inspect_source(cop, src)
29
- expect(cop.offenses.size).to eq(3)
30
- expect(cop.messages)
31
- .to eq(['Remove debugger entry point `binding.pry`.',
32
- 'Remove debugger entry point `binding.remote_pry`.',
33
- 'Remove debugger entry point `binding.pry_remote`.'])
34
- expect(cop.highlights).to eq(['binding.pry',
35
- 'binding.remote_pry',
36
- 'binding.pry_remote'])
37
- end
38
-
39
- it 'reports an offense for capybara debug methods' do
40
- src = %w(save_and_open_page save_and_open_screenshot)
41
- inspect_source(cop, src)
42
- expect(cop.offenses.size).to eq(2)
43
- expect(cop.messages)
44
- .to eq(['Remove debugger entry point `save_and_open_page`.',
45
- 'Remove debugger entry point `save_and_open_screenshot`.'])
46
- expect(cop.highlights)
47
- .to eq(%w(save_and_open_page save_and_open_screenshot))
48
- end
49
-
50
- it 'does not report an offense for non-pry binding' do
51
- src = 'binding.pirate'
52
- inspect_source(cop, src)
53
- expect(cop.offenses).to be_empty
54
- end
55
-
56
- %w(debugger byebug pry remote_pry pry_remote
57
- save_and_open_page save_and_open_screenshot).each do |comment|
58
- it "does not report an offense for #{comment} in comments" do
59
- src = "# #{comment}"
60
- inspect_source(cop, src)
61
- expect(cop.offenses).to be_empty
62
- end
63
- end
64
-
65
- %w(debugger byebug pry remote_pry pry_remote
66
- save_and_open_page save_and_open_screenshot).each do |method_name|
67
- it "does not report an offense for a #{method_name} method" do
68
- src = "code.#{method_name}"
69
- inspect_source(cop, src)
70
- expect(cop.offenses).to be_empty
71
- end
72
- end
73
- end
@@ -1,108 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Lint::DefEndAlignment, :config do
6
- subject(:cop) { described_class.new(config) }
7
- let(:opposite) do
8
- cop_config['AlignWith'] == 'def' ? 'start_of_line' : 'def'
9
- end
10
-
11
- context 'when AlignWith is start_of_line' do
12
- let(:cop_config) { { 'AlignWith' => 'start_of_line' } }
13
-
14
- include_examples 'misaligned', '', 'def', 'test', ' end'
15
- include_examples 'misaligned', '', 'def', 'Test.test', ' end', 'defs'
16
-
17
- include_examples 'aligned', 'def', 'test', 'end'
18
- include_examples 'aligned', 'def', 'Test.test', 'end', 'defs'
19
-
20
- context 'in ruby 2.1 or later' do
21
- include_examples 'aligned', 'public def', 'test', 'end'
22
- include_examples 'aligned', 'protected def', 'test', 'end'
23
- include_examples 'aligned', 'private def', 'test', 'end'
24
- include_examples 'aligned', 'module_function def', 'test', 'end'
25
-
26
- include_examples('misaligned', '',
27
- 'public def', 'test',
28
- ' end')
29
- include_examples('misaligned', '',
30
- 'protected def', 'test',
31
- ' end')
32
- include_examples('misaligned', '',
33
- 'private def', 'test',
34
- ' end')
35
- include_examples('misaligned', '',
36
- 'module_function def', 'test',
37
- ' end')
38
- end
39
-
40
- it 'registers an offense for correct + opposite' do
41
- inspect_source(cop, ['private def a',
42
- ' a1',
43
- 'end',
44
- '',
45
- 'private def b',
46
- ' b1',
47
- ' end'])
48
- expect(cop.offenses.size).to eq(1)
49
- expect(cop.messages.first)
50
- .to eq('`end` at 7, 8 is not aligned with `private def` at 5, 8')
51
- expect(cop.highlights.first).to eq('end')
52
- expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
53
- end
54
- end
55
-
56
- context 'when AlignWith is def' do
57
- let(:cop_config) { { 'AlignWith' => 'def' } }
58
-
59
- include_examples 'misaligned', '', 'def', 'test', ' end'
60
- include_examples 'misaligned', '', 'def', 'Test.test', ' end', 'defs'
61
-
62
- include_examples 'aligned', 'def', 'test', 'end'
63
- include_examples 'aligned', 'def', 'Test.test', 'end', 'defs'
64
-
65
- context 'in ruby 2.1 or later' do
66
- include_examples('aligned',
67
- 'public def', 'test',
68
- ' end')
69
- include_examples('aligned',
70
- 'protected def', 'test',
71
- ' end')
72
- include_examples('aligned',
73
- 'private def', 'test',
74
- ' end')
75
- include_examples('aligned',
76
- 'module_function def', 'test',
77
- ' end')
78
-
79
- include_examples('misaligned',
80
- 'public ', 'def', 'test',
81
- 'end')
82
- include_examples('misaligned',
83
- 'protected ', 'def', 'test',
84
- 'end')
85
- include_examples('misaligned',
86
- 'private ', 'def', 'test',
87
- 'end')
88
- include_examples('misaligned',
89
- 'module_function ', 'def', 'test',
90
- 'end')
91
-
92
- it 'registers an offense for correct + opposite' do
93
- inspect_source(cop, ['private def a',
94
- ' a1',
95
- 'end',
96
- '',
97
- 'private def b',
98
- ' b1',
99
- ' end'])
100
- expect(cop.offenses.size).to eq(1)
101
- expect(cop.messages.first)
102
- .to eq('`end` at 3, 0 is not aligned with `def` at 1, 8')
103
- expect(cop.highlights.first).to eq('end')
104
- expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
105
- end
106
- end
107
- end
108
- end
@@ -1,38 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Lint::DeprecatedClassMethods do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for File.exists?' do
9
- inspect_source(cop, 'File.exists?(o)')
10
- expect(cop.offenses.size).to eq(1)
11
- expect(cop.messages)
12
- .to eq(['`File.exists?` is deprecated in favor of `File.exist?`.'])
13
- end
14
-
15
- it 'registers an offense for ::File.exists?' do
16
- inspect_source(cop, '::File.exists?(o)')
17
- expect(cop.offenses.size).to eq(1)
18
- expect(cop.messages)
19
- .to eq(['`File.exists?` is deprecated in favor of `File.exist?`.'])
20
- end
21
-
22
- it 'registers an offense for Dir.exists?' do
23
- inspect_source(cop, 'Dir.exists?(o)')
24
- expect(cop.offenses.size).to eq(1)
25
- expect(cop.messages)
26
- .to eq(['`Dir.exists?` is deprecated in favor of `Dir.exist?`.'])
27
- end
28
-
29
- it 'auto-corrects File.exists? with File.exist?' do
30
- new_source = autocorrect_source(cop, 'File.exists?(something)')
31
- expect(new_source).to eq('File.exist?(something)')
32
- end
33
-
34
- it 'auto-corrects Dir.exists? with Dir.exist?' do
35
- new_source = autocorrect_source(cop, 'Dir.exists?(something)')
36
- expect(new_source).to eq('Dir.exist?(something)')
37
- end
38
- end
@@ -1,189 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Lint::DuplicateMethods do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for duplicate method in class' do
9
- inspect_source(cop,
10
- ['class A',
11
- ' def some_method',
12
- ' implement 1',
13
- ' end',
14
- ' def some_method',
15
- ' implement 2',
16
- ' end',
17
- 'end'])
18
- expect(cop.offenses.size).to eq(1)
19
- end
20
-
21
- it 'does not register an offense for non-duplicate method in class' do
22
- inspect_source(cop,
23
- ['class A',
24
- ' def some_method',
25
- ' implement 1',
26
- ' end',
27
- ' def any_method',
28
- ' implement 2',
29
- ' end',
30
- 'end'])
31
- expect(cop.offenses).to be_empty
32
- end
33
-
34
- it 'registers an offense for duplicate method in module' do
35
- inspect_source(cop,
36
- ['module A',
37
- ' def some_method',
38
- ' implement 1',
39
- ' end',
40
- ' def some_method',
41
- ' implement 2',
42
- ' end',
43
- 'end'])
44
- expect(cop.offenses.size).to eq(1)
45
- end
46
-
47
- it 'does not register an offense for non-duplicate method in module' do
48
- inspect_source(cop,
49
- ['module A',
50
- ' def some_method',
51
- ' implement 1',
52
- ' end',
53
- ' def any_method',
54
- ' implement 2',
55
- ' end',
56
- 'end'])
57
- expect(cop.offenses).to be_empty
58
- end
59
-
60
- it 'registers an offense for duplicate class methods in module' do
61
- inspect_source(cop,
62
- ['module A',
63
- ' def self.some_method',
64
- ' implement 1',
65
- ' end',
66
- ' def self.some_method',
67
- ' implement 2',
68
- ' end',
69
- 'end'])
70
- expect(cop.offenses.size).to eq(1)
71
- end
72
- it 'doesn`t registers an offense for non-duplicate class methods in module' do
73
- inspect_source(cop,
74
- ['module A',
75
- ' def self.some_method',
76
- ' implement 1',
77
- ' end',
78
- ' def self.any_method',
79
- ' implement 2',
80
- ' end',
81
- 'end'])
82
- expect(cop.offenses.size).to eq(0)
83
- end
84
-
85
- it 'differ instance and class methods in module' do
86
- inspect_source(cop,
87
- ['module A',
88
- ' def some_method',
89
- ' implement 1',
90
- ' end',
91
- ' def self.some_method',
92
- ' implement 2',
93
- ' end',
94
- 'end'])
95
- expect(cop.offenses.size).to eq(0)
96
- end
97
-
98
- it %(registers an offense for duplicate private methods in class) do
99
- inspect_source(cop,
100
- ['class A',
101
- ' private def some_method',
102
- ' implement 1',
103
- ' end',
104
- ' private def some_method',
105
- ' implement 2',
106
- ' end',
107
- 'end'])
108
- expect(cop.offenses.size).to eq(1)
109
- end
110
-
111
- it %(registers an offense for duplicate private self methods in class) do
112
- inspect_source(cop,
113
- ['class A',
114
- ' private def self.some_method',
115
- ' implement 1',
116
- ' end',
117
- ' private def self.some_method',
118
- ' implement 2',
119
- ' end',
120
- 'end'])
121
- expect(cop.offenses.size).to eq(1)
122
- end
123
-
124
- it %(don`t registers an offense for different private methods in class) do
125
- inspect_source(cop,
126
- ['class A',
127
- ' private def some_method',
128
- ' implement 1',
129
- ' end',
130
- ' private def any_method',
131
- ' implement 2',
132
- ' end',
133
- 'end'])
134
- expect(cop.offenses.size).to eq(0)
135
- end
136
-
137
- it %(registers an offense for duplicate protected methods in class) do
138
- inspect_source(cop,
139
- ['class A',
140
- ' protected def some_method',
141
- ' implement 1',
142
- ' end',
143
- ' protected def some_method',
144
- ' implement 2',
145
- ' end',
146
- 'end'])
147
- expect(cop.offenses.size).to eq(1)
148
- end
149
-
150
- it %(registers 2 offenses for pair of duplicate methods in class) do
151
- inspect_source(cop,
152
- ['class A',
153
- ' def some_method',
154
- ' implement 1',
155
- ' end',
156
- ' def some_method',
157
- ' implement 2',
158
- ' end',
159
- ' def any_method',
160
- ' implement 1',
161
- ' end',
162
- ' def any_method',
163
- ' implement 2',
164
- ' end',
165
- 'end'])
166
- expect(cop.offenses.size).to eq(2)
167
- end
168
-
169
- it %(generate 2 offenses with specified messages) do
170
- inspect_source(cop,
171
- ['class A',
172
- ' def some_method',
173
- ' implement 1',
174
- ' end',
175
- ' def some_method',
176
- ' implement 2',
177
- ' end',
178
- ' def any_method',
179
- ' implement 1',
180
- ' end',
181
- ' def any_method',
182
- ' implement 2',
183
- ' end',
184
- 'end'])
185
- expect(cop.messages).to match_array([
186
- %(Duplicate methods `some_method` at lines `2, 5` detected.),
187
- %(Duplicate methods `any_method` at lines `8, 11` detected.)])
188
- end
189
- end