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,509 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::IndentationConsistency do
6
- subject(:cop) { described_class.new }
7
-
8
- context 'with if statement' do
9
- it 'registers an offense for bad indentation in an if body' do
10
- inspect_source(cop,
11
- ['if cond',
12
- ' func',
13
- ' func',
14
- 'end'])
15
- expect(cop.messages).to eq(['Inconsistent indentation detected.'])
16
- end
17
-
18
- it 'registers an offense for bad indentation in an else body' do
19
- inspect_source(cop,
20
- ['if cond',
21
- ' func1',
22
- 'else',
23
- ' func2',
24
- ' func2',
25
- 'end'])
26
- expect(cop.messages).to eq(['Inconsistent indentation detected.'])
27
- end
28
-
29
- it 'registers an offense for bad indentation in an elsif body' do
30
- inspect_source(cop,
31
- ['if a1',
32
- ' b1',
33
- 'elsif a2',
34
- ' b2',
35
- 'b3',
36
- 'else',
37
- ' c',
38
- 'end'])
39
- expect(cop.messages).to eq(['Inconsistent indentation detected.'])
40
- end
41
-
42
- it 'autocorrects bad indentation' do
43
- corrected = autocorrect_source(cop,
44
- ['if a1',
45
- ' b1',
46
- 'elsif a2',
47
- ' b2',
48
- ' b3',
49
- 'else',
50
- ' c',
51
- 'end'])
52
- expect(corrected).to eq ['if a1',
53
- ' b1',
54
- 'elsif a2',
55
- ' b2',
56
- ' b3',
57
- 'else',
58
- ' c',
59
- 'end'].join("\n")
60
- end
61
-
62
- it 'accepts a one line if statement' do
63
- inspect_source(cop, 'if cond then func1 else func2 end')
64
- expect(cop.offenses).to be_empty
65
- end
66
-
67
- it 'accepts a correctly aligned if/elsif/else/end' do
68
- inspect_source(cop,
69
- ['if a1',
70
- ' b1',
71
- 'elsif a2',
72
- ' b2',
73
- 'else',
74
- ' c',
75
- 'end'])
76
- expect(cop.offenses).to be_empty
77
- end
78
-
79
- it 'accepts if/elsif/else/end laid out as a table' do
80
- inspect_source(cop,
81
- ['if @io == $stdout then str << "$stdout"',
82
- 'elsif @io == $stdin then str << "$stdin"',
83
- 'elsif @io == $stderr then str << "$stderr"',
84
- 'else str << @io.class.to_s',
85
- 'end'])
86
- expect(cop.offenses).to be_empty
87
- end
88
-
89
- it 'accepts if/then/else/end laid out as another table' do
90
- inspect_source(cop,
91
- ["if File.exist?('config.save')",
92
- 'then ConfigTable.load',
93
- 'else ConfigTable.new',
94
- 'end'])
95
- expect(cop.offenses).to be_empty
96
- end
97
-
98
- it 'accepts an empty if' do
99
- inspect_source(cop,
100
- ['if a',
101
- 'else',
102
- 'end'])
103
- expect(cop.offenses).to be_empty
104
- end
105
-
106
- it 'accepts an if in assignment with end aligned with variable' do
107
- inspect_source(cop,
108
- ['var = if a',
109
- ' 0',
110
- 'end',
111
- '@var = if a',
112
- ' 0',
113
- 'end',
114
- '$var = if a',
115
- ' 0',
116
- 'end',
117
- 'var ||= if a',
118
- ' 0',
119
- 'end',
120
- 'var &&= if a',
121
- ' 0',
122
- 'end',
123
- 'var -= if a',
124
- ' 0',
125
- 'end',
126
- 'VAR = if a',
127
- ' 0',
128
- 'end'])
129
- expect(cop.offenses).to be_empty
130
- end
131
-
132
- it 'accepts an if/else in assignment with end aligned with variable' do
133
- inspect_source(cop,
134
- ['var = if a',
135
- ' 0',
136
- 'else',
137
- ' 1',
138
- 'end'])
139
- expect(cop.offenses).to be_empty
140
- end
141
-
142
- it 'accepts an if/else in assignment with end aligned with variable ' \
143
- 'and chaining after the end' do
144
- inspect_source(cop,
145
- ['var = if a',
146
- ' 0',
147
- 'else',
148
- ' 1',
149
- 'end.abc.join("")'])
150
- expect(cop.offenses).to be_empty
151
- end
152
-
153
- it 'accepts an if/else in assignment with end aligned with variable ' \
154
- 'and chaining with a block after the end' do
155
- inspect_source(cop,
156
- ['var = if a',
157
- ' 0',
158
- 'else',
159
- ' 1',
160
- 'end.abc.tap {}'])
161
- expect(cop.offenses).to be_empty
162
- end
163
-
164
- it 'accepts an if in assignment with end aligned with if' do
165
- inspect_source(cop,
166
- ['var = if a',
167
- ' 0',
168
- ' end'])
169
- expect(cop.offenses).to be_empty
170
- end
171
-
172
- it 'accepts an if/else in assignment with end aligned with if' do
173
- inspect_source(cop,
174
- ['var = if a',
175
- ' 0',
176
- ' else',
177
- ' 1',
178
- ' end'])
179
- expect(cop.offenses).to be_empty
180
- end
181
-
182
- it 'accepts an if/else in assignment on next line with end aligned ' \
183
- 'with if' do
184
- inspect_source(cop,
185
- ['var =',
186
- ' if a',
187
- ' 0',
188
- ' else',
189
- ' 1',
190
- ' end'])
191
- expect(cop.offenses).to be_empty
192
- end
193
-
194
- it 'accepts an if/else branches with rescue clauses' do
195
- # Because of how the rescue clauses come out of Parser, these are
196
- # special and need to be tested.
197
- inspect_source(cop,
198
- ['if a',
199
- ' a rescue nil',
200
- 'else',
201
- ' a rescue nil',
202
- 'end'])
203
- expect(cop.offenses).to be_empty
204
- end
205
- end
206
-
207
- context 'with unless' do
208
- it 'registers an offense for bad indentation in an unless body' do
209
- inspect_source(cop,
210
- ['unless cond',
211
- ' func',
212
- ' func',
213
- 'end'])
214
- expect(cop.messages).to eq(['Inconsistent indentation detected.'])
215
- end
216
-
217
- it 'accepts an empty unless' do
218
- inspect_source(cop,
219
- ['unless a',
220
- 'else',
221
- 'end'])
222
- expect(cop.offenses).to be_empty
223
- end
224
- end
225
-
226
- context 'with case' do
227
- it 'registers an offense for bad indentation in a case/when body' do
228
- inspect_source(cop,
229
- ['case a',
230
- 'when b',
231
- ' c',
232
- ' d',
233
- 'end'])
234
- expect(cop.messages).to eq(['Inconsistent indentation detected.'])
235
- end
236
-
237
- it 'registers an offense for bad indentation in a case/else body' do
238
- inspect_source(cop,
239
- ['case a',
240
- 'when b',
241
- ' c',
242
- 'when d',
243
- ' e',
244
- 'else',
245
- ' f',
246
- ' g',
247
- 'end'])
248
- expect(cop.messages).to eq(['Inconsistent indentation detected.'])
249
- end
250
-
251
- it 'accepts correctly indented case/when/else' do
252
- inspect_source(cop,
253
- ['case a',
254
- 'when b',
255
- ' c',
256
- ' c',
257
- 'when d',
258
- 'else',
259
- ' f',
260
- 'end'])
261
- expect(cop.offenses).to be_empty
262
- end
263
-
264
- it 'accepts case/when/else laid out as a table' do
265
- inspect_source(cop,
266
- ['case sexp.loc.keyword.source',
267
- "when 'if' then cond, body, _else = *sexp",
268
- "when 'unless' then cond, _else, body = *sexp",
269
- 'else cond, body = *sexp',
270
- 'end'])
271
- expect(cop.offenses).to be_empty
272
- end
273
-
274
- it 'accepts case/when/else with then beginning a line' do
275
- inspect_source(cop,
276
- ['case sexp.loc.keyword.source',
277
- "when 'if'",
278
- 'then cond, body, _else = *sexp',
279
- 'end'])
280
- expect(cop.offenses).to be_empty
281
- end
282
-
283
- it 'accepts indented when/else plus indented body' do
284
- # "Indent when as deep as case" is the job of another cop.
285
- inspect_source(cop,
286
- ['case code_type',
287
- " when 'ruby', 'sql', 'plain'",
288
- ' code_type',
289
- " when 'erb'",
290
- " 'ruby; html-script: true'",
291
- ' when "html"',
292
- " 'xml'",
293
- ' else',
294
- " 'plain'",
295
- 'end'])
296
- expect(cop.offenses).to be_empty
297
- end
298
- end
299
-
300
- context 'with while/until' do
301
- it 'registers an offense for bad indentation in a while body' do
302
- inspect_source(cop,
303
- ['while cond',
304
- ' func',
305
- ' func',
306
- 'end'])
307
- expect(cop.messages).to eq(['Inconsistent indentation detected.'])
308
- end
309
-
310
- it 'registers an offense for bad indentation in begin/end/while' do
311
- inspect_source(cop,
312
- ['something = begin',
313
- ' func1',
314
- ' func2',
315
- 'end while cond'])
316
- expect(cop.messages).to eq(['Inconsistent indentation detected.'])
317
- end
318
-
319
- it 'registers an offense for bad indentation in an until body' do
320
- inspect_source(cop,
321
- ['until cond',
322
- ' func',
323
- ' func',
324
- 'end'])
325
- expect(cop.messages).to eq(['Inconsistent indentation detected.'])
326
- end
327
-
328
- it 'accepts an empty while' do
329
- inspect_source(cop,
330
- ['while a',
331
- 'end'])
332
- expect(cop.offenses).to be_empty
333
- end
334
- end
335
-
336
- context 'with for' do
337
- it 'registers an offense for bad indentation in a for body' do
338
- inspect_source(cop,
339
- ['for var in 1..10',
340
- ' func',
341
- 'func',
342
- 'end'])
343
- expect(cop.messages).to eq(['Inconsistent indentation detected.'])
344
- end
345
-
346
- it 'accepts an empty for' do
347
- inspect_source(cop,
348
- ['for var in 1..10',
349
- 'end'])
350
- expect(cop.offenses).to be_empty
351
- end
352
- end
353
-
354
- context 'with def/defs' do
355
- it 'registers an offense for bad indentation in a def body' do
356
- inspect_source(cop,
357
- ['def test',
358
- ' func1',
359
- ' func2',
360
- 'end'])
361
- expect(cop.messages)
362
- .to eq(['Inconsistent indentation detected.'])
363
- end
364
-
365
- it 'registers an offense for bad indentation in a defs body' do
366
- inspect_source(cop,
367
- ['def self.test',
368
- ' func',
369
- ' func',
370
- 'end'])
371
- expect(cop.messages).to eq(['Inconsistent indentation detected.'])
372
- end
373
-
374
- it 'accepts an empty def body' do
375
- inspect_source(cop,
376
- ['def test',
377
- 'end'])
378
- expect(cop.offenses).to be_empty
379
- end
380
-
381
- it 'accepts an empty defs body' do
382
- inspect_source(cop,
383
- ['def self.test',
384
- 'end'])
385
- expect(cop.offenses).to be_empty
386
- end
387
- end
388
-
389
- context 'with class' do
390
- it 'registers an offense for bad indentation in a class body' do
391
- inspect_source(cop,
392
- ['class Test',
393
- ' def func1',
394
- ' end',
395
- ' def func2',
396
- ' end',
397
- 'end'])
398
- expect(cop.messages)
399
- .to eq(['Inconsistent indentation detected.'])
400
- end
401
-
402
- it 'accepts an empty class body' do
403
- inspect_source(cop,
404
- ['class Test',
405
- 'end'])
406
- expect(cop.offenses).to be_empty
407
- end
408
-
409
- it 'accepts indented public, protected, and private' do
410
- inspect_source(cop,
411
- ['class Test',
412
- ' public',
413
- '',
414
- ' def e',
415
- ' end',
416
- '',
417
- ' protected',
418
- '',
419
- ' def f',
420
- ' end',
421
- '',
422
- ' private',
423
- '',
424
- ' def g',
425
- ' end',
426
- 'end'])
427
- expect(cop.offenses).to be_empty
428
- end
429
-
430
- it 'registers an offense for bad indentation in def but not for ' \
431
- 'outdented public, protected, and private' do
432
- inspect_source(cop,
433
- ['class Test',
434
- 'public',
435
- '',
436
- ' def e',
437
- ' end',
438
- '',
439
- 'protected',
440
- '',
441
- ' def f',
442
- ' end',
443
- '',
444
- 'private',
445
- '',
446
- ' def g',
447
- ' end',
448
- 'end'])
449
- expect(cop.messages).to eq(['Inconsistent indentation detected.'])
450
- expect(cop.highlights).to eq(["def g\n end"])
451
- end
452
- end
453
-
454
- context 'with module' do
455
- it 'registers an offense for bad indentation in a module body' do
456
- inspect_source(cop,
457
- ['module Test',
458
- ' def func1',
459
- ' end',
460
- ' def func2',
461
- ' end',
462
- 'end'])
463
- expect(cop.messages).to eq(['Inconsistent indentation detected.'])
464
- end
465
-
466
- it 'accepts an empty module body' do
467
- inspect_source(cop,
468
- ['module Test',
469
- 'end'])
470
- expect(cop.offenses).to be_empty
471
- end
472
- end
473
-
474
- context 'with block' do
475
- it 'registers an offense for bad indentation in a do/end body' do
476
- inspect_source(cop,
477
- ['a = func do',
478
- ' b',
479
- ' c',
480
- 'end'])
481
- expect(cop.messages).to eq(['Inconsistent indentation detected.'])
482
- end
483
-
484
- it 'registers an offense for bad indentation in a {} body' do
485
- inspect_source(cop,
486
- ['func {',
487
- ' b',
488
- ' c',
489
- '}'])
490
- expect(cop.messages).to eq(['Inconsistent indentation detected.'])
491
- end
492
-
493
- it 'accepts a correctly indented block body' do
494
- inspect_source(cop,
495
- ['a = func do',
496
- ' b',
497
- ' c',
498
- 'end'])
499
- expect(cop.offenses).to be_empty
500
- end
501
-
502
- it 'accepts an empty block body' do
503
- inspect_source(cop,
504
- ['a = func do',
505
- 'end'])
506
- expect(cop.offenses).to be_empty
507
- end
508
- end
509
- end