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,135 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::EmptyLinesAroundClassBody, :config do
6
- subject(:cop) { described_class.new(config) }
7
-
8
- context 'when EnforcedStyle is no_empty_lines' do
9
- let(:cop_config) { { 'EnforcedStyle' => 'no_empty_lines' } }
10
-
11
- it 'registers an offense for class body starting with a blank' do
12
- inspect_source(cop,
13
- ['class SomeClass',
14
- '',
15
- ' do_something',
16
- 'end'])
17
- expect(cop.messages)
18
- .to eq(['Extra empty line detected at class body beginning.'])
19
- end
20
-
21
- it 'autocorrects class body containing only a blank' do
22
- corrected = autocorrect_source(cop,
23
- ['class SomeClass',
24
- '',
25
- 'end'])
26
- expect(corrected).to eq ['class SomeClass',
27
- 'end'].join("\n")
28
- end
29
-
30
- it 'registers an offense for class body ending with a blank' do
31
- inspect_source(cop,
32
- ['class SomeClass',
33
- ' do_something',
34
- '',
35
- 'end'])
36
- expect(cop.messages)
37
- .to eq(['Extra empty line detected at class body end.'])
38
- end
39
-
40
- it 'registers an offense for singleton class body starting with a blank' do
41
- inspect_source(cop,
42
- ['class << self',
43
- '',
44
- ' do_something',
45
- 'end'])
46
- expect(cop.messages)
47
- .to eq(['Extra empty line detected at class body beginning.'])
48
- end
49
-
50
- it 'autocorrects singleton class body containing only a blank' do
51
- corrected = autocorrect_source(cop,
52
- ['class << self',
53
- '',
54
- 'end'])
55
- expect(corrected).to eq ['class << self',
56
- 'end'].join("\n")
57
- end
58
-
59
- it 'registers an offense for singleton class body ending with a blank' do
60
- inspect_source(cop,
61
- ['class << self',
62
- ' do_something',
63
- '',
64
- 'end'])
65
- expect(cop.messages)
66
- .to eq(['Extra empty line detected at class body end.'])
67
- end
68
- end
69
-
70
- context 'when EnforcedStyle is empty_lines' do
71
- let(:cop_config) { { 'EnforcedStyle' => 'empty_lines' } }
72
-
73
- it 'registers an offense for class body not starting or ending with a ' \
74
- 'blank' do
75
- inspect_source(cop,
76
- ['class SomeClass',
77
- ' do_something',
78
- 'end'])
79
- expect(cop.messages).to eq(['Empty line missing at class body beginning.',
80
- 'Empty line missing at class body end.'])
81
- end
82
-
83
- it 'autocorrects class body containing nothing' do
84
- corrected = autocorrect_source(cop,
85
- ['class SomeClass',
86
- 'end'])
87
- expect(corrected).to eq ['class SomeClass',
88
- '',
89
- 'end'].join("\n")
90
- end
91
-
92
- it 'autocorrects beginning and end' do
93
- new_source = autocorrect_source(cop,
94
- ['class SomeClass',
95
- ' do_something',
96
- 'end'])
97
- expect(new_source).to eq(['class SomeClass',
98
- '',
99
- ' do_something',
100
- '',
101
- 'end'].join("\n"))
102
- end
103
-
104
- it 'registers an offense for singleton class body not starting or ending ' \
105
- 'with a blank' do
106
- inspect_source(cop,
107
- ['class << self',
108
- ' do_something',
109
- 'end'])
110
- expect(cop.messages).to eq(['Empty line missing at class body beginning.',
111
- 'Empty line missing at class body end.'])
112
- end
113
-
114
- it 'autocorrects singleton class body containing nothing' do
115
- corrected = autocorrect_source(cop,
116
- ['class << self',
117
- 'end'])
118
- expect(corrected).to eq ['class << self',
119
- '',
120
- 'end'].join("\n")
121
- end
122
-
123
- it 'autocorrects beginning and end' do
124
- new_source = autocorrect_source(cop,
125
- ['class << self',
126
- ' do_something',
127
- 'end'])
128
- expect(new_source).to eq(['class << self',
129
- '',
130
- ' do_something',
131
- '',
132
- 'end'].join("\n"))
133
- end
134
- end
135
- end
@@ -1,90 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::EmptyLinesAroundMethodBody do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for method body starting with a blank' do
9
- inspect_source(cop,
10
- ['def some_method',
11
- '',
12
- ' do_something',
13
- 'end'])
14
- expect(cop.messages)
15
- .to eq(['Extra empty line detected at method body beginning.'])
16
- end
17
-
18
- # The cop only registers an offense if the extra line is completely empty. If
19
- # there is trailing whitespace, then that must be dealt with first. Having
20
- # two cops registering offense for the line with only spaces would cause
21
- # havoc in auto-correction.
22
- it 'accepts method body starting with a line with spaces' do
23
- inspect_source(cop,
24
- ['def some_method',
25
- ' ',
26
- ' do_something',
27
- 'end'])
28
- expect(cop.offenses).to be_empty
29
- end
30
-
31
- it 'autocorrects method body starting with a blank' do
32
- corrected = autocorrect_source(cop,
33
- ['def some_method',
34
- '',
35
- ' do_something',
36
- 'end'])
37
- expect(corrected).to eq ['def some_method',
38
- ' do_something',
39
- 'end'].join("\n")
40
- end
41
-
42
- it 'registers an offense for class method body starting with a blank' do
43
- inspect_source(cop,
44
- ['def Test.some_method',
45
- '',
46
- ' do_something',
47
- 'end'])
48
- expect(cop.messages)
49
- .to eq(['Extra empty line detected at method body beginning.'])
50
- end
51
-
52
- it 'autocorrects class method body starting with a blank' do
53
- corrected = autocorrect_source(cop,
54
- ['def Test.some_method',
55
- '',
56
- ' do_something',
57
- 'end'])
58
- expect(corrected).to eq ['def Test.some_method',
59
- ' do_something',
60
- 'end'].join("\n")
61
- end
62
-
63
- it 'registers an offense for method body ending with a blank' do
64
- inspect_source(cop,
65
- ['def some_method',
66
- ' do_something',
67
- '',
68
- 'end'])
69
- expect(cop.messages)
70
- .to eq(['Extra empty line detected at method body end.'])
71
- end
72
-
73
- it 'registers an offense for class method body ending with a blank' do
74
- inspect_source(cop,
75
- ['def Test.some_method',
76
- ' do_something',
77
- '',
78
- 'end'])
79
- expect(cop.messages)
80
- .to eq(['Extra empty line detected at method body end.'])
81
- end
82
-
83
- it 'is not fooled by single line methods' do
84
- inspect_source(cop,
85
- ['def some_method; do_something; end',
86
- '',
87
- 'something_else'])
88
- expect(cop.offenses).to be_empty
89
- end
90
- end
@@ -1,79 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::EmptyLinesAroundModuleBody, :config do
6
- subject(:cop) { described_class.new(config) }
7
-
8
- context 'when EnforcedStyle is no_empty_lines' do
9
- let(:cop_config) { { 'EnforcedStyle' => 'no_empty_lines' } }
10
-
11
- it 'registers an offense for module body starting with a blank' do
12
- inspect_source(cop,
13
- ['module SomeModule',
14
- '',
15
- ' do_something',
16
- 'end'])
17
- expect(cop.messages)
18
- .to eq(['Extra empty line detected at module body beginning.'])
19
- end
20
-
21
- it 'registers an offense for module body ending with a blank' do
22
- inspect_source(cop,
23
- ['module SomeModule',
24
- ' do_something',
25
- '',
26
- 'end'])
27
- expect(cop.messages)
28
- .to eq(['Extra empty line detected at module body end.'])
29
- end
30
-
31
- it 'autocorrects beginning and end' do
32
- new_source = autocorrect_source(cop,
33
- ['module SomeModule',
34
- '',
35
- ' do_something',
36
- '',
37
- 'end'])
38
- expect(new_source).to eq(['module SomeModule',
39
- ' do_something',
40
- 'end'].join("\n"))
41
- end
42
- end
43
-
44
- context 'when EnforcedStyle is empty_lines' do
45
- let(:cop_config) { { 'EnforcedStyle' => 'empty_lines' } }
46
-
47
- it 'registers an offense for module body not starting or ending with a ' \
48
- 'blank' do
49
- inspect_source(cop,
50
- ['module SomeModule',
51
- ' do_something',
52
- 'end'])
53
- expect(cop.messages)
54
- .to eq(['Empty line missing at module body beginning.',
55
- 'Empty line missing at module body end.'])
56
- end
57
-
58
- it 'registers an offense for module body not ending with a blank' do
59
- inspect_source(cop,
60
- ['module SomeModule',
61
- '',
62
- ' do_something',
63
- 'end'])
64
- expect(cop.messages).to eq(['Empty line missing at module body end.'])
65
- end
66
-
67
- it 'autocorrects beginning and end' do
68
- new_source = autocorrect_source(cop,
69
- ['module SomeModule',
70
- ' do_something',
71
- 'end'])
72
- expect(new_source).to eq(['module SomeModule',
73
- '',
74
- ' do_something',
75
- '',
76
- 'end'].join("\n"))
77
- end
78
- end
79
- end
@@ -1,51 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::EmptyLines do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for consecutive empty lines' do
9
- inspect_source(cop,
10
- ['test = 5', '', '', '', 'top'])
11
- expect(cop.offenses.size).to eq(2)
12
- end
13
-
14
- it 'auto-corrects consecutive empty lines' do
15
- corrected = autocorrect_source(cop,
16
- ['test = 5', '', '', '', 'top'])
17
- expect(corrected).to eq ['test = 5', '', 'top'].join("\n")
18
- end
19
-
20
- it 'works when there are no tokens' do
21
- inspect_source(cop,
22
- '#comment')
23
- expect(cop.offenses).to be_empty
24
- end
25
-
26
- it 'handles comments' do
27
- inspect_source(cop,
28
- ['test', '', '#comment', 'top'])
29
- expect(cop.offenses).to be_empty
30
- end
31
-
32
- it 'does not register an offense for empty lines in a string' do
33
- inspect_source(cop, 'result = "test
34
-
35
-
36
-
37
- string"')
38
- expect(cop.offenses).to be_empty
39
- end
40
-
41
- it 'does not register an offense for heredocs with empty lines inside' do
42
- inspect_source(cop, ['str = <<-TEXT',
43
- 'line 1',
44
- '',
45
- '',
46
- 'line 2',
47
- 'TEXT',
48
- 'puts str'])
49
- expect(cop.offenses).to be_empty
50
- end
51
- end
@@ -1,117 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::EmptyLiteral do
6
- subject(:cop) { described_class.new }
7
-
8
- describe 'Empty Array' do
9
- it 'registers an offense for Array.new()' do
10
- inspect_source(cop,
11
- 'test = Array.new()')
12
- expect(cop.offenses.size).to eq(1)
13
- expect(cop.messages)
14
- .to eq(['Use array literal `[]` instead of `Array.new`.'])
15
- end
16
-
17
- it 'registers an offense for Array.new' do
18
- inspect_source(cop,
19
- 'test = Array.new')
20
- expect(cop.offenses.size).to eq(1)
21
- expect(cop.messages)
22
- .to eq(['Use array literal `[]` instead of `Array.new`.'])
23
- end
24
-
25
- it 'does not register an offense for Array.new(3)' do
26
- inspect_source(cop,
27
- 'test = Array.new(3)')
28
- expect(cop.offenses).to be_empty
29
- end
30
-
31
- it 'auto-corrects Array.new to []' do
32
- new_source = autocorrect_source(cop, 'test = Array.new')
33
- expect(new_source).to eq('test = []')
34
- end
35
- end
36
-
37
- describe 'Empty Hash' do
38
- it 'registers an offense for Hash.new()' do
39
- inspect_source(cop,
40
- 'test = Hash.new()')
41
- expect(cop.offenses.size).to eq(1)
42
- expect(cop.messages)
43
- .to eq(['Use hash literal `{}` instead of `Hash.new`.'])
44
- end
45
-
46
- it 'registers an offense for Hash.new' do
47
- inspect_source(cop,
48
- 'test = Hash.new')
49
- expect(cop.offenses.size).to eq(1)
50
- expect(cop.messages)
51
- .to eq(['Use hash literal `{}` instead of `Hash.new`.'])
52
- end
53
-
54
- it 'does not register an offense for Hash.new(3)' do
55
- inspect_source(cop,
56
- 'test = Hash.new(3)')
57
- expect(cop.offenses).to be_empty
58
- end
59
-
60
- it 'does not register an offense for Hash.new { block }' do
61
- inspect_source(cop,
62
- 'test = Hash.new { block }')
63
- expect(cop.offenses).to be_empty
64
- end
65
-
66
- it 'auto-corrects Hash.new to {}' do
67
- new_source = autocorrect_source(cop, 'Hash.new')
68
- expect(new_source).to eq('{}')
69
- end
70
-
71
- it 'auto-corrects Hash.new to {} in various contexts' do
72
- new_source =
73
- autocorrect_source(cop, ['test = Hash.new',
74
- 'Hash.new.merge("a" => 3)',
75
- 'yadayada.map { a }.reduce(Hash.new, :merge)'])
76
- expect(new_source)
77
- .to eq(['test = {}',
78
- '{}.merge("a" => 3)',
79
- 'yadayada.map { a }.reduce({}, :merge)'].join("\n"))
80
- end
81
-
82
- it 'does not auto-correct Hash.new to {} if changing code meaning' do
83
- source = 'yadayada.map { a }.reduce Hash.new, :merge'
84
- new_source = autocorrect_source(cop, source)
85
- expect(new_source).to eq(source)
86
- end
87
- end
88
-
89
- describe 'Empty String' do
90
- it 'registers an offense for String.new()' do
91
- inspect_source(cop,
92
- 'test = String.new()')
93
- expect(cop.offenses.size).to eq(1)
94
- expect(cop.messages)
95
- .to eq(["Use string literal `''` instead of `String.new`."])
96
- end
97
-
98
- it 'registers an offense for String.new' do
99
- inspect_source(cop,
100
- 'test = String.new')
101
- expect(cop.offenses.size).to eq(1)
102
- expect(cop.messages)
103
- .to eq(["Use string literal `''` instead of `String.new`."])
104
- end
105
-
106
- it 'does not register an offense for String.new("top")' do
107
- inspect_source(cop,
108
- 'test = String.new("top")')
109
- expect(cop.offenses).to be_empty
110
- end
111
-
112
- it 'auto-corrects String.new to empty string literal' do
113
- new_source = autocorrect_source(cop, 'test = String.new')
114
- expect(new_source).to eq("test = ''")
115
- end
116
- end
117
- end