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,100 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::EmptyElse do
6
- subject(:cop) { described_class.new(config) }
7
- let(:config) do
8
- RuboCop::Config.new
9
- end
10
-
11
- context 'given an if-statement' do
12
- context 'with a completely empty else-clause' do
13
- it 'registers an offense' do
14
- inspect_source(cop, 'if a; foo else end')
15
- expect(cop.messages).to eq(['Redundant empty `else`-clause.'])
16
- end
17
- end
18
-
19
- context 'with an else-clause containing only the literal nil' do
20
- it 'registers an offense' do
21
- inspect_source(cop, 'if a; foo elsif b; bar else nil end')
22
- expect(cop.messages).to eq(['Redundant empty `else`-clause.'])
23
- end
24
- end
25
-
26
- context 'with an else-clause with side-effects' do
27
- it "doesn't register an offence" do
28
- inspect_source(cop, 'if cond; foo else bar; nil end')
29
- expect(cop.messages).to be_empty
30
- end
31
- end
32
-
33
- context 'with no else-clause' do
34
- it "doesn't register an offence" do
35
- inspect_source(cop, 'if cond; foo end')
36
- expect(cop.messages).to be_empty
37
- end
38
- end
39
- end
40
-
41
- context 'given an unless-statement' do
42
- context 'with a completely empty else-clause' do
43
- it 'registers an offense' do
44
- inspect_source(cop, 'unless cond; foo else end')
45
- expect(cop.messages).to eq(['Redundant empty `else`-clause.'])
46
- end
47
- end
48
-
49
- context 'with an else-clause containing only the literal nil' do
50
- it 'registers an offense' do
51
- inspect_source(cop, 'unless cond; foo else nil end')
52
- expect(cop.messages).to eq(['Redundant empty `else`-clause.'])
53
- end
54
- end
55
-
56
- context 'with an else-clause with side-effects' do
57
- it "doesn't register an offence" do
58
- inspect_source(cop, 'unless cond; foo else bar; nil end')
59
- expect(cop.messages).to be_empty
60
- end
61
- end
62
-
63
- context 'with no else-clause' do
64
- it "doesn't register an offence" do
65
- inspect_source(cop, 'unless cond; foo end')
66
- expect(cop.messages).to be_empty
67
- end
68
- end
69
- end
70
-
71
- context 'given a case statement' do
72
- context 'with a completely empty else-clause' do
73
- it 'registers an offense' do
74
- inspect_source(cop, 'case v; when a; foo else end')
75
- expect(cop.messages).to eq(['Redundant empty `else`-clause.'])
76
- end
77
- end
78
-
79
- context 'with an else-clause containing only the literal nil' do
80
- it 'registers an offense' do
81
- inspect_source(cop, 'case v; when a; foo; when b; bar; else nil end')
82
- expect(cop.messages).to eq(['Redundant empty `else`-clause.'])
83
- end
84
- end
85
-
86
- context 'with an else-clause with side-effects' do
87
- it "doesn't register an offence" do
88
- inspect_source(cop, 'case v; when a; foo; else b; nil end')
89
- expect(cop.messages).to be_empty
90
- end
91
- end
92
-
93
- context 'with no else-clause' do
94
- it "doesn't register an offence" do
95
- inspect_source(cop, 'case v; when a; foo; when b; bar; end')
96
- expect(cop.messages).to be_empty
97
- end
98
- end
99
- end
100
- end
@@ -1,135 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::EmptyLineBetweenDefs, :config do
6
- subject(:cop) { described_class.new(config) }
7
- let(:cop_config) { { 'AllowAdjacentOneLineDefs' => false } }
8
-
9
- it 'finds offenses in inner classes' do
10
- source = ['class K',
11
- ' def m',
12
- ' end',
13
- ' class J',
14
- ' def n',
15
- ' end',
16
- ' def o',
17
- ' end',
18
- ' end',
19
- ' # checks something',
20
- ' def p',
21
- ' end',
22
- 'end']
23
- inspect_source(cop, source)
24
- expect(cop.offenses.size).to eq(1)
25
- expect(cop.offenses.map(&:line).sort).to eq([7])
26
- end
27
-
28
- # Only one def, so rule about empty line *between* defs does not
29
- # apply.
30
- it 'accepts a def that follows a line with code' do
31
- source = ['x = 0',
32
- 'def m',
33
- 'end']
34
- inspect_source(cop, source)
35
- expect(cop.offenses).to be_empty
36
- end
37
-
38
- # Only one def, so rule about empty line *between* defs does not
39
- # apply.
40
- it 'accepts a def that follows code and a comment' do
41
- source = [' x = 0',
42
- ' # 123',
43
- ' def m',
44
- ' end']
45
- inspect_source(cop, source)
46
- expect(cop.offenses).to be_empty
47
- end
48
-
49
- it 'accepts the first def without leading empty line in a class' do
50
- source = ['class K',
51
- ' def m',
52
- ' end',
53
- 'end']
54
- inspect_source(cop, source)
55
- expect(cop.offenses).to be_empty
56
- end
57
-
58
- it 'accepts a def that follows an empty line and then a comment' do
59
- source = ['class A',
60
- ' # calculates value',
61
- ' def m',
62
- ' end',
63
- '',
64
- ' private',
65
- ' # calculates size',
66
- ' def n',
67
- ' end',
68
- 'end'
69
- ]
70
- inspect_source(cop, source)
71
- expect(cop.offenses).to be_empty
72
- end
73
-
74
- it 'accepts a def that is the first of a module' do
75
- source = ['module Util',
76
- ' public',
77
- ' #',
78
- ' def html_escape(s)',
79
- ' end',
80
- 'end'
81
- ]
82
- inspect_source(cop, source)
83
- expect(cop.messages).to be_empty
84
- end
85
-
86
- it 'accepts a nested def' do
87
- source = ['def mock_model(*attributes)',
88
- ' Class.new do',
89
- ' def initialize(attrs)',
90
- ' end',
91
- ' end',
92
- 'end'
93
- ]
94
- inspect_source(cop, source)
95
- expect(cop.messages).to be_empty
96
- end
97
-
98
- it 'registers an offense for adjacent one-liners by default' do
99
- source = ['def a; end',
100
- 'def b; end']
101
- inspect_source(cop, source)
102
- expect(cop.offenses.size).to eq(1)
103
- end
104
-
105
- it 'auto-corrects adjacent one-liners by default' do
106
- corrected = autocorrect_source(cop, [' def a; end',
107
- ' def b; end'])
108
- expect(corrected).to eq([' def a; end',
109
- '',
110
- ' def b; end'].join("\n"))
111
- end
112
-
113
- context 'when AllowAdjacentOneLineDefs is enabled' do
114
- let(:cop_config) { { 'AllowAdjacentOneLineDefs' => true } }
115
-
116
- it 'accepts adjacent one-liners' do
117
- source = ['def a; end',
118
- 'def b; end']
119
- inspect_source(cop, source)
120
- expect(cop.offenses).to be_empty
121
- end
122
-
123
- it 'registers an offense for adjacent defs if some are multi-line' do
124
- source = ['def a; end',
125
- 'def b; end',
126
- 'def c', # Not a one-liner, so this is an offense.
127
- 'end',
128
- # Also an offense since previous was multi-line:
129
- 'def d; end'
130
- ]
131
- inspect_source(cop, source)
132
- expect(cop.offenses.map(&:line)).to eq([3, 5])
133
- end
134
- end
135
- end
@@ -1,178 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::EmptyLinesAroundAccessModifier do
6
- subject(:cop) { described_class.new }
7
-
8
- %w(private protected public module_function).each do |access_modifier|
9
- it "requires blank line before #{access_modifier}" do
10
- inspect_source(cop,
11
- ['class Test',
12
- ' something',
13
- " #{access_modifier}",
14
- '',
15
- ' def test; end',
16
- 'end'])
17
- expect(cop.offenses.size).to eq(1)
18
- expect(cop.messages)
19
- .to eq(["Keep a blank line before and after `#{access_modifier}`."])
20
- end
21
-
22
- it "requires blank line after #{access_modifier}" do
23
- inspect_source(cop,
24
- ['class Test',
25
- ' something',
26
- '',
27
- " #{access_modifier}",
28
- ' def test; end',
29
- 'end'])
30
- expect(cop.offenses.size).to eq(1)
31
- expect(cop.messages)
32
- .to eq(["Keep a blank line before and after `#{access_modifier}`."])
33
- end
34
-
35
- it "ignores #{access_modifier} inside a method call" do
36
- inspect_source(cop,
37
- ['class Test',
38
- ' def #{access_modifier}?',
39
- " #{access_modifier}",
40
- ' end',
41
- 'end'])
42
- expect(cop.offenses.size).to eq(0)
43
- end
44
-
45
- it "ignores #{access_modifier} deep inside a method call" do
46
- inspect_source(cop,
47
- ['class Test',
48
- " def #{access_modifier}?",
49
- ' if true',
50
- " #{access_modifier}",
51
- ' end',
52
- ' end',
53
- 'end'])
54
- expect(cop.offenses.size).to eq(0)
55
- end
56
-
57
- it "ignores #{access_modifier} with a right-hand-side condition" do
58
- inspect_source(cop,
59
- ['class Test',
60
- " def #{access_modifier}?",
61
- " #{access_modifier} if true",
62
- ' end',
63
- 'end'])
64
- expect(cop.offenses.size).to eq(0)
65
- end
66
-
67
- it "autocorrects blank line before #{access_modifier}" do
68
- corrected = autocorrect_source(cop,
69
- ['class Test',
70
- ' something',
71
- " #{access_modifier}",
72
- '',
73
- ' def test; end',
74
- 'end'])
75
- expect(corrected).to eq(['class Test',
76
- ' something',
77
- '',
78
- " #{access_modifier}",
79
- '',
80
- ' def test; end',
81
- 'end'].join("\n"))
82
- end
83
-
84
- it 'autocorrects blank line after #{access_modifier}' do
85
- corrected = autocorrect_source(cop,
86
- ['class Test',
87
- ' something',
88
- '',
89
- " #{access_modifier}",
90
- ' def test; end',
91
- 'end'])
92
- expect(corrected).to eq(['class Test',
93
- ' something',
94
- '',
95
- " #{access_modifier}",
96
- '',
97
- ' def test; end',
98
- 'end'].join("\n"))
99
- end
100
-
101
- it 'accepts missing blank line when at the beginning of class/module' do
102
- inspect_source(cop,
103
- ['class Test',
104
- " #{access_modifier}",
105
- '',
106
- ' def test; end',
107
- 'end'])
108
- expect(cop.offenses).to be_empty
109
- end
110
-
111
- context 'at the beginning of block' do
112
- context 'for blocks defined with do' do
113
- it 'accepts missing blank line' do
114
- inspect_source(cop,
115
- ['included do',
116
- " #{access_modifier}",
117
- '',
118
- ' def test; end',
119
- 'end'])
120
- expect(cop.offenses).to be_empty
121
- end
122
-
123
- it 'accepts missing blank line with arguments' do
124
- inspect_source(cop,
125
- ['included do |foo|',
126
- " #{access_modifier}",
127
- '',
128
- ' def test; end',
129
- 'end'])
130
- expect(cop.offenses).to be_empty
131
- end
132
- end
133
-
134
- context 'for blocks defined with {}' do
135
- it 'accepts missing blank line' do
136
- inspect_source(cop,
137
- ['included {',
138
- " #{access_modifier}",
139
- '',
140
- ' def test; end',
141
- '}'])
142
- expect(cop.offenses).to be_empty
143
- end
144
-
145
- it 'accepts missing blank line with arguments' do
146
- inspect_source(cop,
147
- ['included { |foo|',
148
- " #{access_modifier}",
149
- '',
150
- ' def test; end',
151
- '}'])
152
- expect(cop.offenses).to be_empty
153
- end
154
- end
155
- end
156
-
157
- it 'accepts missing blank line when at the end of block' do
158
- inspect_source(cop,
159
- ['class Test',
160
- ' def test; end',
161
- '',
162
- " #{access_modifier}",
163
- 'end'])
164
- expect(cop.offenses).to be_empty
165
- end
166
-
167
- it 'recognizes blank lines with DOS style line endings' do
168
- inspect_source(cop,
169
- ["class Test\r",
170
- "\r",
171
- " #{access_modifier}\r",
172
- "\r",
173
- " def test; end\r",
174
- "end\r"])
175
- expect(cop.offenses.size).to eq(0)
176
- end
177
- end
178
- end
@@ -1,103 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::EmptyLinesAroundBlockBody, :config do
6
- subject(:cop) { described_class.new(config) }
7
-
8
- # Test blocks using both {} and do..end
9
- [%w({ }), %w(do end)].each do |open, close|
10
- context "when EnforcedStyle is no_empty_lines for #{open} #{close} block" do
11
- let(:cop_config) { { 'EnforcedStyle' => 'no_empty_lines' } }
12
-
13
- it 'registers an offense for block body starting with a blank' do
14
- inspect_source(cop,
15
- ["some_method #{open}",
16
- '',
17
- ' do_something',
18
- "#{close}"])
19
- expect(cop.messages)
20
- .to eq(['Extra empty line detected at block body beginning.'])
21
- end
22
-
23
- it 'autocorrects block body containing only a blank' do
24
- corrected = autocorrect_source(cop,
25
- ["some_method #{open}",
26
- '',
27
- "#{close}"])
28
- expect(corrected).to eq ["some_method #{open}",
29
- "#{close}"].join("\n")
30
- end
31
-
32
- it 'registers an offense for block body ending with a blank' do
33
- inspect_source(cop,
34
- ["some_method #{open}",
35
- ' do_something',
36
- '',
37
- "#{close}"])
38
- expect(cop.messages)
39
- .to eq(['Extra empty line detected at block body end.'])
40
- end
41
-
42
- it 'accepts block body starting with a line with spaces' do
43
- inspect_source(cop,
44
- ["some_method #{open}",
45
- ' ',
46
- ' do_something',
47
- "#{close}"])
48
- expect(cop.offenses).to be_empty
49
- end
50
-
51
- it 'is not fooled by single line blocks' do
52
- inspect_source(cop,
53
- ["some_method #{open} do_something #{close}",
54
- '',
55
- 'something_else'])
56
- expect(cop.offenses).to be_empty
57
- end
58
- end
59
-
60
- context "when EnforcedStyle is empty_lines for #{open} #{close} block" do
61
- let(:cop_config) { { 'EnforcedStyle' => 'empty_lines' } }
62
-
63
- it 'registers an offense for block body not starting or ending with a ' \
64
- 'blank' do
65
- inspect_source(cop,
66
- ["some_method #{open}",
67
- ' do_something',
68
- "#{close}"])
69
- expect(cop.messages).to eq(['Empty line missing at block body '\
70
- 'beginning.',
71
- 'Empty line missing at block body end.'])
72
- end
73
-
74
- it 'autocorrects block body containing nothing' do
75
- corrected = autocorrect_source(cop,
76
- ["some_method #{open}",
77
- "#{close}"])
78
- expect(corrected).to eq ["some_method #{open}",
79
- '',
80
- "#{close}"].join("\n")
81
- end
82
-
83
- it 'autocorrects beginning and end' do
84
- new_source = autocorrect_source(cop,
85
- ["some_method #{open}",
86
- ' do_something',
87
- "#{close}"])
88
- expect(new_source).to eq(["some_method #{open}",
89
- '',
90
- ' do_something',
91
- '',
92
- "#{close}"].join("\n"))
93
- end
94
-
95
- it 'is not fooled by single line blocks' do
96
- inspect_source(cop,
97
- ["some_method #{open} do_something #{close}",
98
- 'something_else'])
99
- expect(cop.offenses).to be_empty
100
- end
101
- end
102
- end
103
- end