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,83 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::SpaceInsideBrackets do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for an array literal with spaces inside' do
9
- inspect_source(cop, ['a = [1, 2 ]',
10
- 'b = [ 1, 2]'])
11
- expect(cop.messages).to eq(
12
- ['Space inside square brackets detected.',
13
- 'Space inside square brackets detected.'])
14
- end
15
-
16
- it 'registers an offense for Hash#[] with symbol key and spaces inside' do
17
- inspect_source(cop, ['a[ :key]',
18
- 'b[:key ]'])
19
- expect(cop.messages).to eq(
20
- ['Space inside square brackets detected.',
21
- 'Space inside square brackets detected.'])
22
- end
23
-
24
- it 'registers an offense for Hash#[] with string key and spaces inside' do
25
- inspect_source(cop, ['a[\'key\' ]',
26
- 'b[ \'key\']'])
27
- expect(cop.messages).to eq(
28
- ['Space inside square brackets detected.',
29
- 'Space inside square brackets detected.'])
30
- end
31
-
32
- it 'accepts space inside strings within square brackets' do
33
- inspect_source(cop, ["['Encoding:',",
34
- " ' Enabled: false']"])
35
- expect(cop.messages).to be_empty
36
- end
37
-
38
- it 'accepts space inside square brackets if on its own row' do
39
- inspect_source(cop, ['a = [',
40
- ' 1, 2',
41
- ' ]'])
42
- expect(cop.messages).to be_empty
43
- end
44
-
45
- it 'accepts space inside square brackets if with comment' do
46
- inspect_source(cop, ['a = [ # Comment',
47
- ' 1, 2',
48
- ' ]'])
49
- expect(cop.messages).to be_empty
50
- end
51
-
52
- it 'accepts square brackets as method name' do
53
- inspect_source(cop, ['def Vector.[](*array)',
54
- 'end'])
55
- expect(cop.messages).to be_empty
56
- end
57
-
58
- it 'accepts square brackets called with method call syntax' do
59
- inspect_source(cop, 'subject.[](0)')
60
- expect(cop.messages).to be_empty
61
- end
62
-
63
- it 'only reports a single space once' do
64
- inspect_source(cop, '[ ]')
65
- expect(cop.messages).to eq(
66
- ['Space inside square brackets detected.'])
67
- end
68
-
69
- it 'auto-corrects unwanted space' do
70
- new_source = autocorrect_source(cop, ['a = [1, 2 ]',
71
- 'b = [ 1, 2]',
72
- 'c[ :key]',
73
- 'd[:key ]',
74
- 'e["key" ]',
75
- 'f[ "key"]'])
76
- expect(new_source).to eq(['a = [1, 2]',
77
- 'b = [1, 2]',
78
- 'c[:key]',
79
- 'd[:key]',
80
- 'e["key"]',
81
- 'f["key"]'].join("\n"))
82
- end
83
- end
@@ -1,147 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::SpaceInsideHashLiteralBraces, :config do
6
- subject(:cop) { described_class.new(config) }
7
- let(:cop_config) { { 'EnforcedStyle' => 'space' } }
8
-
9
- context 'with space inside empty braces not allowed' do
10
- let(:cop_config) { { 'EnforcedStyleForEmptyBraces' => 'no_space' } }
11
-
12
- it 'accepts empty braces with no space inside' do
13
- inspect_source(cop, 'h = {}')
14
- expect(cop.messages).to be_empty
15
- end
16
-
17
- it 'registers an offense for empty braces with space inside' do
18
- inspect_source(cop, 'h = { }')
19
- expect(cop.messages)
20
- .to eq(['Space inside empty hash literal braces detected.'])
21
- expect(cop.highlights).to eq([' '])
22
- end
23
-
24
- it 'auto-corrects unwanted space' do
25
- new_source = autocorrect_source(cop, 'h = { }')
26
- expect(new_source).to eq('h = {}')
27
- end
28
- end
29
-
30
- context 'with space inside empty braces allowed' do
31
- let(:cop_config) { { 'EnforcedStyleForEmptyBraces' => 'space' } }
32
-
33
- it 'accepts empty braces with space inside' do
34
- inspect_source(cop, 'h = { }')
35
- expect(cop.messages).to be_empty
36
- end
37
-
38
- it 'registers an offense for empty braces with no space inside' do
39
- inspect_source(cop, 'h = {}')
40
- expect(cop.messages)
41
- .to eq(['Space inside empty hash literal braces missing.'])
42
- expect(cop.highlights).to eq(['{'])
43
- end
44
-
45
- it 'auto-corrects missing space' do
46
- new_source = autocorrect_source(cop, 'h = {}')
47
- expect(new_source).to eq('h = { }')
48
- end
49
- end
50
-
51
- it 'registers an offense for hashes with no spaces if so configured' do
52
- inspect_source(cop,
53
- ['h = {a: 1, b: 2}',
54
- 'h = {a => 1}'])
55
- expect(cop.messages).to eq(['Space inside { missing.',
56
- 'Space inside } missing.',
57
- 'Space inside { missing.',
58
- 'Space inside } missing.'])
59
- expect(cop.highlights).to eq(['{', '}', '{', '}'])
60
- expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' => 'no_space')
61
- end
62
-
63
- it 'registers an offense for correct + opposite' do
64
- inspect_source(cop,
65
- 'h = { a: 1}')
66
- expect(cop.messages).to eq(['Space inside } missing.'])
67
- expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
68
- end
69
-
70
- it 'auto-corrects missing space' do
71
- new_source = autocorrect_source(cop, ['h = {a: 1, b: 2}',
72
- 'h = {a => 1 }'])
73
- expect(new_source).to eq(['h = { a: 1, b: 2 }',
74
- 'h = { a => 1 }'].join("\n"))
75
- end
76
-
77
- context 'when EnforcedStyle is no_space' do
78
- let(:cop_config) { { 'EnforcedStyle' => 'no_space' } }
79
-
80
- it 'registers an offense for hashes with spaces' do
81
- inspect_source(cop,
82
- 'h = { a: 1, b: 2 }')
83
- expect(cop.messages).to eq(['Space inside { detected.',
84
- 'Space inside } detected.'])
85
- expect(cop.highlights).to eq([' ', ' '])
86
- expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' => 'space')
87
- end
88
-
89
- it 'registers an offense for opposite + correct' do
90
- inspect_source(cop,
91
- 'h = {a: 1 }')
92
- expect(cop.messages).to eq(['Space inside } detected.'])
93
- expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
94
- end
95
-
96
- it 'auto-corrects unwanted space' do
97
- new_source = autocorrect_source(cop, ['h = { a: 1, b: 2 }',
98
- 'h = {a => 1 }'])
99
- expect(new_source).to eq(['h = {a: 1, b: 2}',
100
- 'h = {a => 1}'].join("\n"))
101
- end
102
-
103
- it 'accepts hashes with no spaces' do
104
- inspect_source(cop,
105
- ['h = {a: 1, b: 2}',
106
- 'h = {a => 1}'])
107
- expect(cop.offenses).to be_empty
108
- end
109
-
110
- it 'accepts multiline hash' do
111
- inspect_source(cop,
112
- ['h = {',
113
- ' a: 1,',
114
- ' b: 2,',
115
- '}'])
116
- expect(cop.offenses).to be_empty
117
- end
118
-
119
- it 'accepts multiline hash with comment' do
120
- inspect_source(cop,
121
- ['h = { # Comment',
122
- ' a: 1,',
123
- ' b: 2,',
124
- '}'])
125
- expect(cop.offenses).to be_empty
126
- end
127
- end
128
-
129
- it 'accepts hashes with spaces by default' do
130
- inspect_source(cop,
131
- ['h = { a: 1, b: 2 }',
132
- 'h = { a => 1 }'])
133
- expect(cop.offenses).to be_empty
134
- end
135
-
136
- it 'accepts hash literals with no braces' do
137
- inspect_source(cop, 'x(a: b.c)')
138
- expect(cop.offenses).to be_empty
139
- end
140
-
141
- it 'can handle interpolation in a braceless hash literal' do
142
- # A tricky special case where the closing brace of the
143
- # interpolation risks getting confused for a hash literal brace.
144
- inspect_source(cop, 'f(get: "#{x}")')
145
- expect(cop.offenses).to be_empty
146
- end
147
- end
@@ -1,44 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::SpaceInsideParens do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for spaces inside parens' do
9
- inspect_source(cop, ['f( 3)',
10
- 'g = (a + 3 )'])
11
- expect(cop.messages).to eq(['Space inside parentheses detected.'] * 2)
12
- end
13
-
14
- it 'accepts parentheses in block parameter list' do
15
- inspect_source(cop,
16
- ['list.inject(Tms.new) { |sum, (label, item)|',
17
- '}'])
18
- expect(cop.messages).to be_empty
19
- end
20
-
21
- it 'accepts parentheses with no spaces' do
22
- inspect_source(cop, 'split("\n")')
23
- expect(cop.messages).to be_empty
24
- end
25
-
26
- it 'accepts parentheses with line break' do
27
- inspect_source(cop, ['f(',
28
- ' 1)'])
29
- expect(cop.messages).to be_empty
30
- end
31
-
32
- it 'accepts parentheses with comment and line break' do
33
- inspect_source(cop, ['f( # Comment',
34
- ' 1)'])
35
- expect(cop.messages).to be_empty
36
- end
37
-
38
- it 'auto-corrects unwanted space' do
39
- new_source = autocorrect_source(cop, ['f( 3)',
40
- 'g = ( a + 3 )'])
41
- expect(new_source).to eq(['f(3)',
42
- 'g = (a + 3)'].join("\n"))
43
- end
44
- end
@@ -1,64 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::SpaceInsideRangeLiteral do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for space inside .. literal' do
9
- inspect_source(cop,
10
- ['1 .. 2',
11
- '1.. 2',
12
- '1 ..2'])
13
- expect(cop.offenses.size).to eq(3)
14
- expect(cop.messages)
15
- .to eq(['Space inside range literal.'] * 3)
16
- end
17
-
18
- it 'accepts no space inside .. literal' do
19
- inspect_source(cop, '1..2')
20
- expect(cop.offenses).to be_empty
21
- end
22
-
23
- it 'registers an offense for space inside ... literal' do
24
- inspect_source(cop,
25
- ['1 ... 2',
26
- '1... 2',
27
- '1 ...2'])
28
- expect(cop.offenses.size).to eq(3)
29
- expect(cop.messages)
30
- .to eq(['Space inside range literal.'] * 3)
31
- end
32
-
33
- it 'accepts no space inside ... literal' do
34
- inspect_source(cop, '1...2')
35
- expect(cop.offenses).to be_empty
36
- end
37
-
38
- it 'accepts complex range literal with space in it' do
39
- inspect_source(cop, '0...(line - 1)')
40
- expect(cop.offenses).to be_empty
41
- end
42
-
43
- it 'accepts multiline range literal with no space in it' do
44
- inspect_source(cop, ['x = 0..',
45
- ' 10'])
46
- expect(cop.offenses).to be_empty
47
- end
48
-
49
- it 'registers an offense in multiline range literal with space in it' do
50
- inspect_source(cop, ['x = 0 ..',
51
- ' 10'])
52
- expect(cop.offenses.size).to eq(1)
53
- end
54
-
55
- it 'autocorrects space around .. literal' do
56
- corrected = autocorrect_source(cop, ['1 .. 2'])
57
- expect(corrected).to eq '1..2'
58
- end
59
-
60
- it 'autocorrects space around ... literal' do
61
- corrected = autocorrect_source(cop, ['1 ... 2'])
62
- expect(corrected).to eq '1...2'
63
- end
64
- end
@@ -1,62 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::SpecialGlobalVars do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for $:' do
9
- inspect_source(cop, 'puts $:')
10
- expect(cop.offenses.size).to eq(1)
11
- expect(cop.messages)
12
- .to eq(['Prefer `$LOAD_PATH` over `$:`.'])
13
- end
14
-
15
- it 'registers an offense for $"' do
16
- inspect_source(cop, 'puts $"')
17
- expect(cop.offenses.size).to eq(1)
18
- expect(cop.messages)
19
- .to eq(['Prefer `$LOADED_FEATURES` over `$"`.'])
20
- end
21
-
22
- it 'registers an offense for $0' do
23
- inspect_source(cop, 'puts $0')
24
- expect(cop.offenses.size).to eq(1)
25
- expect(cop.messages)
26
- .to eq(['Prefer `$PROGRAM_NAME` over `$0`.'])
27
- end
28
-
29
- it 'registers an offense for $$' do
30
- inspect_source(cop, 'puts $$')
31
- expect(cop.offenses.size).to eq(1)
32
- expect(cop.messages)
33
- .to eq(['Prefer `$PROCESS_ID` or `$PID` from the English ' \
34
- 'library over `$$`.'])
35
- end
36
-
37
- it 'is clear about variables from the English library vs those not' do
38
- inspect_source(cop, 'puts $*')
39
- expect(cop.messages)
40
- .to eq(['Prefer `$ARGV` from the English library, or `ARGV` over `$*`.'])
41
- end
42
-
43
- it 'does not register an offense for backrefs like $1' do
44
- inspect_source(cop, 'puts $1')
45
- expect(cop.offenses).to be_empty
46
- end
47
-
48
- it 'auto-corrects $: to $LOAD_PATH' do
49
- new_source = autocorrect_source(cop, '$:')
50
- expect(new_source).to eq('$LOAD_PATH')
51
- end
52
-
53
- it 'auto-corrects $/ to $INPUT_RECORD_SEPARATOR' do
54
- new_source = autocorrect_source(cop, '$/')
55
- expect(new_source).to eq('$INPUT_RECORD_SEPARATOR')
56
- end
57
-
58
- it 'auto-corrects #$: to #{$LOAD_PATH}' do
59
- new_source = autocorrect_source(cop, '"#$:"')
60
- expect(new_source).to eq('"#{$LOAD_PATH}"')
61
- end
62
- end
@@ -1,99 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::StringLiteralsInInterpolation, :config do
6
- subject(:cop) { described_class.new(config) }
7
-
8
- context 'configured with single quotes preferred' do
9
- let(:cop_config) { { 'EnforcedStyle' => 'single_quotes' } }
10
-
11
- it 'registers an offense for double quotes within embedded expression' do
12
- src = '"#{"A"}"'
13
- inspect_source(cop, src)
14
- expect(cop.messages)
15
- .to eq(['Prefer single-quoted strings inside interpolations.'])
16
- end
17
-
18
- it 'registers an offense for double quotes within embedded expression in ' \
19
- 'a heredoc string' do
20
- src = ['<<END',
21
- '#{"A"}',
22
- 'END']
23
- inspect_source(cop, src)
24
- expect(cop.messages)
25
- .to eq(['Prefer single-quoted strings inside interpolations.'])
26
- end
27
-
28
- it 'accepts double quotes on a static string' do
29
- src = '"A"'
30
- inspect_source(cop, src)
31
- expect(cop.offenses).to be_empty
32
- end
33
-
34
- it 'accepts double quotes on a broken static string' do
35
- src = ['"A" \\',
36
- ' "B"']
37
- inspect_source(cop, src)
38
- expect(cop.offenses).to be_empty
39
- end
40
-
41
- it 'accepts double quotes on static strings within a method' do
42
- src = ['def m',
43
- ' puts "A"',
44
- ' puts "B"',
45
- 'end']
46
- inspect_source(cop, src)
47
- expect(cop.offenses).to be_empty
48
- end
49
-
50
- it 'can handle a built-in constant parsed as string' do
51
- # Parser will produce str nodes for constants such as __FILE__.
52
- src = ['if __FILE__ == $PROGRAM_NAME',
53
- 'end']
54
- inspect_source(cop, src)
55
- expect(cop.offenses).to be_empty
56
- end
57
-
58
- it 'can handle character literals' do
59
- src = 'a = ?/'
60
- inspect_source(cop, src)
61
- expect(cop.offenses).to be_empty
62
- end
63
-
64
- it 'auto-corrects " with \'' do
65
- new_source = autocorrect_source(cop, 's = "#{"abc"}"')
66
- expect(new_source).to eq(%q(s = "#{'abc'}"))
67
- end
68
- end
69
-
70
- context 'configured with double quotes preferred' do
71
- let(:cop_config) { { 'EnforcedStyle' => 'double_quotes' } }
72
-
73
- it 'registers an offense for single quotes within embedded expression' do
74
- src = %q("#{'A'}")
75
- inspect_source(cop, src)
76
- expect(cop.messages)
77
- .to eq(['Prefer double-quoted strings inside interpolations.'])
78
- end
79
-
80
- it 'registers an offense for single quotes within embedded expression in ' \
81
- 'a heredoc string' do
82
- src = ['<<END',
83
- '#{\'A\'}',
84
- 'END']
85
- inspect_source(cop, src)
86
- expect(cop.messages)
87
- .to eq(['Prefer double-quoted strings inside interpolations.'])
88
- end
89
- end
90
-
91
- context 'when configured with a bad value' do
92
- let(:cop_config) { { 'EnforcedStyle' => 'other' } }
93
-
94
- it 'fails' do
95
- expect { inspect_source(cop, 'a = "#{"b"}"') }
96
- .to raise_error(RuntimeError)
97
- end
98
- end
99
- end