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,23 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::UnlessElse do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for an unless with else' do
9
- inspect_source(cop, ['unless x',
10
- ' a = 1',
11
- 'else',
12
- ' a = 0',
13
- 'end'])
14
- expect(cop.offenses.size).to eq(1)
15
- end
16
-
17
- it 'accepts an unless without else' do
18
- inspect_source(cop, ['unless x',
19
- ' a = 1',
20
- 'end'])
21
- expect(cop.offenses).to be_empty
22
- end
23
- end
@@ -1,90 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::UnneededCapitalW do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers no offense for normal arrays of strings' do
9
- inspect_source(cop, '["one", "two", "three"]')
10
- expect(cop.offenses).to be_empty
11
- end
12
-
13
- it 'registers no offense for normal arrays of strings with interpolation' do
14
- inspect_source(cop, '["one", "two", "th#{ ?r }ee"]')
15
- expect(cop.offenses).to be_empty
16
- end
17
-
18
- it 'registers an offense for misused %W' do
19
- inspect_source(cop, '%W(cat dog)')
20
- expect(cop.offenses.size).to eq(1)
21
- end
22
-
23
- it 'registers no offense for %W with interpolation' do
24
- inspect_source(cop, '%W(c#{ ?a }t dog)')
25
- expect(cop.offenses).to be_empty
26
- end
27
-
28
- it 'registers no offense for %W with special characters' do
29
- source = ['def dangerous_characters',
30
- ' %W(\000) +',
31
- ' %W(\001) +',
32
- ' %W(\027) +',
33
- ' %W(\002) +',
34
- ' %W(\003) +',
35
- ' %W(\004) +',
36
- ' %W(\005) +',
37
- ' %W(\006) +',
38
- ' %W(\007) +',
39
- ' %W(\00) +',
40
- ' %W(\a)',
41
- 'end']
42
- inspect_source(cop, source)
43
- expect(cop.offenses).to be_empty
44
- end
45
-
46
- it 'registers no offense for %w without interpolation' do
47
- inspect_source(cop, '%w(cat dog)')
48
- expect(cop.offenses).to be_empty
49
- end
50
-
51
- it 'registers no offense for %w with interpolation-like syntax' do
52
- inspect_source(cop, '%w(c#{ ?a }t dog)')
53
- expect(cop.offenses).to be_empty
54
- end
55
-
56
- it 'registers no offense for arrays with character constants' do
57
- inspect_source(cop, '["one", ?\n]')
58
- expect(cop.offenses).to be_empty
59
- end
60
-
61
- it 'does not register an offense for array of non-words' do
62
- inspect_source(cop, '["one space", "two", "three"]')
63
- expect(cop.offenses).to be_empty
64
- end
65
-
66
- it 'does not register an offense for array containing non-string' do
67
- inspect_source(cop, '["one", "two", 3]')
68
- expect(cop.offenses).to be_empty
69
- end
70
-
71
- it 'does not register an offense for array with one element' do
72
- inspect_source(cop, '["three"]')
73
- expect(cop.offenses).to be_empty
74
- end
75
-
76
- it 'does not register an offense for array with empty strings' do
77
- inspect_source(cop, '["", "two", "three"]')
78
- expect(cop.offenses).to be_empty
79
- end
80
-
81
- it 'auto-corrects an array of words' do
82
- new_source = autocorrect_source(cop, '%W(one two three)')
83
- expect(new_source).to eq('%w(one two three)')
84
- end
85
-
86
- it 'auto-corrects an array of words with different bracket' do
87
- new_source = autocorrect_source(cop, '%W[one two three]')
88
- expect(new_source).to eq('%w[one two three]')
89
- end
90
- end
@@ -1,127 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::UnneededPercentQ do
6
- subject(:cop) { described_class.new }
7
-
8
- context 'with %q strings' do
9
- let(:source) do
10
- <<-END.strip_indent
11
- %q('hi') # line 1
12
- %q("hi")
13
- %q(hi)
14
- %q('"hi"')
15
- %q('hi\\t') # line 5
16
- END
17
- end
18
- let(:corrected) do
19
- <<-END.strip_indent
20
- "'hi'" # line 1
21
- '"hi"'
22
- 'hi'
23
- %q('"hi"')
24
- %q('hi\\t') # line 5
25
- END
26
- end
27
- before { inspect_source(cop, source) }
28
-
29
- it 'registers an offense for only single quotes' do
30
- expect(cop.offenses.map(&:line)).to include(1)
31
- expect(cop.messages).to eq(['Use `%q` only for strings that contain ' \
32
- 'both single quotes and double quotes.'] * 3)
33
- end
34
-
35
- it 'registers an offense for only double quotes' do
36
- expect(cop.offenses.map(&:line)).to include(2)
37
- end
38
-
39
- it 'registers an offense for no quotes' do
40
- expect(cop.offenses.map(&:line)).to include(3)
41
- end
42
-
43
- it 'accepts a string with single quotes and double quotes' do
44
- expect(cop.offenses.map(&:line)).not_to include(4)
45
- end
46
-
47
- it 'accepts a string with a tab character' do
48
- expect(cop.offenses.map(&:line)).not_to include(5)
49
- end
50
-
51
- it 'auto-corrects' do
52
- new_source = autocorrect_source(cop, source)
53
- expect(new_source).to eq(corrected)
54
- end
55
- end
56
-
57
- context 'with %Q strings' do
58
- let(:source) do
59
- <<-END.strip_indent
60
- %Q(hi) # line 1
61
- %Q("hi")
62
- %Q(hi\#{4})
63
- %Q('"hi"')
64
- %Q("\\thi")
65
- %Q("hi\#{4}")
66
- /%Q?/ # line 7
67
- END
68
- end
69
- let(:corrected) do
70
- <<-END.strip_indent
71
- "hi" # line 1
72
- '"hi"'
73
- "hi\#{4}"
74
- %Q('"hi"')
75
- %Q("\\thi")
76
- %Q("hi\#{4}")
77
- /%Q?/ # line 7
78
- END
79
- end
80
- before { inspect_source(cop, source) }
81
-
82
- it 'registers an offense for static string without quotes' do
83
- expect(cop.offenses.map(&:line)).to include(1)
84
- expect(cop.messages).to eq(['Use `%Q` only for strings that contain ' \
85
- 'both single quotes and double quotes, or ' \
86
- 'for dynamic strings that contain double ' \
87
- 'quotes.'] * 3)
88
- end
89
-
90
- it 'registers an offense for static string with only double quotes' do
91
- expect(cop.offenses.map(&:line)).to include(2)
92
- end
93
-
94
- it 'registers an offense for dynamic string without quotes' do
95
- expect(cop.offenses.map(&:line)).to include(3)
96
- end
97
-
98
- it 'accepts a string with single quotes and double quotes' do
99
- expect(cop.offenses.map(&:line)).not_to include(4)
100
- end
101
-
102
- it 'accepts a string with double quotes and tab character' do
103
- expect(cop.offenses.map(&:line)).not_to include(5)
104
- end
105
-
106
- it 'accepts a dynamic %Q string with double quotes' do
107
- expect(cop.offenses.map(&:line)).not_to include(6)
108
- end
109
-
110
- it 'accepts regular expressions starting with %Q' do
111
- expect(cop.offenses.map(&:line)).not_to include(7)
112
- end
113
-
114
- it 'auto-corrects' do
115
- new_source = autocorrect_source(cop, source)
116
- expect(new_source).to eq(corrected)
117
- end
118
- end
119
-
120
- it 'accepts a heredoc string that contains %q' do
121
- inspect_source(cop, [' s = <<END',
122
- "%q('hi') # line 1",
123
- '%q("hi")',
124
- 'END'])
125
- expect(cop.offenses).to be_empty
126
- end
127
- end
@@ -1,34 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::UnneededPercentX do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for a %x string without backquotes' do
9
- inspect_source(cop, '%x(ls)')
10
- expect(cop.messages)
11
- .to eq(['Do not use `%x` unless the command string contains ' \
12
- 'backquotes.'])
13
- end
14
-
15
- it 'accepts a %x string with backquotes' do
16
- inspect_source(cop, '%x(echo `ls`)')
17
- expect(cop.offenses).to be_empty
18
- end
19
-
20
- it 'accepts a `` string without inner backquotes' do
21
- inspect_source(cop, '`ls`')
22
- expect(cop.offenses).to be_empty
23
- end
24
-
25
- it 'accepts a `` string with inner backquotes' do
26
- inspect_source(cop, '`echo \`ls\``')
27
- expect(cop.offenses).to be_empty
28
- end
29
-
30
- it 'auto-corrects' do
31
- new_source = autocorrect_source(cop, '%x(ls)')
32
- expect(new_source).to eq('`ls`')
33
- end
34
- end
@@ -1,76 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::VariableInterpolation do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for interpolated global variables in string' do
9
- inspect_source(cop,
10
- 'puts "this is a #$test"')
11
- expect(cop.offenses.size).to eq(1)
12
- expect(cop.highlights).to eq(['$test'])
13
- expect(cop.messages)
14
- .to eq(['Replace interpolated variable `$test`' \
15
- ' with expression `#{$test}`.'])
16
- end
17
-
18
- it 'registers an offense for interpolated global variables in regexp' do
19
- inspect_source(cop,
20
- 'puts /this is a #$test/')
21
- expect(cop.offenses.size).to eq(1)
22
- expect(cop.highlights).to eq(['$test'])
23
- expect(cop.messages)
24
- .to eq(['Replace interpolated variable `$test`' \
25
- ' with expression `#{$test}`.'])
26
- end
27
-
28
- it 'registers an offense for interpolated global variables in regexp' do
29
- inspect_source(cop,
30
- 'puts `this is a #$test`')
31
- expect(cop.offenses.size).to eq(1)
32
- expect(cop.highlights).to eq(['$test'])
33
- expect(cop.messages)
34
- .to eq(['Replace interpolated variable `$test`' \
35
- ' with expression `#{$test}`.'])
36
- end
37
-
38
- it 'registers an offense for interpolated regexp back references' do
39
- inspect_source(cop,
40
- 'puts "this is a #$1"')
41
- expect(cop.offenses.size).to eq(1)
42
- expect(cop.highlights).to eq(['$1'])
43
- expect(cop.messages)
44
- .to eq(['Replace interpolated variable `$1` with expression `#{$1}`.'])
45
- end
46
-
47
- it 'registers an offense for interpolated instance variables' do
48
- inspect_source(cop,
49
- 'puts "this is a #@test"')
50
- expect(cop.offenses.size).to eq(1)
51
- expect(cop.highlights).to eq(['@test'])
52
- expect(cop.messages)
53
- .to eq(['Replace interpolated variable `@test`' \
54
- ' with expression `#{@test}`.'])
55
- end
56
-
57
- it 'registers an offense for interpolated class variables' do
58
- inspect_source(cop,
59
- 'puts "this is a #@@t"')
60
- expect(cop.offenses.size).to eq(1)
61
- expect(cop.highlights).to eq(['@@t'])
62
- expect(cop.messages)
63
- .to eq(['Replace interpolated variable `@@t` with expression `#{@@t}`.'])
64
- end
65
-
66
- it 'does not register an offense for variables in expressions' do
67
- inspect_source(cop,
68
- 'puts "this is a #{@test} #{@@t} #{$t} #{$1}"')
69
- expect(cop.offenses).to be_empty
70
- end
71
-
72
- it 'autocorrects by adding the missing {}' do
73
- corrected = autocorrect_source(cop, ['"some #@var"'])
74
- expect(corrected).to eq '"some #{@var}"'
75
- end
76
- end
@@ -1,107 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::VariableName, :config do
6
- subject(:cop) { described_class.new(config) }
7
-
8
- shared_examples 'always accepted' do
9
- it 'accepts screaming snake case globals' do
10
- inspect_source(cop, '$MY_GLOBAL = 0')
11
- expect(cop.offenses).to be_empty
12
- end
13
-
14
- it 'accepts screaming snake case constants' do
15
- inspect_source(cop, 'MY_CONSTANT = 0')
16
- expect(cop.offenses).to be_empty
17
- end
18
-
19
- it 'accepts assigning to camel case constant' do
20
- inspect_source(cop, 'Paren = Struct.new :left, :right, :kind')
21
- expect(cop.offenses).to be_empty
22
- end
23
-
24
- it 'accepts assignment with indexing of self' do
25
- inspect_source(cop, 'self[:a] = b')
26
- expect(cop.offenses).to be_empty
27
- end
28
- end
29
-
30
- context 'when configured for snake_case' do
31
- let(:cop_config) { { 'EnforcedStyle' => 'snake_case' } }
32
-
33
- it 'registers an offense for camel case in local variable name' do
34
- inspect_source(cop, 'myLocal = 1')
35
- expect(cop.offenses.size).to eq(1)
36
- expect(cop.highlights).to eq(['myLocal'])
37
- expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' =>
38
- 'camelCase')
39
- end
40
-
41
- it 'registers an offense for correct + opposite' do
42
- inspect_source(cop, ['my_local = 1',
43
- 'myLocal = 1'])
44
- expect(cop.highlights).to eq(['myLocal'])
45
- expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
46
- end
47
-
48
- it 'registers an offense for camel case in instance variable name' do
49
- inspect_source(cop, '@myAttribute = 3')
50
- expect(cop.offenses.size).to eq(1)
51
- expect(cop.highlights).to eq(['@myAttribute'])
52
- end
53
-
54
- it 'registers an offense for camel case in class variable name' do
55
- inspect_source(cop, '@@myAttr = 2')
56
- expect(cop.offenses.size).to eq(1)
57
- expect(cop.highlights).to eq(['@@myAttr'])
58
- end
59
-
60
- include_examples 'always accepted'
61
- end
62
-
63
- context 'when configured for camelCase' do
64
- let(:cop_config) { { 'EnforcedStyle' => 'camelCase' } }
65
-
66
- it 'registers an offense for snake case in local variable name' do
67
- inspect_source(cop, 'my_local = 1')
68
- expect(cop.offenses.size).to eq(1)
69
- expect(cop.highlights).to eq(['my_local'])
70
- expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' =>
71
- 'snake_case')
72
- end
73
-
74
- it 'registers an offense for opposite + correct' do
75
- inspect_source(cop, ['my_local = 1',
76
- 'myLocal = 1'])
77
- expect(cop.highlights).to eq(['my_local'])
78
- expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
79
- end
80
-
81
- it 'accepts camel case in local variable name' do
82
- inspect_source(cop, 'myLocal = 1')
83
- expect(cop.offenses).to be_empty
84
- end
85
-
86
- it 'accepts camel case in instance variable name' do
87
- inspect_source(cop, '@myAttribute = 3')
88
- expect(cop.offenses).to be_empty
89
- end
90
-
91
- it 'accepts camel case in class variable name' do
92
- inspect_source(cop, '@@myAttr = 2')
93
- expect(cop.offenses).to be_empty
94
- end
95
-
96
- include_examples 'always accepted'
97
- end
98
-
99
- context 'when configured with a bad value' do
100
- let(:cop_config) { { 'EnforcedStyle' => 'other' } }
101
-
102
- it 'fails' do
103
- expect { inspect_source(cop, 'a = 3') }
104
- .to raise_error(RuntimeError)
105
- end
106
- end
107
- end