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,82 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::SingleLineBlockParams, :config do
6
- subject(:cop) { described_class.new(config) }
7
- let(:cop_config) do
8
- { 'Methods' =>
9
- [{ 'reduce' => %w(a e) },
10
- { 'test' => %w(x y) }]
11
- }
12
- end
13
-
14
- it 'finds wrong argument names in calls with different syntax' do
15
- inspect_source(cop,
16
- ['def m',
17
- ' [0, 1].reduce { |c, d| c + d }',
18
- ' [0, 1].reduce{ |c, d| c + d }',
19
- ' [0, 1].reduce(5) { |c, d| c + d }',
20
- ' [0, 1].reduce(5){ |c, d| c + d }',
21
- ' [0, 1].reduce (5) { |c, d| c + d }',
22
- ' [0, 1].reduce(5) { |c, d| c + d }',
23
- ' ala.test { |x, z| bala }',
24
- 'end'])
25
- expect(cop.offenses.size).to eq(7)
26
- expect(cop.offenses.map(&:line).sort).to eq((2..8).to_a)
27
- expect(cop.messages.first)
28
- .to eq('Name `reduce` block params `|a, e|`.')
29
- end
30
-
31
- it 'allows calls with proper argument names' do
32
- inspect_source(cop,
33
- ['def m',
34
- ' [0, 1].reduce { |a, e| a + e }',
35
- ' [0, 1].reduce{ |a, e| a + e }',
36
- ' [0, 1].reduce(5) { |a, e| a + e }',
37
- ' [0, 1].reduce(5){ |a, e| a + e }',
38
- ' [0, 1].reduce (5) { |a, e| a + e }',
39
- ' [0, 1].reduce(5) { |a, e| a + e }',
40
- ' ala.test { |x, y| bala }',
41
- 'end'])
42
- expect(cop.offenses).to be_empty
43
- end
44
-
45
- it 'allows an unused parameter to have a leading underscore' do
46
- inspect_source(cop,
47
- 'File.foreach(filename).reduce(0) { |a, _e| a + 1 }')
48
- expect(cop.offenses).to be_empty
49
- end
50
-
51
- it 'finds incorrectly named parameters with leading underscores' do
52
- inspect_source(cop,
53
- 'File.foreach(filename).reduce(0) { |_x, _y| }')
54
- expect(cop.messages).to eq(['Name `reduce` block params `|a, e|`.'])
55
- end
56
-
57
- it 'ignores do..end blocks' do
58
- inspect_source(cop,
59
- ['def m',
60
- ' [0, 1].reduce do |c, d|',
61
- ' c + d',
62
- ' end',
63
- 'end'])
64
- expect(cop.offenses).to be_empty
65
- end
66
-
67
- it 'ignores :reduce symbols' do
68
- inspect_source(cop,
69
- ['def m',
70
- ' call_method(:reduce) { |a, b| a + b}',
71
- 'end'])
72
- expect(cop.offenses).to be_empty
73
- end
74
-
75
- it 'does not report when destructuring is used' do
76
- inspect_source(cop,
77
- ['def m',
78
- ' test.reduce { |a, (id, _)| a + id}',
79
- 'end'])
80
- expect(cop.offenses).to be_empty
81
- end
82
- end
@@ -1,94 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::SingleLineMethods do
6
- subject(:cop) { described_class.new(config) }
7
- let(:config) do
8
- RuboCop::Config.new('Style/SingleLineMethods' => cop_config,
9
- 'Style/IndentationWidth' => { 'Width' => 2 })
10
- end
11
- let(:cop_config) { { 'AllowIfMethodIsEmpty' => true } }
12
-
13
- it 'registers an offense for a single-line method' do
14
- inspect_source(cop,
15
- ['def some_method; body end',
16
- 'def link_to(name, url); {:name => name}; end',
17
- 'def @table.columns; super; end'])
18
- expect(cop.messages).to eq(
19
- ['Avoid single-line method definitions.'] * 3)
20
- end
21
-
22
- context 'when AllowIfMethodIsEmpty is disabled' do
23
- let(:cop_config) { { 'AllowIfMethodIsEmpty' => false } }
24
-
25
- it 'registers an offense for an empty method' do
26
- inspect_source(cop, ['def no_op; end',
27
- 'def self.resource_class=(klass); end',
28
- 'def @table.columns; end'])
29
- expect(cop.offenses.size).to eq(3)
30
- end
31
- end
32
-
33
- context 'when AllowIfMethodIsEmpty is enabled' do
34
- let(:cop_config) { { 'AllowIfMethodIsEmpty' => true } }
35
-
36
- it 'accepts a single-line empty method' do
37
- inspect_source(cop, ['def no_op; end',
38
- 'def self.resource_class=(klass); end',
39
- 'def @table.columns; end'])
40
- expect(cop.offenses).to be_empty
41
- end
42
- end
43
-
44
- it 'accepts a multi-line method' do
45
- inspect_source(cop, ['def some_method',
46
- ' body',
47
- 'end'])
48
- expect(cop.offenses).to be_empty
49
- end
50
-
51
- it 'does not crash on an method with a capitalized name' do
52
- inspect_source(cop, ['def NoSnakeCase',
53
- 'end'])
54
- expect(cop.offenses).to be_empty
55
- end
56
-
57
- it 'auto-corrects def with semicolon after method name' do
58
- corrected = autocorrect_source(cop,
59
- [' def some_method; body end # Cmnt'])
60
- expect(corrected).to eq [' # Cmnt',
61
- ' def some_method; ',
62
- ' body ',
63
- ' end '].join("\n")
64
- end
65
-
66
- it 'auto-corrects defs with parentheses after method name' do
67
- corrected = autocorrect_source(cop, [' def self.some_method() body end'])
68
- expect(corrected).to eq [' def self.some_method() ',
69
- ' body ',
70
- ' end'].join("\n")
71
- end
72
-
73
- it 'auto-corrects def with argument in parentheses' do
74
- corrected = autocorrect_source(cop, [' def some_method(arg) body end'])
75
- expect(corrected).to eq [' def some_method(arg) ',
76
- ' body ',
77
- ' end'].join("\n")
78
- end
79
-
80
- it 'auto-corrects def with argument and no parentheses' do
81
- corrected = autocorrect_source(cop, [' def some_method arg; body end'])
82
- expect(corrected).to eq [' def some_method arg; ',
83
- ' body ',
84
- ' end'].join("\n")
85
- end
86
-
87
- it 'auto-corrects def with semicolon before end' do
88
- corrected = autocorrect_source(cop, [' def some_method; b1; b2; end'])
89
- expect(corrected).to eq [' def some_method; ',
90
- ' b1; ',
91
- ' b2; ',
92
- ' end'].join("\n")
93
- end
94
- end
@@ -1,63 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::SingleSpaceBeforeFirstArg do
6
- subject(:cop) { described_class.new }
7
-
8
- context 'for method calls without parentheses' do
9
- it 'registers an offense for method call with two spaces before the ' \
10
- 'first arg' do
11
- inspect_source(cop, ['something x',
12
- 'a.something y, z'])
13
- expect(cop.messages)
14
- .to eq(['Put one space between the method name and the first ' \
15
- 'argument.'] * 2)
16
- expect(cop.highlights).to eq([' ', ' '])
17
- end
18
-
19
- it 'auto-corrects extra space' do
20
- new_source = autocorrect_source(cop, ['something x',
21
- 'a.something y, z'])
22
- expect(new_source).to eq(['something x',
23
- 'a.something y, z'].join("\n"))
24
- end
25
-
26
- it 'accepts a method call with one space before the first arg' do
27
- inspect_source(cop, ['something x',
28
- 'a.something y, z'])
29
- expect(cop.offenses).to be_empty
30
- end
31
-
32
- it 'accepts + operator' do
33
- inspect_source(cop, ['something +',
34
- ' x'])
35
- expect(cop.offenses).to be_empty
36
- end
37
-
38
- it 'accepts setter call' do
39
- inspect_source(cop, ['something.x =',
40
- ' y'])
41
- expect(cop.offenses).to be_empty
42
- end
43
-
44
- it 'accepts multiple space containing line break' do
45
- inspect_source(cop, ['something \\',
46
- ' x'])
47
- expect(cop.offenses).to be_empty
48
- end
49
- end
50
-
51
- context 'for method calls with parentheses' do
52
- it 'accepts a method call without space' do
53
- inspect_source(cop, ['something(x)',
54
- 'a.something(y, z)'])
55
- expect(cop.offenses).to be_empty
56
- end
57
-
58
- it 'accepts a method call with space after the left parenthesis' do
59
- inspect_source(cop, 'something( x )')
60
- expect(cop.offenses).to be_empty
61
- end
62
- end
63
- end
@@ -1,55 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::SpaceAfterColon do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for colon without space after it' do
9
- # TODO: There is double reporting of the last colon (also from
10
- # SpaceAroundOperators).
11
- inspect_source(cop, 'x = w ? {a:3}:4')
12
- expect(cop.messages).to eq(['Space missing after colon.'] * 2)
13
- expect(cop.highlights).to eq([':'] * 2)
14
- end
15
-
16
- it 'accepts colons in symbols' do
17
- inspect_source(cop, 'x = :a')
18
- expect(cop.messages).to be_empty
19
- end
20
-
21
- it 'accepts colon in ternary followed by space' do
22
- inspect_source(cop, 'x = w ? a : b')
23
- expect(cop.messages).to be_empty
24
- end
25
-
26
- it 'accepts hash rockets' do
27
- inspect_source(cop, 'x = {"a"=>1}')
28
- expect(cop.messages).to be_empty
29
- end
30
-
31
- it 'accepts if' do
32
- inspect_source(cop, ['x = if w',
33
- ' a',
34
- ' end'])
35
- expect(cop.messages).to be_empty
36
- end
37
-
38
- if RUBY_VERSION >= '2.1'
39
- it 'accepts colons denoting required keyword argument' do
40
- inspect_source(cop, ['def initialize(table:, nodes:)',
41
- 'end'])
42
- expect(cop.messages).to be_empty
43
- end
44
- end
45
-
46
- it 'accepts colons in strings' do
47
- inspect_source(cop, "str << ':'")
48
- expect(cop.messages).to be_empty
49
- end
50
-
51
- it 'auto-corrects missing space' do
52
- new_source = autocorrect_source(cop, 'x = w ? {a:3}:4')
53
- expect(new_source).to eq('x = w ? {a: 3}: 4')
54
- end
55
- end
@@ -1,30 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::SpaceAfterComma do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for block argument commas without space' do
9
- inspect_source(cop, 'each { |s,t| }')
10
- expect(cop.messages).to eq(
11
- ['Space missing after comma.'])
12
- end
13
-
14
- it 'registers an offense for array index commas without space' do
15
- inspect_source(cop, 'formats[0,1]')
16
- expect(cop.messages).to eq(
17
- ['Space missing after comma.'])
18
- end
19
-
20
- it 'registers an offense for method call arg commas without space' do
21
- inspect_source(cop, 'a(1,2)')
22
- expect(cop.messages).to eq(
23
- ['Space missing after comma.'])
24
- end
25
-
26
- it 'auto-corrects missing space' do
27
- new_source = autocorrect_source(cop, 'each { |s,t| a(1,formats[0,1])}')
28
- expect(new_source).to eq('each { |s, t| a(1, formats[0, 1])}')
29
- end
30
- end
@@ -1,84 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::SpaceAfterControlKeyword do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for normal if' do
9
- inspect_source(cop,
10
- 'if(test) then result end')
11
- expect(cop.offenses.size).to eq(1)
12
- end
13
-
14
- it 'registers an offense for modifier unless' do
15
- inspect_source(cop, 'action unless(test)')
16
-
17
- expect(cop.offenses.size).to eq(1)
18
- end
19
-
20
- it 'does not get confused by keywords' do
21
- inspect_source(cop, '[:if, :unless].action')
22
- expect(cop.offenses).to be_empty
23
- end
24
-
25
- it 'does not get confused by the ternary operator' do
26
- inspect_source(cop, 'a ? b : c')
27
- expect(cop.offenses).to be_empty
28
- end
29
-
30
- it 'registers an offense for if, elsif, and unless' do
31
- inspect_source(cop,
32
- ['if(a)',
33
- 'elsif(b)',
34
- ' unless(c)',
35
- ' end',
36
- 'end'])
37
- expect(cop.offenses.map(&:line)).to eq([1, 2, 3])
38
- end
39
-
40
- it 'registers an offense for case and when' do
41
- inspect_source(cop,
42
- ['case(a)',
43
- 'when(0) then 1',
44
- 'end'])
45
- expect(cop.offenses.map(&:line)).to eq([1, 2])
46
- end
47
-
48
- it 'registers an offense for while and until' do
49
- inspect_source(cop,
50
- ['while(a)',
51
- ' b until(c)',
52
- 'end'])
53
- expect(cop.offenses.map(&:line)).to eq([1, 2])
54
- end
55
-
56
- it 'auto-corrects missing space' do
57
- new_source = autocorrect_source(cop, ['if(test) then result end',
58
- 'action unless(test)',
59
- 'if(a)',
60
- 'elsif(b)',
61
- ' unless(c)',
62
- ' end',
63
- 'end',
64
- 'case(a)',
65
- 'when(0) then 1',
66
- 'end',
67
- 'while(a)',
68
- ' b until(c)',
69
- 'end'])
70
- expect(new_source).to eq(['if (test) then result end',
71
- 'action unless (test)',
72
- 'if (a)',
73
- 'elsif (b)',
74
- ' unless (c)',
75
- ' end',
76
- 'end',
77
- 'case (a)',
78
- 'when (0) then 1',
79
- 'end',
80
- 'while (a)',
81
- ' b until (c)',
82
- 'end'].join("\n"))
83
- end
84
- end
@@ -1,70 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::SpaceAfterMethodName do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for def with space before the parenthesis' do
9
- inspect_source(cop,
10
- ['def func (x)',
11
- ' a',
12
- 'end'])
13
- expect(cop.offenses.size).to eq(1)
14
- end
15
-
16
- it 'registers an offense for defs with space before the parenthesis' do
17
- inspect_source(cop,
18
- ['def self.func (x)',
19
- ' a',
20
- 'end'])
21
- expect(cop.offenses.size).to eq(1)
22
- end
23
-
24
- it 'accepts a def without arguments' do
25
- inspect_source(cop,
26
- ['def func',
27
- ' a',
28
- 'end'])
29
- expect(cop.offenses).to be_empty
30
- end
31
-
32
- it 'accepts a defs without arguments' do
33
- inspect_source(cop,
34
- ['def self.func',
35
- ' a',
36
- 'end'])
37
- expect(cop.offenses).to be_empty
38
- end
39
-
40
- it 'accepts a def with arguments but no parentheses' do
41
- inspect_source(cop,
42
- ['def func x',
43
- ' a',
44
- 'end'])
45
- expect(cop.offenses).to be_empty
46
- end
47
-
48
- it 'accepts a defs with arguments but no parentheses' do
49
- inspect_source(cop,
50
- ['def self.func x',
51
- ' a',
52
- 'end'])
53
- expect(cop.offenses).to be_empty
54
- end
55
-
56
- it 'auto-corrects unwanted space' do
57
- new_source = autocorrect_source(cop, ['def func (x)',
58
- ' a',
59
- 'end',
60
- 'def self.func (x)',
61
- ' a',
62
- 'end'])
63
- expect(new_source).to eq(['def func(x)',
64
- ' a',
65
- 'end',
66
- 'def self.func(x)',
67
- ' a',
68
- 'end'].join("\n"))
69
- end
70
- end