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,84 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::FileName do
6
- subject(:cop) { described_class.new(config) }
7
-
8
- let(:config) do
9
- RuboCop::Config.new(
10
- { 'AllCops' => { 'Include' => includes } },
11
- '/some/.rubocop.yml'
12
- )
13
- end
14
-
15
- let(:includes) { [] }
16
- let(:source) { ['print 1'] }
17
- let(:processed_source) { parse_source(source) }
18
-
19
- before do
20
- allow(processed_source.buffer)
21
- .to receive(:name).and_return(filename)
22
- _investigate(cop, processed_source)
23
- end
24
-
25
- context 'with camelCase file names ending in .rb' do
26
- let(:filename) { '/some/dir/testCase.rb' }
27
-
28
- it 'reports an offense' do
29
- expect(cop.offenses.size).to eq(1)
30
- end
31
- end
32
-
33
- context 'with camelCase file names without file extension' do
34
- let(:filename) { '/some/dir/testCase' }
35
-
36
- it 'reports an offense' do
37
- expect(cop.offenses.size).to eq(1)
38
- end
39
- end
40
-
41
- context 'with snake_case file names ending in .rb' do
42
- let(:filename) { '/some/dir/test_case.rb' }
43
-
44
- it 'reports an offense' do
45
- expect(cop.offenses).to be_empty
46
- end
47
- end
48
-
49
- context 'with snake_case file names without file extension' do
50
- let(:filename) { '/some/dir/test_case' }
51
-
52
- it 'does not report an offense' do
53
- expect(cop.offenses).to be_empty
54
- end
55
- end
56
-
57
- context 'with snake_case file names with non-rb extension' do
58
- let(:filename) { '/some/dir/some_task.rake' }
59
-
60
- it 'does not report an offense' do
61
- expect(cop.offenses).to be_empty
62
- end
63
- end
64
-
65
- context 'with snake_case file names with multiple extensions' do
66
- let(:filename) { 'some/dir/some_view.html.slim_spec.rb' }
67
-
68
- it 'does not report an offense' do
69
- expect(cop.offenses).to be_empty
70
- end
71
- end
72
-
73
- context 'when the file is specified in AllCops/Include' do
74
- let(:includes) { ['**/Gemfile'] }
75
-
76
- context 'with a non-snake_case file name' do
77
- let(:filename) { '/some/dir/Gemfile' }
78
-
79
- it 'does not report an offense' do
80
- expect(cop.offenses).to be_empty
81
- end
82
- end
83
- end
84
- end
@@ -1,304 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::FirstParameterIndentation, :config do
6
- subject(:cop) { described_class.new(config) }
7
- let(:config) do
8
- RuboCop::Config
9
- .new('Style/FirstParameterIndentation' => {
10
- 'EnforcedStyle' => style,
11
- 'SupportedStyles' =>
12
- %w(consistent special_for_inner_method_call
13
- special_for_inner_method_call_in_parentheses)
14
- },
15
- 'Style/IndentationWidth' => { 'Width' => indentation_width })
16
- end
17
-
18
- shared_examples 'common behavior' do
19
- context 'when IndentationWidth:Width is 2' do
20
- let(:indentation_width) { 2 }
21
-
22
- it 'registers an offense for an over-indented first parameter' do
23
- inspect_source(cop, ['run(',
24
- ' :foo,',
25
- ' bar: 3',
26
- ')'])
27
- expect(cop.messages).to eq(['Indent the first parameter one step ' \
28
- 'more than the previous line.'])
29
- expect(cop.highlights).to eq([':foo'])
30
- end
31
-
32
- it 'registers an offense for an under-indented first parameter' do
33
- inspect_source(cop, ['run(',
34
- ' :foo,',
35
- ' bar: 3',
36
- ')'])
37
- expect(cop.highlights).to eq([':foo'])
38
- end
39
-
40
- context 'for assignment' do
41
- it 'accepts a correctly indented first parameter and does not care ' \
42
- 'about the second parameter' do
43
- inspect_source(cop, ['x = run(',
44
- ' :foo,',
45
- ' bar: 3',
46
- ')'])
47
- expect(cop.offenses).to be_empty
48
- end
49
-
50
- context 'with line break' do
51
- it 'accepts a correctly indented first parameter' do
52
- inspect_source(cop, ['x =',
53
- ' run(',
54
- ' :foo)'])
55
- expect(cop.offenses).to be_empty
56
- end
57
-
58
- it 'registers an offense for an under-indented first parameter' do
59
- inspect_source(cop, ['@x =',
60
- ' run(',
61
- ' :foo)'])
62
- expect(cop.highlights).to eq([':foo'])
63
- end
64
- end
65
- end
66
-
67
- it 'accepts a first parameter that is not preceded by a line break' do
68
- inspect_source(cop, ['run :foo,',
69
- ' bar: 3'])
70
- expect(cop.offenses).to be_empty
71
- end
72
-
73
- context 'when the receiver contains a line break' do
74
- it 'accepts a correctly indented first parameter' do
75
- inspect_source(cop, ['puts x.',
76
- ' merge(',
77
- ' b: 2',
78
- ' )'])
79
- expect(cop.offenses).to be_empty
80
- end
81
-
82
- it 'registers an offense for an over-indented first parameter' do
83
- inspect_source(cop, ['puts x.',
84
- ' merge(',
85
- ' b: 2',
86
- ' )'])
87
- expect(cop.messages).to eq(['Indent the first parameter one step ' \
88
- 'more than the previous line.'])
89
- expect(cop.highlights).to eq(['b: 2'])
90
- end
91
-
92
- it 'accepts a correctly indented first parameter preceded by an ' \
93
- 'empty line' do
94
- inspect_source(cop, ['puts x.',
95
- ' merge(',
96
- '',
97
- ' b: 2',
98
- ' )'])
99
- expect(cop.offenses).to be_empty
100
- end
101
-
102
- context 'when preceded by a comment line' do
103
- it 'accepts a correctly indented first parameter' do
104
- inspect_source(cop, ['puts x.',
105
- ' merge( # EOL comment',
106
- ' # comment',
107
- ' b: 2',
108
- ' )'])
109
- expect(cop.offenses).to be_empty
110
- end
111
-
112
- it 'registers an offense for an under-indented first parameter' do
113
- inspect_source(cop, ['puts x.',
114
- ' merge(',
115
- ' # comment',
116
- ' b: 2',
117
- ' )'])
118
- expect(cop.messages).to eq(['Indent the first parameter one ' \
119
- 'step more than the previous line ' \
120
- '(not counting the comment).'])
121
- expect(cop.highlights).to eq(['b: 2'])
122
- end
123
- end
124
- end
125
-
126
- it 'accepts method calls with no parameters' do
127
- inspect_source(cop, ['run()',
128
- 'run_again'])
129
- expect(cop.offenses).to be_empty
130
- end
131
-
132
- it 'accepts operator calls' do
133
- inspect_source(cop, ['params = default_cfg.keys - %w(Description) -',
134
- ' cfg.keys'])
135
- expect(cop.offenses).to be_empty
136
- end
137
-
138
- it 'does not view []= as an outer method call' do
139
- inspect_source(cop, ['@subject_results[subject] = original.update(',
140
- ' mutation_results: (dup << mutation_result),',
141
- ' tests: test_result.tests',
142
- ')'])
143
- expect(cop.offenses).to be_empty
144
- end
145
-
146
- it 'does not view chained call as an outer method call' do
147
- inspect_source(cop, [' A = Regexp.union(',
148
- ' /[A-Za-z_][A-Za-z\d_]*[!?=]?/,',
149
- ' *AST::Types::OPERATOR_METHODS.map(&:to_s)',
150
- ' ).freeze'])
151
- expect(cop.offenses).to be_empty
152
- end
153
-
154
- it 'auto-corrects an under-indented first parameter' do
155
- new_source = autocorrect_source(cop, ['x =',
156
- ' run(',
157
- ' :foo,',
158
- ' bar: 3',
159
- ')'])
160
- expect(new_source).to eq(['x =',
161
- ' run(',
162
- ' :foo,',
163
- ' bar: 3',
164
- ')'].join("\n"))
165
- end
166
- end
167
-
168
- context 'when IndentationWidth:Width is 4' do
169
- let(:indentation_width) { 4 }
170
-
171
- it 'auto-corrects an over-indented first parameter' do
172
- new_source = autocorrect_source(cop, ['run(',
173
- ' :foo,',
174
- ' bar: 3)'])
175
- expect(new_source).to eq(['run(',
176
- ' :foo,',
177
- ' bar: 3)'].join("\n"))
178
- end
179
- end
180
- end
181
-
182
- context 'when EnforcedStyle is special_for_inner_method_call' do
183
- let(:style) { 'special_for_inner_method_call' }
184
- let(:indentation_width) { 2 }
185
-
186
- include_examples 'common behavior'
187
-
188
- context 'for method calls within method calls' do
189
- context 'with outer parentheses' do
190
- it 'registers an offense for an over-indented first parameter' do
191
- inspect_source(cop, ['run(:foo, defaults.merge(',
192
- ' bar: 3))'])
193
- expect(cop.messages).to eq(['Indent the first parameter one step ' \
194
- 'more than `defaults.merge(`.'])
195
- expect(cop.highlights).to eq(['bar: 3'])
196
- end
197
- end
198
-
199
- context 'without outer parentheses' do
200
- it 'accepts a first parameter with special indentation' do
201
- inspect_source(cop, ['run :foo, defaults.merge(',
202
- ' bar: 3)'])
203
- expect(cop.offenses).to be_empty
204
- end
205
- end
206
-
207
- it 'auto-corrects an over-indented first parameter' do
208
- new_source = autocorrect_source(cop,
209
- ['run(:foo, defaults.merge(',
210
- ' bar: 3))'])
211
- expect(new_source).to eq(['run(:foo, defaults.merge(',
212
- ' bar: 3))'].join("\n"))
213
- end
214
- end
215
- end
216
-
217
- context 'when EnforcedStyle is ' \
218
- 'special_for_inner_method_call_in_parentheses' do
219
- let(:style) { 'special_for_inner_method_call_in_parentheses' }
220
- let(:indentation_width) { 2 }
221
-
222
- include_examples 'common behavior'
223
-
224
- context 'for method calls within method calls' do
225
- context 'with outer parentheses' do
226
- it 'registers an offense for an over-indented first parameter' do
227
- inspect_source(cop, ['run(:foo, defaults.merge(',
228
- ' bar: 3))'])
229
- expect(cop.messages).to eq(['Indent the first parameter one step ' \
230
- 'more than `defaults.merge(`.'])
231
- expect(cop.highlights).to eq(['bar: 3'])
232
- end
233
-
234
- it 'registers an offense for an under-indented first parameter' do
235
- inspect_source(cop, ['run(:foo, defaults.',
236
- ' merge(',
237
- ' bar: 3))'])
238
- expect(cop.messages).to eq(['Indent the first parameter one step ' \
239
- 'more than the previous line.'])
240
- expect(cop.highlights).to eq(['bar: 3'])
241
- end
242
-
243
- it 'accepts a correctly indented first parameter in interpolation' do
244
- inspect_source(cop, ['puts %(',
245
- ' <p>',
246
- ' #{Array(',
247
- ' 42',
248
- ' )}',
249
- ' </p>',
250
- ')'])
251
- expect(cop.offenses).to be_empty
252
- end
253
- end
254
-
255
- context 'without outer parentheses' do
256
- it 'accepts a first parameter with consistent style indentation' do
257
- inspect_source(cop, ['run :foo, defaults.merge(',
258
- ' bar: 3)'])
259
- expect(cop.offenses).to be_empty
260
- end
261
- end
262
-
263
- it 'auto-corrects an over-indented first parameter' do
264
- new_source = autocorrect_source(cop,
265
- ['run(:foo, defaults.merge(',
266
- ' bar: 3))'])
267
- expect(new_source).to eq(['run(:foo, defaults.merge(',
268
- ' bar: 3))'].join("\n"))
269
- end
270
- end
271
- end
272
-
273
- context 'when EnforcedStyle is consistent' do
274
- let(:style) { 'consistent' }
275
- let(:indentation_width) { 2 }
276
-
277
- include_examples 'common behavior'
278
-
279
- context 'for method calls within method calls' do
280
- it 'registers an offense for an over-indented first parameter' do
281
- inspect_source(cop, ['run(:foo, defaults.merge(',
282
- ' bar: 3))'])
283
- expect(cop.messages).to eq(['Indent the first parameter one step ' \
284
- 'more than the previous line.'])
285
- expect(cop.highlights).to eq(['bar: 3'])
286
- end
287
-
288
- it 'accepts first parameter indented relative to previous line' do
289
- inspect_source(cop,
290
- [' @diagnostics.process(Diagnostic.new(',
291
- ' :error, :token, { :token => name }, location))'])
292
- expect(cop.offenses).to be_empty
293
- end
294
-
295
- it 'auto-corrects an over-indented first parameter' do
296
- new_source = autocorrect_source(cop,
297
- ['run(:foo, defaults.merge(',
298
- ' bar: 3))'])
299
- expect(new_source).to eq(['run(:foo, defaults.merge(',
300
- ' bar: 3))'].join("\n"))
301
- end
302
- end
303
- end
304
- end
@@ -1,23 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::FlipFlop do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for inclusive flip flops' do
9
- inspect_source(cop,
10
- ['DATA.each_line do |line|',
11
- 'print line if (line =~ /begin/)..(line =~ /end/)',
12
- 'end'])
13
- expect(cop.offenses.size).to eq(1)
14
- end
15
-
16
- it 'registers an offense for exclusive flip flops' do
17
- inspect_source(cop,
18
- ['DATA.each_line do |line|',
19
- 'print line if (line =~ /begin/)...(line =~ /end/)',
20
- 'end'])
21
- expect(cop.offenses.size).to eq(1)
22
- end
23
- end
@@ -1,105 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::For, :config do
6
- subject(:cop) { described_class.new(config) }
7
-
8
- context 'when each is the enforced style' do
9
- let(:cop_config) { { 'EnforcedStyle' => 'each' } }
10
-
11
- it 'registers an offense for for' do
12
- inspect_source(cop,
13
- ['def func',
14
- ' for n in [1, 2, 3] do',
15
- ' puts n',
16
- ' end',
17
- 'end'])
18
- expect(cop.messages).to eq(['Prefer `each` over `for`.'])
19
- expect(cop.highlights).to eq(['for'])
20
- expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' => 'for')
21
- end
22
-
23
- it 'registers an offense for opposite + correct style' do
24
- inspect_source(cop,
25
- ['def func',
26
- ' for n in [1, 2, 3] do',
27
- ' puts n',
28
- ' end',
29
- ' [1, 2, 3].each do |n|',
30
- ' puts n',
31
- ' end',
32
- 'end'])
33
- expect(cop.messages).to eq(['Prefer `each` over `for`.'])
34
- expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
35
- end
36
-
37
- it 'accepts multiline each' do
38
- inspect_source(cop,
39
- ['def func',
40
- ' [1, 2, 3].each do |n|',
41
- ' puts n',
42
- ' end',
43
- 'end'])
44
- expect(cop.offenses).to be_empty
45
- end
46
-
47
- it 'accepts :for' do
48
- inspect_source(cop, '[:for, :ala, :bala]')
49
- expect(cop.offenses).to be_empty
50
- end
51
-
52
- it 'accepts def for' do
53
- inspect_source(cop, 'def for; end')
54
- expect(cop.offenses).to be_empty
55
- end
56
- end
57
-
58
- context 'when for is the enforced style' do
59
- let(:cop_config) { { 'EnforcedStyle' => 'for' } }
60
-
61
- it 'accepts for' do
62
- inspect_source(cop,
63
- ['def func',
64
- ' for n in [1, 2, 3] do',
65
- ' puts n',
66
- ' end',
67
- 'end'])
68
- expect(cop.offenses).to be_empty
69
- end
70
-
71
- it 'registers an offense for multiline each' do
72
- inspect_source(cop,
73
- ['def func',
74
- ' [1, 2, 3].each do |n|',
75
- ' puts n',
76
- ' end',
77
- 'end'])
78
- expect(cop.messages).to eq(['Prefer `for` over `each`.'])
79
- expect(cop.highlights).to eq(['each'])
80
- expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' => 'each')
81
- end
82
-
83
- it 'registers an offense for correct + opposite style' do
84
- inspect_source(cop,
85
- ['def func',
86
- ' for n in [1, 2, 3] do',
87
- ' puts n',
88
- ' end',
89
- ' [1, 2, 3].each do |n|',
90
- ' puts n',
91
- ' end',
92
- 'end'])
93
- expect(cop.messages).to eq(['Prefer `for` over `each`.'])
94
- expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
95
- end
96
-
97
- it 'accepts single line each' do
98
- inspect_source(cop,
99
- ['def func',
100
- ' [1, 2, 3].each { |n| puts n }',
101
- 'end'])
102
- expect(cop.offenses).to be_empty
103
- end
104
- end
105
- end