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,37 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::CharacterLiteral do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for character literals' do
9
- inspect_source(cop, 'x = ?x')
10
- expect(cop.offenses.size).to eq(1)
11
- end
12
-
13
- it 'registers an offense for literals like \n' do
14
- inspect_source(cop, 'x = ?\n')
15
- expect(cop.offenses.size).to eq(1)
16
- end
17
-
18
- it 'accepts literals like ?\C-\M-d' do
19
- inspect_source(cop, 'x = ?\C-\M-d')
20
- expect(cop.offenses).to be_empty
21
- end
22
-
23
- it 'accepts ? in a %w literal' do
24
- inspect_source(cop, '%w{? A}')
25
- expect(cop.offenses).to be_empty
26
- end
27
-
28
- it "auto-corrects ?x to 'x'" do
29
- new_source = autocorrect_source(cop, 'x = ?x')
30
- expect(new_source).to eq("x = 'x'")
31
- end
32
-
33
- it 'auto-corrects ?\n to "\\n"' do
34
- new_source = autocorrect_source(cop, 'x = ?\n')
35
- expect(new_source).to eq('x = "\\n"')
36
- end
37
- end
@@ -1,40 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::ClassAndModuleCamelCase do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for underscore in class and module name' do
9
- inspect_source(cop,
10
- ['class My_Class',
11
- 'end',
12
- '',
13
- 'module My_Module',
14
- 'end'
15
- ])
16
- expect(cop.offenses.size).to eq(2)
17
- end
18
-
19
- it 'is not fooled by qualified names' do
20
- inspect_source(cop,
21
- ['class Top::My_Class',
22
- 'end',
23
- '',
24
- 'module My_Module::Ala',
25
- 'end'
26
- ])
27
- expect(cop.offenses.size).to eq(2)
28
- end
29
-
30
- it 'accepts CamelCase names' do
31
- inspect_source(cop,
32
- ['class MyClass',
33
- 'end',
34
- '',
35
- 'module Mine',
36
- 'end'
37
- ])
38
- expect(cop.offenses).to be_empty
39
- end
40
- end
@@ -1,133 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::ClassAndModuleChildren, :config do
6
- subject(:cop) { described_class.new(config) }
7
-
8
- context 'nested style' do
9
- let(:cop_config) { { 'EnforcedStyle' => 'nested' } }
10
-
11
- it 'registers an offense for not nested classes' do
12
- inspect_source(cop, ['class FooClass::BarClass',
13
- 'end'])
14
-
15
- expect(cop.offenses.size).to eq 1
16
- expect(cop.messages).to eq [
17
- 'Use nested module/class definitions instead of compact style.'
18
- ]
19
- expect(cop.highlights).to eq ['FooClass::BarClass']
20
- end
21
-
22
- it 'registers an offense for not nested modules' do
23
- inspect_source(cop, ['module FooModule::BarModule',
24
- 'end'])
25
-
26
- expect(cop.offenses.size).to eq 1
27
- expect(cop.messages).to eq [
28
- 'Use nested module/class definitions instead of compact style.'
29
- ]
30
- expect(cop.highlights).to eq ['FooModule::BarModule']
31
- end
32
-
33
- it 'accepts nested children' do
34
- inspect_source(cop,
35
- ['class FooClass',
36
- ' class BarClass',
37
- ' end',
38
- 'end',
39
- '',
40
- 'module FooModule',
41
- ' module BarModule',
42
- ' end',
43
- 'end'
44
- ])
45
- expect(cop.offenses).to be_empty
46
- end
47
-
48
- it 'accepts :: in parent class on inheritance' do
49
- inspect_source(cop,
50
- ['class FooClass',
51
- ' class BarClass',
52
- ' end',
53
- 'end',
54
- '',
55
- 'class BazClass < FooClass::BarClass',
56
- 'end'
57
- ])
58
- expect(cop.offenses).to be_empty
59
- end
60
- end
61
-
62
- context 'compact style' do
63
- let(:cop_config) { { 'EnforcedStyle' => 'compact' } }
64
-
65
- it 'registers a offense for classes with nested children' do
66
- inspect_source(cop,
67
- ['class FooClass',
68
- ' class BarClass',
69
- ' end',
70
- 'end'
71
- ])
72
- expect(cop.offenses.size).to eq 1
73
- expect(cop.messages).to eq [
74
- 'Use compact module/class definition instead of nested style.'
75
- ]
76
- expect(cop.highlights).to eq ['FooClass']
77
- end
78
-
79
- it 'registers a offense for modules with nested children' do
80
- inspect_source(cop,
81
- ['module FooModule',
82
- ' module BarModule',
83
- ' end',
84
- 'end'
85
- ])
86
- expect(cop.offenses.size).to eq 1
87
- expect(cop.messages).to eq [
88
- 'Use compact module/class definition instead of nested style.'
89
- ]
90
- expect(cop.highlights).to eq ['FooModule']
91
- end
92
-
93
- it 'accepts compact style for classes / modules' do
94
- inspect_source(cop,
95
- ['class FooClass::BarClass',
96
- 'end',
97
- '',
98
- 'module FooClass::BarModule',
99
- 'end'
100
- ])
101
- expect(cop.offenses).to be_empty
102
- end
103
-
104
- it 'accepts nesting for classes / modules with more than one child' do
105
- inspect_source(cop,
106
- ['class FooClass',
107
- ' class BarClass',
108
- ' end',
109
- ' class BazClass',
110
- ' end',
111
- 'end',
112
- '',
113
- 'module FooModule',
114
- ' module BarModule',
115
- ' end',
116
- ' class BazModule',
117
- ' end',
118
- 'end'
119
- ])
120
- expect(cop.offenses).to be_empty
121
- end
122
-
123
- it 'accepts class / module with single method' do
124
- inspect_source(cop,
125
- ['class FooClass',
126
- ' def bar_method',
127
- ' end',
128
- 'end'
129
- ])
130
- expect(cop.offenses).to be_empty
131
- end
132
- end
133
- end
@@ -1,41 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::ClassCheck, :config do
6
- subject(:cop) { described_class.new(config) }
7
-
8
- context 'when enforced style is is_a?' do
9
- let(:cop_config) { { 'EnforcedStyle' => 'is_a?' } }
10
-
11
- it 'registers an offense for kind_of?' do
12
- inspect_source(cop, 'x.kind_of? y')
13
- expect(cop.offenses.size).to eq(1)
14
- expect(cop.highlights).to eq(['kind_of?'])
15
- expect(cop.messages)
16
- .to eq(['Prefer `Object#is_a?` over `Object#kind_of?`.'])
17
- end
18
-
19
- it 'auto-corrects kind_of? to is_a?' do
20
- corrected = autocorrect_source(cop, ['x.kind_of? y'])
21
- expect(corrected).to eq 'x.is_a? y'
22
- end
23
- end
24
-
25
- context 'when enforced style is kind_of?' do
26
- let(:cop_config) { { 'EnforcedStyle' => 'kind_of?' } }
27
-
28
- it 'registers an offense for is_a?' do
29
- inspect_source(cop, 'x.is_a? y')
30
- expect(cop.offenses.size).to eq(1)
31
- expect(cop.highlights).to eq(['is_a?'])
32
- expect(cop.messages)
33
- .to eq(['Prefer `Object#kind_of?` over `Object#is_a?`.'])
34
- end
35
-
36
- it 'auto-corrects is_a? to kind_of?' do
37
- corrected = autocorrect_source(cop, ['x.is_a? y'])
38
- expect(corrected).to eq 'x.kind_of? y'
39
- end
40
- end
41
- end
@@ -1,80 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::ClassMethods do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for methods using a class name' do
9
- inspect_source(cop,
10
- ['class Test',
11
- ' def Test.some_method',
12
- ' do_something',
13
- ' end',
14
- 'end'])
15
- expect(cop.offenses.size).to eq(1)
16
- expect(cop.messages)
17
- .to eq(['Use `self.some_method` instead of `Test.some_method`.'])
18
- expect(cop.highlights).to eq(['Test'])
19
- end
20
-
21
- it 'registers an offense for methods using a module name' do
22
- inspect_source(cop,
23
- ['module Test',
24
- ' def Test.some_method',
25
- ' do_something',
26
- ' end',
27
- 'end'])
28
- expect(cop.offenses.size).to eq(1)
29
- expect(cop.messages)
30
- .to eq(['Use `self.some_method` instead of `Test.some_method`.'])
31
- expect(cop.highlights).to eq(['Test'])
32
- end
33
-
34
- it 'does not register an offense for methods using self' do
35
- inspect_source(cop,
36
- ['module Test',
37
- ' def self.some_method',
38
- ' do_something',
39
- ' end',
40
- 'end'])
41
- expect(cop.offenses).to be_empty
42
- end
43
-
44
- it 'does not register an offense for other top-level singleton methods' do
45
- inspect_source(cop,
46
- ['class Test',
47
- ' X = Something.new',
48
- '',
49
- ' def X.some_method',
50
- ' do_something',
51
- ' end',
52
- 'end'])
53
- expect(cop.offenses).to be_empty
54
- end
55
-
56
- it 'does not register an offense outside class/module bodies' do
57
- inspect_source(cop,
58
- ['def Test.some_method',
59
- ' do_something',
60
- 'end'])
61
- expect(cop.offenses).to be_empty
62
- end
63
-
64
- it 'autocorrects class name to self' do
65
- src = ['class Test',
66
- ' def Test.some_method',
67
- ' do_something',
68
- ' end',
69
- 'end']
70
-
71
- correct_source = ['class Test',
72
- ' def self.some_method',
73
- ' do_something',
74
- ' end',
75
- 'end'].join("\n")
76
-
77
- new_source = autocorrect_source(cop, src)
78
- expect(new_source).to eq(correct_source)
79
- end
80
- end
@@ -1,19 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::ClassVars do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for class variable declaration' do
9
- inspect_source(cop, 'class TestClass; @@test = 10; end')
10
- expect(cop.offenses.size).to eq(1)
11
- expect(cop.messages)
12
- .to eq(['Replace class var @@test with a class instance var.'])
13
- end
14
-
15
- it 'does not register an offense for class variable usage' do
16
- inspect_source(cop, '@@test.test(20)')
17
- expect(cop.offenses).to be_empty
18
- end
19
- end
@@ -1,48 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::CollectionMethods, :config do
6
- cop_config = {
7
- 'PreferredMethods' => {
8
- 'collect' => 'map',
9
- 'inject' => 'reduce',
10
- 'detect' => 'find',
11
- 'find_all' => 'select'
12
- }
13
- }
14
-
15
- subject(:cop) { described_class.new(config) }
16
- let(:cop_config) { cop_config }
17
-
18
- cop_config['PreferredMethods'].each do |method, preferred_method|
19
- it "registers an offense for #{method} with block" do
20
- inspect_source(cop, "[1, 2, 3].#{method} { |e| e + 1 }")
21
- expect(cop.offenses.size).to eq(1)
22
- expect(cop.messages)
23
- .to eq(["Prefer `#{preferred_method}` over `#{method}`."])
24
- end
25
-
26
- it "registers an offense for #{method} with proc param" do
27
- inspect_source(cop, "[1, 2, 3].#{method}(&:test)")
28
- expect(cop.offenses.size).to eq(1)
29
- expect(cop.messages)
30
- .to eq(["Prefer `#{preferred_method}` over `#{method}`."])
31
- end
32
-
33
- it "accepts #{method} with more than 1 param" do
34
- inspect_source(cop, "[1, 2, 3].#{method}(other, &:test)")
35
- expect(cop.offenses).to be_empty
36
- end
37
-
38
- it "accepts #{method} without a block" do
39
- inspect_source(cop, "[1, 2, 3].#{method}")
40
- expect(cop.offenses).to be_empty
41
- end
42
-
43
- it 'auto-corrects to preferred method' do
44
- new_source = autocorrect_source(cop, 'some.collect(&:test)')
45
- expect(new_source).to eq('some.map(&:test)')
46
- end
47
- end
48
- end
@@ -1,65 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::ColonMethodCall do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for instance method call' do
9
- inspect_source(cop,
10
- 'test::method_name')
11
- expect(cop.offenses.size).to eq(1)
12
- end
13
-
14
- it 'registers an offense for instance method call with arg' do
15
- inspect_source(cop,
16
- 'test::method_name(arg)')
17
- expect(cop.offenses.size).to eq(1)
18
- end
19
-
20
- it 'registers an offense for class method call' do
21
- inspect_source(cop,
22
- 'Class::method_name')
23
- expect(cop.offenses.size).to eq(1)
24
- end
25
-
26
- it 'registers an offense for class method call with arg' do
27
- inspect_source(cop,
28
- 'Class::method_name(arg, arg2)')
29
- expect(cop.offenses.size).to eq(1)
30
- end
31
-
32
- it 'does not register an offense for constant access' do
33
- inspect_source(cop,
34
- 'Tip::Top::SOME_CONST')
35
- expect(cop.offenses).to be_empty
36
- end
37
-
38
- it 'does not register an offense for nested class' do
39
- inspect_source(cop,
40
- 'Tip::Top.some_method')
41
- expect(cop.offenses).to be_empty
42
- end
43
-
44
- it 'does not register an offense for op methods' do
45
- inspect_source(cop,
46
- 'Tip::Top.some_method[3]')
47
- expect(cop.offenses).to be_empty
48
- end
49
-
50
- it 'does not register an offense when for constructor methods' do
51
- inspect_source(cop,
52
- 'Tip::Top(some_arg)')
53
- expect(cop.offenses).to be_empty
54
- end
55
-
56
- it 'does not register an offense for Java static types' do
57
- inspect_source(cop, 'Java::int')
58
- expect(cop.offenses).to be_empty
59
- end
60
-
61
- it 'auto-corrects "::" with "."' do
62
- new_source = autocorrect_source(cop, 'test::method')
63
- expect(new_source).to eq('test.method')
64
- end
65
- end