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,29 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::ArrayJoin do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for an array followed by string' do
9
- inspect_source(cop,
10
- '%w(one two three) * ", "')
11
- expect(cop.offenses.size).to eq(1)
12
- end
13
-
14
- it 'does not register an offense for numbers' do
15
- inspect_source(cop,
16
- '%w(one two three) * 4')
17
- expect(cop.offenses).to be_empty
18
- end
19
-
20
- it 'does not register an offense for ambiguous cases' do
21
- inspect_source(cop,
22
- 'test * ", "')
23
- expect(cop.offenses).to be_empty
24
-
25
- inspect_source(cop,
26
- '%w(one two three) * test')
27
- expect(cop.offenses).to be_empty
28
- end
29
- end
@@ -1,21 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::AsciiComments do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for a comment with non-ascii chars' do
9
- inspect_source(cop,
10
- ['# encoding: utf-8',
11
- '# 这是什么?'])
12
- expect(cop.offenses.size).to eq(1)
13
- expect(cop.messages)
14
- .to eq(['Use only ascii symbols in comments.'])
15
- end
16
-
17
- it 'accepts comments with only ascii chars' do
18
- inspect_source(cop, '# AZaz1@$%~,;*_`|')
19
- expect(cop.offenses).to be_empty
20
- end
21
- end
@@ -1,36 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::AsciiIdentifiers do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for a variable name with non-ascii chars' do
9
- inspect_source(cop,
10
- ['# encoding: utf-8',
11
- 'älg = 1'])
12
- expect(cop.offenses.size).to eq(1)
13
- expect(cop.messages)
14
- .to eq(['Use only ascii symbols in identifiers.'])
15
- end
16
-
17
- it 'accepts identifiers with only ascii chars' do
18
- inspect_source(cop,
19
- 'x.empty?')
20
- expect(cop.offenses).to be_empty
21
- end
22
-
23
- it 'does not get confused by a byte order mark' do
24
- bom = "\xef\xbb\xbf"
25
- inspect_source(cop,
26
- [bom + '# encoding: utf-8',
27
- "puts 'foo'"])
28
- expect(cop.offenses).to be_empty
29
- end
30
-
31
- it 'does not get confused by an empty file' do
32
- inspect_source(cop,
33
- '')
34
- expect(cop.offenses).to be_empty
35
- end
36
- end
@@ -1,29 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::Attr do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense attr' do
9
- inspect_source(cop, ['class SomeClass',
10
- ' attr :name',
11
- 'end'])
12
- expect(cop.offenses.size).to eq(1)
13
- end
14
-
15
- it 'accepts attr when it does not take arguments' do
16
- inspect_source(cop, 'func(attr)')
17
- expect(cop.offenses).to be_empty
18
- end
19
-
20
- it 'accepts attr when it has a receiver' do
21
- inspect_source(cop, 'x.attr arg')
22
- expect(cop.offenses).to be_empty
23
- end
24
-
25
- it 'auto-corrects attr to attr_reader' do
26
- new_source = autocorrect_source(cop, 'attr :name')
27
- expect(new_source).to eq('attr_reader :name')
28
- end
29
- end
@@ -1,132 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::BarePercentLiterals, :config do
6
- subject(:cop) { described_class.new(config) }
7
-
8
- shared_examples 'accepts other delimiters' do
9
- it 'accepts __FILE__' do
10
- inspect_source(cop, '__FILE__')
11
- expect(cop.offenses).to be_empty
12
- end
13
-
14
- it 'accepts regular expressions' do
15
- inspect_source(cop, '/%Q?/')
16
- expect(cop.offenses).to be_empty
17
- end
18
-
19
- it 'accepts ""' do
20
- inspect_source(cop, '""')
21
- expect(cop.offenses).to be_empty
22
- end
23
-
24
- it 'accepts "" string with interpolation' do
25
- inspect_source(cop, '"#{file}hi"')
26
- expect(cop.offenses).to be_empty
27
- end
28
-
29
- it "accepts ''" do
30
- inspect_source(cop, "'hi'")
31
- expect(cop.offenses).to be_empty
32
- end
33
-
34
- it 'accepts %q' do
35
- inspect_source(cop, '%q(hi)')
36
- expect(cop.offenses).to be_empty
37
- end
38
-
39
- it 'accepts heredoc' do
40
- inspect_source(cop, ['func <<END',
41
- 'hi',
42
- 'END'])
43
- expect(cop.offenses).to be_empty
44
- end
45
- end
46
-
47
- context 'when EnforcedStyle is percent_q' do
48
- let(:cop_config) { { 'EnforcedStyle' => 'percent_q' } }
49
-
50
- context 'and strings are static' do
51
- it 'registers an offense for %()' do
52
- inspect_source(cop, '%(hi)')
53
- expect(cop.messages).to eq(['Use `%Q` instead of `%`.'])
54
- expect(cop.highlights).to eq(['%('])
55
- end
56
-
57
- it 'auto-corrects' do
58
- new_source = autocorrect_source(cop, '%(hi)')
59
- expect(new_source).to eq('%Q(hi)')
60
- end
61
-
62
- it 'accepts %Q()' do
63
- inspect_source(cop, '%Q(hi)')
64
- expect(cop.offenses).to be_empty
65
- end
66
-
67
- include_examples 'accepts other delimiters'
68
- end
69
-
70
- context 'and strings are dynamic' do
71
- it 'registers an offense for %()' do
72
- inspect_source(cop, '%(#{x})')
73
- expect(cop.messages).to eq(['Use `%Q` instead of `%`.'])
74
- end
75
-
76
- it 'auto-corrects' do
77
- new_source = autocorrect_source(cop, '%(#{x})')
78
- expect(new_source).to eq('%Q(#{x})')
79
- end
80
-
81
- it 'accepts %Q()' do
82
- inspect_source(cop, '%Q(#{x})')
83
- expect(cop.offenses).to be_empty
84
- end
85
-
86
- include_examples 'accepts other delimiters'
87
- end
88
- end
89
-
90
- context 'when EnforcedStyle is bare_percent' do
91
- let(:cop_config) { { 'EnforcedStyle' => 'bare_percent' } }
92
-
93
- context 'and strings are static' do
94
- it 'registers an offense for %Q()' do
95
- inspect_source(cop, '%Q(hi)')
96
- expect(cop.messages).to eq(['Use `%` instead of `%Q`.'])
97
- expect(cop.highlights).to eq(['%Q('])
98
- end
99
-
100
- it 'auto-corrects' do
101
- new_source = autocorrect_source(cop, '%Q(hi)')
102
- expect(new_source).to eq('%(hi)')
103
- end
104
-
105
- it 'accepts %()' do
106
- inspect_source(cop, '%(hi)')
107
- expect(cop.offenses).to be_empty
108
- end
109
-
110
- include_examples 'accepts other delimiters'
111
- end
112
-
113
- context 'and strings are dynamic' do
114
- it 'registers an offense for %Q()' do
115
- inspect_source(cop, '%Q(#{x})')
116
- expect(cop.messages).to eq(['Use `%` instead of `%Q`.'])
117
- end
118
-
119
- it 'auto-corrects' do
120
- new_source = autocorrect_source(cop, '%Q(#{x})')
121
- expect(new_source).to eq('%(#{x})')
122
- end
123
-
124
- it 'accepts %()' do
125
- inspect_source(cop, '%(#{x})')
126
- expect(cop.offenses).to be_empty
127
- end
128
-
129
- include_examples 'accepts other delimiters'
130
- end
131
- end
132
- end
@@ -1,13 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::BeginBlock do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'reports an offense for a BEGIN block' do
9
- src = 'BEGIN { test }'
10
- inspect_source(cop, src)
11
- expect(cop.offenses.size).to eq(1)
12
- end
13
- end
@@ -1,45 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::BlockComments do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for block comments' do
9
- inspect_source(cop,
10
- ['=begin',
11
- 'comment',
12
- '=end'])
13
- expect(cop.offenses.size).to eq(1)
14
- end
15
-
16
- it 'accepts regular comments' do
17
- inspect_source(cop,
18
- '# comment')
19
- expect(cop.offenses).to be_empty
20
- end
21
-
22
- it 'auto-corrects a block comment into a regular comment' do
23
- new_source = autocorrect_source(cop, ['=begin',
24
- 'comment line 1',
25
- '',
26
- 'comment line 2',
27
- '=end',
28
- 'def foo',
29
- 'end'])
30
- expect(new_source).to eq(['# comment line 1',
31
- '#',
32
- '# comment line 2',
33
- 'def foo',
34
- 'end'].join("\n"))
35
- end
36
-
37
- it 'auto-corrects an empty block comment by removing it' do
38
- new_source = autocorrect_source(cop, ['=begin',
39
- '=end',
40
- 'def foo',
41
- 'end'])
42
- expect(new_source).to eq(['def foo',
43
- 'end'].join("\n"))
44
- end
45
- end
@@ -1,61 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::BlockEndNewline do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'does not register an offense for a one-liner' do
9
- inspect_source(cop, 'test do foo end')
10
- expect(cop.messages).to be_empty
11
- end
12
-
13
- it 'does not register an offense for multiline blocks with newlines before '\
14
- 'the end' do
15
- inspect_source(cop,
16
- ['test do',
17
- ' foo',
18
- 'end'])
19
- expect(cop.messages).to be_empty
20
- end
21
-
22
- it 'registers an offense when multiline block end is not on its own line' do
23
- inspect_source(cop,
24
- ['test do',
25
- ' foo end'
26
- ])
27
- expect(cop.messages)
28
- .to eq(['Expression at 2, 7 should be on its own line.'])
29
- end
30
-
31
- it 'registers an offense when multiline block } is not on its own line' do
32
- inspect_source(cop,
33
- ['test {',
34
- ' foo }'
35
- ])
36
- expect(cop.messages)
37
- .to eq(['Expression at 2, 7 should be on its own line.'])
38
- end
39
-
40
- it 'autocorrects a do/end block where the end is not on its own line' do
41
- src = ['test do',
42
- ' foo end']
43
-
44
- new_source = autocorrect_source(cop, src)
45
-
46
- expect(new_source).to eq(['test do',
47
- ' foo ',
48
- 'end'].join("\n"))
49
- end
50
-
51
- it 'autocorrects a {} block where the } is not on its own line' do
52
- src = ['test {',
53
- ' foo }']
54
-
55
- new_source = autocorrect_source(cop, src)
56
-
57
- expect(new_source).to eq(['test {',
58
- ' foo ',
59
- '}'].join("\n"))
60
- end
61
- end
@@ -1,121 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::Blocks do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'accepts a multiline block with do-end' do
9
- inspect_source(cop, ['each do |x|',
10
- 'end'])
11
- expect(cop.offenses).to be_empty
12
- end
13
-
14
- it 'registers an offense for a single line block with do-end' do
15
- inspect_source(cop, 'each do |x| end')
16
- expect(cop.messages)
17
- .to eq(['Prefer {...} over do...end for single-line blocks.'])
18
- end
19
-
20
- it 'accepts a single line block with braces' do
21
- inspect_source(cop, 'each { |x| }')
22
- expect(cop.offenses).to be_empty
23
- end
24
-
25
- it 'auto-corrects do and end for single line blocks to { and }' do
26
- new_source = autocorrect_source(cop, 'block do |x| end')
27
- expect(new_source).to eq('block { |x| }')
28
- end
29
-
30
- it 'does not auto-correct do-end if {} would change the meaning' do
31
- src = "s.subspec 'Subspec' do |sp| end"
32
- new_source = autocorrect_source(cop, src)
33
- expect(new_source).to eq(src)
34
- end
35
-
36
- it 'does not auto-correct {} if do-end would change the meaning' do
37
- src = ['foo :bar, :baz, qux: lambda { |a|',
38
- ' bar a',
39
- '}'].join("\n")
40
- new_source = autocorrect_source(cop, src)
41
- expect(new_source).to eq(src)
42
- end
43
-
44
- context 'when there are braces around a multi-line block' do
45
- it 'registers an offense in the simple case' do
46
- inspect_source(cop, ['each { |x|',
47
- '}'])
48
- expect(cop.messages)
49
- .to eq(['Avoid using {...} for multi-line blocks.'])
50
- end
51
-
52
- it 'accepts braces if do-end would change the meaning' do
53
- src = ['scope :foo, lambda { |f|',
54
- ' where(condition: "value")',
55
- '}',
56
- '',
57
- 'expect { something }.to raise_error(ErrorClass) { |error|',
58
- ' # ...',
59
- '}',
60
- '',
61
- 'expect { x }.to change {',
62
- ' Counter.count',
63
- '}.from(0).to(1)']
64
- inspect_source(cop, src)
65
- expect(cop.offenses).to be_empty
66
- end
67
-
68
- it 'registers an offense for braces if do-end would not change ' \
69
- 'the meaning' do
70
- src = ['scope :foo, (lambda { |f|',
71
- ' where(condition: "value")',
72
- '})',
73
- '',
74
- 'expect { something }.to(raise_error(ErrorClass) { |error|',
75
- ' # ...',
76
- '})']
77
- inspect_source(cop, src)
78
- expect(cop.offenses.size).to eq(2)
79
- end
80
-
81
- it 'can handle special method names such as []= and done?' do
82
- src = ['h2[k2] = Hash.new { |h3,k3|',
83
- ' h3[k3] = 0',
84
- '}',
85
- '',
86
- 'x = done? list.reject { |e|',
87
- ' e.nil?',
88
- '}']
89
- inspect_source(cop, src)
90
- expect(cop.messages)
91
- .to eq(['Avoid using {...} for multi-line blocks.'])
92
- end
93
-
94
- it 'auto-corrects { and } to do and end' do
95
- source = <<-END.strip_indent
96
- each{ |x|
97
- some_method
98
- other_method
99
- }
100
- END
101
-
102
- expected_source = <<-END.strip_indent
103
- each do |x|
104
- some_method
105
- other_method
106
- end
107
- END
108
-
109
- new_source = autocorrect_source(cop, source)
110
- expect(new_source).to eq(expected_source)
111
- end
112
-
113
- it 'does not auto-correct {} if do-end would introduce a syntax error' do
114
- src = ['my_method :arg1, arg2: proc {',
115
- ' something',
116
- '}, arg3: :another_value'].join("\n")
117
- new_source = autocorrect_source(cop, src)
118
- expect(new_source).to eq(src)
119
- end
120
- end
121
- end