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,59 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::MethodCallParentheses, :config do
6
- subject(:cop) { described_class.new(config) }
7
- let(:config) do
8
- RuboCop::Config.new('Style/EmptyLiteral' => { 'Enabled' => true })
9
- end
10
-
11
- it 'registers an offense for parens in method call without args' do
12
- inspect_source(cop, 'top.test()')
13
- expect(cop.offenses.size).to eq(1)
14
- end
15
-
16
- it 'accepts parentheses for methods starting with an upcase letter' do
17
- inspect_source(cop, 'Test()')
18
- expect(cop.offenses).to be_empty
19
- end
20
-
21
- it 'accepts no parens in method call without args' do
22
- inspect_source(cop, 'top.test')
23
- expect(cop.offenses).to be_empty
24
- end
25
-
26
- it 'accepts parens in method call with args' do
27
- inspect_source(cop, 'top.test(a)')
28
- expect(cop.offenses).to be_empty
29
- end
30
-
31
- it 'auto-corrects by removing unneeded braces' do
32
- new_source = autocorrect_source(cop, 'test()')
33
- expect(new_source).to eq('test')
34
- end
35
-
36
- it 'does not auto-correct calls that will be changed to empty literals' do
37
- original = ['Hash.new()',
38
- 'Array.new()',
39
- 'String.new()']
40
- new_source = autocorrect_source(cop, original)
41
- expect(new_source).to eq(original.join("\n"))
42
- end
43
-
44
- context 'when EmptyLiteral is disabled' do
45
- let(:config) do
46
- RuboCop::Config.new('Style/EmptyLiteral' => { 'Enabled' => false })
47
- end
48
-
49
- it 'auto-corrects calls that could be empty literals' do
50
- original = ['Hash.new()',
51
- 'Array.new()',
52
- 'String.new()']
53
- new_source = autocorrect_source(cop, original)
54
- expect(new_source).to eq(['Hash.new',
55
- 'Array.new',
56
- 'String.new'].join("\n"))
57
- end
58
- end
59
- end
@@ -1,60 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::MethodCalledOnDoEndBlock do
6
- subject(:cop) { described_class.new }
7
-
8
- context 'with a multi-line do..end block' do
9
- it 'registers an offense for a chained call' do
10
- inspect_source(cop, ['a do',
11
- ' b',
12
- 'end.c'])
13
- expect(cop.offenses.size).to eq(1)
14
- expect(cop.highlights).to eq(['end.c'])
15
- end
16
-
17
- it 'accepts it if there is no chained call' do
18
- inspect_source(cop, ['a do',
19
- ' b',
20
- 'end'])
21
- expect(cop.offenses).to be_empty
22
- end
23
-
24
- it 'accepts a chained block' do
25
- inspect_source(cop, ['a do',
26
- ' b',
27
- 'end.c do',
28
- ' d',
29
- 'end'])
30
- expect(cop.offenses).to be_empty
31
- end
32
- end
33
-
34
- context 'with a single-line do..end block' do
35
- it 'registers an offense for a chained call' do
36
- inspect_source(cop, 'a do b end.c')
37
- expect(cop.offenses.size).to eq(1)
38
- expect(cop.highlights).to eq(['end.c'])
39
- end
40
-
41
- it 'accepts a single-line do..end block with a chained block' do
42
- inspect_source(cop, 'a do b end.c do d end')
43
- expect(cop.offenses).to be_empty
44
- end
45
- end
46
-
47
- context 'with a {} block' do
48
- it 'accepts a multi-line block with a chained call' do
49
- inspect_source(cop, ['a {',
50
- ' b',
51
- '}.c'])
52
- expect(cop.offenses).to be_empty
53
- end
54
-
55
- it 'accepts a single-line block with a chained call' do
56
- inspect_source(cop, 'a { b }.c')
57
- expect(cop.offenses).to be_empty
58
- end
59
- end
60
- end
@@ -1,108 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::MethodDefParentheses, :config do
6
- subject(:cop) { described_class.new(config) }
7
-
8
- context 'require_parentheses' do
9
- let(:cop_config) { { 'EnforcedStyle' => 'require_parentheses' } }
10
-
11
- it 'reports an offense for def with parameters but no parens' do
12
- src = ['def func a, b',
13
- 'end']
14
- inspect_source(cop, src)
15
- expect(cop.offenses.size).to eq(1)
16
- expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' =>
17
- 'require_no_parentheses')
18
- end
19
-
20
- it 'reports an offense for correct + opposite' do
21
- src = ['def func(a, b)',
22
- 'end',
23
- 'def func a, b',
24
- 'end']
25
- inspect_source(cop, src)
26
- expect(cop.offenses.size).to eq(1)
27
- expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
28
- end
29
-
30
- it 'reports an offense for class def with parameters but no parens' do
31
- src = ['def Test.func a, b',
32
- 'end']
33
- inspect_source(cop, src)
34
- expect(cop.offenses.size).to eq(1)
35
- end
36
-
37
- it 'accepts def with no args and no parens' do
38
- src = ['def func',
39
- 'end']
40
- inspect_source(cop, src)
41
- expect(cop.offenses).to be_empty
42
- end
43
-
44
- it 'auto-adds required parens for a def' do
45
- new_source = autocorrect_source(cop, 'def test param; end')
46
- expect(new_source).to eq('def test(param); end')
47
- end
48
-
49
- it 'auto-adds required parens for a defs' do
50
- new_source = autocorrect_source(cop, 'def self.test param; end')
51
- expect(new_source).to eq('def self.test(param); end')
52
- end
53
-
54
- it 'auto-adds required parens to argument lists on multiple lines' do
55
- new_source = autocorrect_source(cop, ['def test one,', 'two', 'end'])
56
- expect(new_source).to eq(['def test(one,',
57
- 'two)',
58
- 'end'].join("\n"))
59
- end
60
- end
61
-
62
- context 'require_no_parentheses' do
63
- let(:cop_config) { { 'EnforcedStyle' => 'require_no_parentheses' } }
64
-
65
- it 'reports an offense for def with parameters with parens' do
66
- src = ['def func(a, b)',
67
- 'end']
68
- inspect_source(cop, src)
69
- expect(cop.offenses.size).to eq(1)
70
- expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' =>
71
- 'require_parentheses')
72
- end
73
-
74
- it 'reports an offense for opposite + correct' do
75
- src = ['def func(a, b)',
76
- 'end',
77
- 'def func a, b',
78
- 'end']
79
- inspect_source(cop, src)
80
- expect(cop.offenses.size).to eq(1)
81
- expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
82
- end
83
-
84
- it 'reports an offense for class def with parameters with parens' do
85
- src = ['def Test.func(a, b)',
86
- 'end']
87
- inspect_source(cop, src)
88
- expect(cop.offenses.size).to eq(1)
89
- end
90
-
91
- it 'reports an offense for def with no args and parens' do
92
- src = ['def func()',
93
- 'end']
94
- inspect_source(cop, src)
95
- expect(cop.offenses.size).to eq(1)
96
- end
97
-
98
- it 'auto-removes the parens' do
99
- new_source = autocorrect_source(cop, 'def test(param); end')
100
- expect(new_source).to eq('def test param; end')
101
- end
102
-
103
- it 'auto-removes the parens for defs' do
104
- new_source = autocorrect_source(cop, 'def self.test(param); end')
105
- expect(new_source).to eq('def self.test param; end')
106
- end
107
- end
108
- end
@@ -1,125 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::MethodName, :config do
6
- subject(:cop) { described_class.new(config) }
7
-
8
- shared_examples 'never accepted' do
9
- it 'registers an offense for mixed snake case and camel case' do
10
- inspect_source(cop, ['def visit_Arel_Nodes_SelectStatement',
11
- 'end'])
12
- expect(cop.offenses.size).to eq(1)
13
- expect(cop.highlights).to eq(['visit_Arel_Nodes_SelectStatement'])
14
- end
15
-
16
- it 'registers an offense for capitalized camel case' do
17
- inspect_source(cop, ['def MyMethod',
18
- 'end'])
19
- expect(cop.offenses.size).to eq(1)
20
- expect(cop.highlights).to eq(['MyMethod'])
21
- end
22
- end
23
-
24
- shared_examples 'always accepted' do
25
- it 'accepts one line methods' do
26
- inspect_source(cop, "def body; '' end")
27
- expect(cop.offenses).to be_empty
28
- end
29
-
30
- it 'accepts operator definitions' do
31
- inspect_source(cop, ['def +(other)',
32
- ' # ...',
33
- 'end'])
34
- expect(cop.offenses).to be_empty
35
- end
36
- end
37
-
38
- context 'when configured for snake_case' do
39
- let(:cop_config) { { 'EnforcedStyle' => 'snake_case' } }
40
-
41
- it 'registers an offense for camel case in instance method name' do
42
- inspect_source(cop, ['def myMethod',
43
- ' # ...',
44
- 'end'])
45
- expect(cop.offenses.size).to eq(1)
46
- expect(cop.highlights).to eq(['myMethod'])
47
- expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' =>
48
- 'camelCase')
49
- end
50
-
51
- it 'registers an offense for opposite + correct' do
52
- inspect_source(cop, ['def my_method',
53
- 'end',
54
- 'def myMethod',
55
- 'end'])
56
- expect(cop.highlights).to eq(['myMethod'])
57
- expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
58
- end
59
-
60
- it 'registers an offense for camel case in singleton method name' do
61
- inspect_source(cop, ['def self.myMethod',
62
- ' # ...',
63
- 'end'])
64
- expect(cop.offenses.size).to eq(1)
65
- expect(cop.highlights).to eq(['myMethod'])
66
- end
67
-
68
- it 'accepts snake case in names' do
69
- inspect_source(cop, ['def my_method',
70
- 'end'])
71
- expect(cop.offenses).to be_empty
72
- end
73
-
74
- include_examples 'never accepted'
75
- include_examples 'always accepted'
76
- end
77
-
78
- context 'when configured for camelCase' do
79
- let(:cop_config) { { 'EnforcedStyle' => 'camelCase' } }
80
-
81
- it 'accepts camel case in instance method name' do
82
- inspect_source(cop, ['def myMethod',
83
- ' # ...',
84
- 'end'])
85
- expect(cop.offenses).to be_empty
86
- end
87
-
88
- it 'accepts camel case in singleton method name' do
89
- inspect_source(cop, ['def self.myMethod',
90
- ' # ...',
91
- 'end'])
92
- expect(cop.offenses).to be_empty
93
- end
94
-
95
- it 'registers an offense for snake case in names' do
96
- inspect_source(cop, ['def my_method',
97
- 'end'])
98
- expect(cop.offenses.size).to eq(1)
99
- expect(cop.highlights).to eq(['my_method'])
100
- expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' =>
101
- 'snake_case')
102
- end
103
-
104
- it 'registers an offense for correct + opposite' do
105
- inspect_source(cop, ['def my_method',
106
- 'end',
107
- 'def myMethod',
108
- 'end'])
109
- expect(cop.highlights).to eq(['my_method'])
110
- expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
111
- end
112
-
113
- include_examples 'always accepted'
114
- include_examples 'never accepted'
115
- end
116
-
117
- context 'when configured with a bad value' do
118
- let(:cop_config) { { 'EnforcedStyle' => 'other' } }
119
-
120
- it 'fails' do
121
- expect { inspect_source(cop, 'def a', 'end') }
122
- .to raise_error(RuntimeError)
123
- end
124
- end
125
- end
@@ -1,24 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::ModuleFunction do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for extend self in module' do
9
- inspect_source(cop,
10
- ['module Test',
11
- ' extend self',
12
- ' def test; end',
13
- 'end'])
14
- expect(cop.offenses.size).to eq(1)
15
- end
16
-
17
- it 'accepts extend self in class' do
18
- inspect_source(cop,
19
- ['class Test',
20
- ' extend self',
21
- 'end'])
22
- expect(cop.offenses).to be_empty
23
- end
24
- end
@@ -1,78 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::MultilineBlockChain do
6
- subject(:cop) { described_class.new }
7
-
8
- context 'with multi-line block chaining' do
9
- it 'registers an offense for a simple case' do
10
- inspect_source(cop, ['a do',
11
- ' b',
12
- 'end.c do',
13
- ' d',
14
- 'end'])
15
- expect(cop.offenses.size).to eq(1)
16
- expect(cop.highlights).to eq(['end.c'])
17
- end
18
-
19
- it 'registers an offense for a slightly more complicated case' do
20
- inspect_source(cop, ['a do',
21
- ' b',
22
- 'end.c1.c2 do',
23
- ' d',
24
- 'end'])
25
- expect(cop.offenses.size).to eq(1)
26
- expect(cop.highlights).to eq(['end.c1.c2'])
27
- end
28
-
29
- it 'registers two offenses for a chain of three blocks' do
30
- inspect_source(cop, ['a do',
31
- ' b',
32
- 'end.c do',
33
- ' d',
34
- 'end.e do',
35
- ' f',
36
- 'end'])
37
- expect(cop.offenses.size).to eq(2)
38
- expect(cop.highlights).to eq(['end.c', 'end.e'])
39
- end
40
-
41
- it 'registers an offense for a chain where the second block is ' \
42
- 'single-line' do
43
- inspect_source(cop, ['Thread.list.find_all { |t|',
44
- ' t.alive?',
45
- '}.map { |thread| thread.object_id }'])
46
- expect(cop.offenses.size).to eq(1)
47
- expect(cop.highlights).to eq(['}.map'])
48
- end
49
-
50
- it 'accepts a chain where the first block is single-line' do
51
- inspect_source(cop,
52
- ['Thread.list.find_all { |t| t.alive? }.map { |t| ',
53
- ' t.object_id',
54
- '}'])
55
- expect(cop.offenses).to be_empty
56
- end
57
- end
58
-
59
- it 'accepts a chain of blocks spanning one line' do
60
- inspect_source(cop, ['a { b }.c { d }',
61
- 'w do x end.y do z end'])
62
- expect(cop.offenses).to be_empty
63
- end
64
-
65
- it 'accepts a multi-line block chained with calls on one line' do
66
- inspect_source(cop, ['a do',
67
- ' b',
68
- 'end.c.d'])
69
- expect(cop.offenses).to be_empty
70
- end
71
-
72
- it 'accepts a chain of calls followed by a multi-line block' do
73
- inspect_source(cop, ['a1.a2.a3 do',
74
- ' b',
75
- 'end'])
76
- expect(cop.offenses).to be_empty
77
- end
78
- end