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,316 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::PercentLiteralDelimiters, :config do
6
- subject(:cop) { described_class.new(config) }
7
-
8
- let(:cop_config) do
9
- {
10
- 'PreferredDelimiters' => {
11
- '%' => '[]',
12
- '%i' => '[]',
13
- '%q' => '[]',
14
- '%Q' => '[]',
15
- '%r' => '[]',
16
- '%s' => '[]',
17
- '%w' => '[]',
18
- '%W' => '[]',
19
- '%x' => '[]'
20
- }
21
- }
22
- end
23
-
24
- context '`%` interpolated string' do
25
- it 'does not register an offense for preferred delimiters' do
26
- inspect_source(cop, '%[string]')
27
- expect(cop.offenses).to be_empty
28
- end
29
-
30
- it 'registers an offense for other delimiters' do
31
- inspect_source(cop, '%(string)')
32
- expect(cop.messages).to eq([
33
- '`%`-literals should be delimited by `[` and `]`'
34
- ])
35
- end
36
-
37
- it 'does not register an offense for other delimiters ' \
38
- 'when containing preferred delimiter characters' do
39
- inspect_source(cop, '%([string])')
40
- expect(cop.offenses).to be_empty
41
- end
42
-
43
- it 'registers an offense for other delimiters ' \
44
- 'when containing preferred delimiter characters in interpolation' do
45
- inspect_source(cop, '%(#{[1].first})')
46
- expect(cop.messages.size).to eq(1)
47
- end
48
- end
49
-
50
- context '`%q` string' do
51
- it 'does not register an offense for preferred delimiters' do
52
- inspect_source(cop, '%q[string]')
53
- expect(cop.offenses).to be_empty
54
- end
55
-
56
- it 'registers an offense for other delimiters' do
57
- inspect_source(cop, '%q(string)')
58
- expect(cop.messages).to eq([
59
- '`%q`-literals should be delimited by `[` and `]`'
60
- ])
61
- end
62
-
63
- it 'does not register an offense for other delimiters ' \
64
- 'when containing preferred delimiter characters' do
65
- inspect_source(cop, '%q([string])')
66
- expect(cop.offenses).to be_empty
67
- end
68
- end
69
-
70
- context '`%Q` interpolated string' do
71
- it 'does not register an offense for preferred delimiters' do
72
- inspect_source(cop, '%Q[string]')
73
- expect(cop.offenses).to be_empty
74
- end
75
-
76
- it 'registers an offense for other delimiters' do
77
- inspect_source(cop, '%Q(string)')
78
- expect(cop.messages).to eq([
79
- '`%Q`-literals should be delimited by `[` and `]`'
80
- ])
81
- end
82
-
83
- it 'does not register an offense for other delimiters ' \
84
- 'when containing preferred delimiter characters' do
85
- inspect_source(cop, '%Q([string])')
86
- expect(cop.offenses).to be_empty
87
- end
88
-
89
- it 'registers an offense for other delimiters ' \
90
- 'when containing preferred delimiter characters in interpolation' do
91
- inspect_source(cop, '%Q(#{[1].first})')
92
- expect(cop.messages.size).to eq(1)
93
- end
94
- end
95
-
96
- context '`%w` string array' do
97
- it 'does not register an offense for preferred delimiters' do
98
- inspect_source(cop, '%w[some words]')
99
- expect(cop.offenses).to be_empty
100
- end
101
-
102
- it 'registers an offense for other delimiters' do
103
- inspect_source(cop, '%w(some words)')
104
- expect(cop.messages).to eq([
105
- '`%w`-literals should be delimited by `[` and `]`'
106
- ])
107
- end
108
-
109
- it 'does not register an offense for other delimiters ' \
110
- 'when containing preferred delimiter characters' do
111
- inspect_source(cop, '%w([some] [words])')
112
- expect(cop.offenses).to be_empty
113
- end
114
- end
115
-
116
- context '`%W` interpolated string array' do
117
- it 'does not register an offense for preferred delimiters' do
118
- inspect_source(cop, '%W[some words]')
119
- expect(cop.offenses).to be_empty
120
- end
121
-
122
- it 'registers an offense for other delimiters' do
123
- inspect_source(cop, '%W(some words)')
124
- expect(cop.messages).to eq([
125
- '`%W`-literals should be delimited by `[` and `]`'
126
- ])
127
- end
128
-
129
- it 'does not register an offense for other delimiters ' \
130
- 'when containing preferred delimiter characters' do
131
- inspect_source(cop, '%W([some] [words])')
132
- expect(cop.offenses).to be_empty
133
- end
134
-
135
- it 'registers an offense for other delimiters ' \
136
- 'when containing preferred delimiter characters in interpolation' do
137
- inspect_source(cop, '%W(#{[1].first})')
138
- expect(cop.messages.size).to eq(1)
139
- end
140
- end
141
-
142
- context '`%r` interpolated regular expression' do
143
- it 'does not register an offense for preferred delimiters' do
144
- inspect_source(cop, '%r[regexp]')
145
- expect(cop.offenses).to be_empty
146
- end
147
-
148
- it 'registers an offense for other delimiters' do
149
- inspect_source(cop, '%r(regexp)')
150
- expect(cop.messages).to eq([
151
- '`%r`-literals should be delimited by `[` and `]`'
152
- ])
153
- end
154
-
155
- it 'does not register an offense for other delimiters ' \
156
- 'when containing preferred delimiter characters' do
157
- inspect_source(cop, '%r([regexp])')
158
- expect(cop.offenses).to be_empty
159
- end
160
-
161
- it 'registers an offense for other delimiters ' \
162
- 'when containing preferred delimiter characters in interpolation' do
163
- inspect_source(cop, '%r(#{[1].first})')
164
- expect(cop.messages.size).to eq(1)
165
- end
166
- end
167
-
168
- context '`%i` symbol array', ruby: 2 do
169
- it 'does not register an offense for preferred delimiters' do
170
- inspect_source(cop, '%i[some symbols]')
171
- expect(cop.offenses).to be_empty
172
- end
173
-
174
- it 'registers an offense for other delimiters' do
175
- inspect_source(cop, '%i(some symbols)')
176
- expect(cop.messages).to eq([
177
- '`%i`-literals should be delimited by `[` and `]`'
178
- ])
179
- end
180
- end
181
-
182
- context '`%s` symbol' do
183
- it 'does not register an offense for preferred delimiters' do
184
- inspect_source(cop, '%s[symbol]')
185
- expect(cop.offenses).to be_empty
186
- end
187
-
188
- it 'registers an offense for other delimiters' do
189
- inspect_source(cop, '%s(symbol)')
190
- expect(cop.messages).to eq([
191
- '`%s`-literals should be delimited by `[` and `]`'
192
- ])
193
- end
194
- end
195
-
196
- context '`%x` interpolated system call' do
197
- it 'does not register an offense for preferred delimiters' do
198
- inspect_source(cop, '%x[command]')
199
- expect(cop.offenses).to be_empty
200
- end
201
-
202
- it 'registers an offense for other delimiters' do
203
- inspect_source(cop, '%x(command)')
204
- expect(cop.messages).to eq([
205
- '`%x`-literals should be delimited by `[` and `]`'
206
- ])
207
- end
208
-
209
- it 'does not register an offense for other delimiters ' \
210
- 'when containing preferred delimiter characters' do
211
- inspect_source(cop, '%x([command])')
212
- expect(cop.offenses).to be_empty
213
- end
214
-
215
- it 'registers an offense for other delimiters ' \
216
- 'when containing preferred delimiter characters in interpolation' do
217
- inspect_source(cop, '%x(#{[1].first})')
218
- expect(cop.messages.size).to eq(1)
219
- end
220
- end
221
-
222
- context 'auto-correct' do
223
- it 'fixes a string' do
224
- new_source = autocorrect_source(cop, '%(string)')
225
- expect(new_source).to eq('%[string]')
226
- end
227
-
228
- it 'fixes a string array' do
229
- new_source = autocorrect_source(cop, '%w(some words)')
230
- expect(new_source).to eq('%w[some words]')
231
- end
232
-
233
- it 'fixes a string array in a scope' do
234
- new_source = autocorrect_source(cop, ['module Foo',
235
- ' class Bar',
236
- ' def baz',
237
- ' %(one two)',
238
- ' end',
239
- ' end',
240
- ' end'])
241
- expect(new_source).to eq(['module Foo',
242
- ' class Bar',
243
- ' def baz',
244
- ' %[one two]',
245
- ' end',
246
- ' end',
247
- ' end'].join("\n"))
248
- end
249
-
250
- it 'fixes a regular expression' do
251
- original_source = '%r(.*)'
252
- new_source = autocorrect_source(cop, original_source)
253
- expect(new_source).to eq('%r[.*]')
254
- end
255
-
256
- it 'fixes a string with interpolation' do
257
- original_source = '%Q|#{with_interpolation}|'
258
- new_source = autocorrect_source(cop, original_source)
259
- expect(new_source).to eq('%Q[#{with_interpolation}]')
260
- end
261
-
262
- it 'fixes a regular expression with interpolation' do
263
- original_source = '%r|#{with_interpolation}|'
264
- new_source = autocorrect_source(cop, original_source)
265
- expect(new_source).to eq('%r[#{with_interpolation}]')
266
- end
267
-
268
- it 'fixes a regular expression with option' do
269
- original_source = '%r(.*)i'
270
- new_source = autocorrect_source(cop, original_source)
271
- expect(new_source).to eq('%r[.*]i')
272
- end
273
-
274
- it 'preserves line breaks when fixing a multiline array' do
275
- new_source = autocorrect_source(cop, ['%w(', 'some', 'words', ')'])
276
- expect(new_source).to eq(['%w[',
277
- 'some',
278
- 'words',
279
- ']'].join("\n"))
280
- end
281
-
282
- it 'preserves indentation when correcting a multiline array' do
283
- original_source = [
284
- ' array = %w(',
285
- ' first',
286
- ' second',
287
- ' )'
288
- ]
289
- corrected_source = [
290
- ' array = %w[',
291
- ' first',
292
- ' second',
293
- ' ]'
294
- ].join("\n")
295
- new_source = autocorrect_source(cop, original_source)
296
- expect(new_source).to eq(corrected_source)
297
- end
298
-
299
- it 'preserves irregular indentation when correcting a multiline array' do
300
- original_source = [
301
- ' array = %w(',
302
- ' first',
303
- ' second',
304
- ')'
305
- ]
306
- corrected_source = [
307
- ' array = %w[',
308
- ' first',
309
- ' second',
310
- ']'
311
- ].join("\n")
312
- new_source = autocorrect_source(cop, original_source)
313
- expect(new_source).to eq(corrected_source)
314
- end
315
- end
316
- end
@@ -1,122 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::PercentQLiterals, :config do
6
- subject(:cop) { described_class.new(config) }
7
-
8
- shared_examples 'accepts quote characters' do
9
- it 'accepts single quotes' do
10
- inspect_source(cop, "'hi'")
11
- expect(cop.offenses).to be_empty
12
- end
13
-
14
- it 'accepts double quotes' do
15
- inspect_source(cop, '"hi"')
16
- expect(cop.offenses).to be_empty
17
- end
18
- end
19
-
20
- shared_examples 'accepts any q string with backslash t' do
21
- context 'with special characters' do
22
- it 'accepts %q' do
23
- inspect_source(cop, '%q(\t)')
24
- expect(cop.offenses).to be_empty
25
- end
26
-
27
- it 'accepts %Q' do
28
- inspect_source(cop, '%Q(\t)')
29
- expect(cop.offenses).to be_empty
30
- end
31
- end
32
- end
33
-
34
- context 'when EnforcedStyle is lower_case_q' do
35
- let(:cop_config) { { 'EnforcedStyle' => 'lower_case_q' } }
36
-
37
- context 'without interpolation' do
38
- it 'accepts %q' do
39
- inspect_source(cop, '%q(hi)')
40
- expect(cop.offenses).to be_empty
41
- end
42
-
43
- it 'registers offense for %Q' do
44
- inspect_source(cop, '%Q(hi)')
45
- expect(cop.messages)
46
- .to eq(['Do not use `%Q` unless interpolation is needed. Use `%q`.'])
47
- expect(cop.highlights).to eq(['%Q('])
48
- end
49
-
50
- it 'auto-corrects' do
51
- new_source = autocorrect_source(cop, '%Q(hi)')
52
- expect(new_source).to eq('%q(hi)')
53
- end
54
-
55
- include_examples 'accepts quote characters'
56
- include_examples 'accepts any q string with backslash t'
57
- end
58
-
59
- context 'with interpolation' do
60
- it 'accepts %Q' do
61
- inspect_source(cop, '%Q(#{1 + 2})')
62
- expect(cop.offenses).to be_empty
63
- end
64
-
65
- it 'accepts %q' do
66
- # This is most probably a mistake, but not this cop's responsibility.
67
- inspect_source(cop, '%q(#{1 + 2})')
68
- expect(cop.offenses).to be_empty
69
- end
70
-
71
- include_examples 'accepts quote characters'
72
- end
73
- end
74
-
75
- context 'when EnforcedStyle is upper_case_q' do
76
- let(:cop_config) { { 'EnforcedStyle' => 'upper_case_q' } }
77
-
78
- context 'without interpolation' do
79
- it 'registers offense for %q' do
80
- inspect_source(cop, '%q(hi)')
81
- expect(cop.messages).to eq(['Use `%Q` instead of `%q`.'])
82
- expect(cop.highlights).to eq(['%q('])
83
- end
84
-
85
- it 'accepts %Q' do
86
- inspect_source(cop, '%Q(hi)')
87
- expect(cop.offenses).to be_empty
88
- end
89
-
90
- it 'auto-corrects' do
91
- new_source = autocorrect_source(cop, '%q[hi]')
92
- expect(new_source).to eq('%Q[hi]')
93
- end
94
-
95
- include_examples 'accepts quote characters'
96
- include_examples 'accepts any q string with backslash t'
97
- end
98
-
99
- context 'with interpolation' do
100
- it 'accepts %Q' do
101
- inspect_source(cop, '%Q(#{1 + 2})')
102
- expect(cop.offenses).to be_empty
103
- end
104
-
105
- it 'accepts %q' do
106
- # It's strange if interpolation syntax appears inside a static string,
107
- # but we can't be sure if it's a mistake or not. Changing it to %Q
108
- # would alter semantics, so we leave it as it is.
109
- inspect_source(cop, '%q(#{1 + 2})')
110
- expect(cop.offenses).to be_empty
111
- end
112
-
113
- it 'does not auto-correct' do
114
- source = '%q(#{1 + 2})'
115
- new_source = autocorrect_source(cop, source)
116
- expect(new_source).to eq(source)
117
- end
118
-
119
- include_examples 'accepts quote characters'
120
- end
121
- end
122
- end
@@ -1,22 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::PerlBackrefs do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for $1' do
9
- inspect_source(cop, 'puts $1')
10
- expect(cop.offenses.size).to eq(1)
11
- end
12
-
13
- it 'auto-corrects $1 to Regexp.last_match[1]' do
14
- new_source = autocorrect_source(cop, '$1')
15
- expect(new_source).to eq('Regexp.last_match(1)')
16
- end
17
-
18
- it 'auto-corrects #$1 to #{Regexp.last_match[1]}' do
19
- new_source = autocorrect_source(cop, '"#$1"')
20
- expect(new_source).to eq('"#{Regexp.last_match(1)}"')
21
- end
22
- end