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,133 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Offense do
6
- let(:location) do
7
- source_buffer = Parser::Source::Buffer.new('test', 1)
8
- source_buffer.source = "a\n"
9
- Parser::Source::Range.new(source_buffer, 0, 1)
10
- end
11
- subject(:offense) do
12
- described_class.new(:convention, location, 'message', 'CopName', true)
13
- end
14
-
15
- it 'has a few required attributes' do
16
- expect(offense.severity).to eq(:convention)
17
- expect(offense.line).to eq(1)
18
- expect(offense.message).to eq('message')
19
- expect(offense.cop_name).to eq('CopName')
20
- expect(offense.corrected?).to be_truthy
21
- end
22
-
23
- it 'overrides #to_s' do
24
- expect(offense.to_s).to eq('C: 1: 1: message')
25
- end
26
-
27
- it 'does not blow up if a message contains %' do
28
- offense = described_class.new(:convention, location, 'message % test',
29
- 'CopName')
30
-
31
- expect(offense.to_s).to eq('C: 1: 1: message % test')
32
- end
33
-
34
- it 'redefines == to compare offenses based on their contents' do
35
- o1 = described_class.new(:convention, location, 'message', 'CopName')
36
- o2 = described_class.new(:convention, location, 'message', 'CopName')
37
-
38
- expect(o1 == o2).to be_truthy
39
- end
40
-
41
- it 'is frozen' do
42
- expect(offense).to be_frozen
43
- end
44
-
45
- [:severity, :location, :message, :cop_name].each do |a|
46
- describe "##{a}" do
47
- it 'is frozen' do
48
- expect(offense.send(a)).to be_frozen
49
- end
50
- end
51
- end
52
-
53
- context 'when unknown severity is passed' do
54
- it 'raises error' do
55
- expect do
56
- described_class.new(:foobar, location, 'message', 'CopName')
57
- end.to raise_error(ArgumentError)
58
- end
59
- end
60
-
61
- describe '#severity_level' do
62
- subject(:severity_level) do
63
- described_class.new(severity, location, 'message', 'CopName')
64
- .severity.level
65
- end
66
-
67
- context 'when severity is :refactor' do
68
- let(:severity) { :refactor }
69
- it 'is 1' do
70
- expect(severity_level).to eq(1)
71
- end
72
- end
73
-
74
- context 'when severity is :fatal' do
75
- let(:severity) { :fatal }
76
- it 'is 5' do
77
- expect(severity_level).to eq(5)
78
- end
79
- end
80
- end
81
-
82
- describe '#<=>' do
83
- def offense(hash = {})
84
- attrs = {
85
- sev: :convention,
86
- line: 5,
87
- col: 5,
88
- mes: 'message',
89
- cop: 'CopName'
90
- }.merge(hash)
91
-
92
- described_class.new(
93
- attrs[:sev],
94
- location(attrs[:line], attrs[:col],
95
- %w(aaaaaa bbbbbb cccccc dddddd eeeeee ffffff)),
96
- attrs[:mes],
97
- attrs[:cop]
98
- )
99
- end
100
-
101
- def location(line, column, source)
102
- source_buffer = Parser::Source::Buffer.new('test', 1)
103
- source_buffer.source = source.join("\n")
104
- begin_pos = source[0...(line - 1)].reduce(0) do |a, e|
105
- a + e.length + "\n".length
106
- end + column
107
- Parser::Source::Range.new(source_buffer, begin_pos, begin_pos + 1)
108
- end
109
-
110
- # We want a nice table layout, so we allow space inside empty hashes.
111
- # rubocop:disable Style/SpaceInsideHashLiteralBraces
112
- [
113
- [{ }, { }, 0],
114
-
115
- [{ line: 6 }, { line: 5 }, 1],
116
-
117
- [{ line: 5, col: 6 }, { line: 5, col: 5 }, 1],
118
- [{ line: 6, col: 4 }, { line: 5, col: 5 }, 1],
119
-
120
- [{ cop: 'B' }, { cop: 'A' }, 1],
121
- [{ line: 6, cop: 'A' }, { line: 5, cop: 'B' }, 1],
122
- [{ col: 6, cop: 'A' }, { col: 5, cop: 'B' }, 1]
123
- ].each do |one, other, expectation|
124
- context "when receiver has #{one} and other has #{other}" do
125
- it "returns #{expectation}" do
126
- an_offense = offense(one)
127
- other_offense = offense(other)
128
- expect(an_offense <=> other_offense).to eq(expectation)
129
- end
130
- end
131
- end
132
- end
133
- end
@@ -1,64 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
- require 'tempfile'
5
-
6
- describe RuboCop::Cop::Rails::ActionFilter, :config do
7
- subject(:cop) { described_class.new(config) }
8
-
9
- context 'when style is action' do
10
- let(:cop_config) { { 'EnforcedStyle' => 'action' } }
11
-
12
- described_class::FILTER_METHODS.each do |method|
13
- it "registers an offense for #{method}" do
14
- inspect_source_file(cop, "#{method} :name")
15
- expect(cop.offenses.size).to eq(1)
16
- end
17
-
18
- it "registers an offense for #{method} with block" do
19
- inspect_source_file(cop, "#{method} { |controller| something }")
20
- expect(cop.offenses.size).to eq(1)
21
- end
22
- end
23
-
24
- described_class::ACTION_METHODS.each do |method|
25
- it "accepts #{method}" do
26
- inspect_source_file(cop, "#{method} :something")
27
- expect(cop.offenses).to be_empty
28
- end
29
- end
30
-
31
- it 'auto-corrects to preferred method' do
32
- new_source = autocorrect_source_file(cop, 'before_filter :test')
33
- expect(new_source).to eq('before_action :test')
34
- end
35
- end
36
-
37
- context 'when style is filter' do
38
- let(:cop_config) { { 'EnforcedStyle' => 'filter' } }
39
-
40
- described_class::ACTION_METHODS.each do |method|
41
- it "registers an offense for #{method}" do
42
- inspect_source_file(cop, "#{method} :name")
43
- expect(cop.offenses.size).to eq(1)
44
- end
45
-
46
- it "registers an offense for #{method} with block" do
47
- inspect_source_file(cop, "#{method} { |controller| something }")
48
- expect(cop.offenses.size).to eq(1)
49
- end
50
- end
51
-
52
- described_class::FILTER_METHODS.each do |method|
53
- it "accepts #{method}" do
54
- inspect_source_file(cop, "#{method} :something")
55
- expect(cop.offenses).to be_empty
56
- end
57
- end
58
-
59
- it 'auto-corrects to preferred method' do
60
- new_source = autocorrect_source_file(cop, 'before_action :test')
61
- expect(new_source).to eq('before_filter :test')
62
- end
63
- end
64
- end
@@ -1,37 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Rails::DefaultScope do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for default scope with a lambda arg' do
9
- inspect_source(cop,
10
- 'default_scope -> { something }')
11
- expect(cop.offenses.size).to eq(1)
12
- end
13
-
14
- it 'registers an offense for default scope with a proc arg' do
15
- inspect_source(cop,
16
- 'default_scope proc { something }')
17
- expect(cop.offenses.size).to eq(1)
18
- end
19
-
20
- it 'registers an offense for default scope with a proc(Proc.new) arg' do
21
- inspect_source(cop,
22
- 'default_scope Proc.new { something }')
23
- expect(cop.offenses.size).to eq(1)
24
- end
25
-
26
- it 'registers an offense for non blocks' do
27
- inspect_source(cop,
28
- 'default_scope order: "position"')
29
- expect(cop.offenses.size).to eq(1)
30
- end
31
-
32
- it 'accepts a block arg' do
33
- inspect_source(cop,
34
- 'default_scope { something }')
35
- expect(cop.offenses).to be_empty
36
- end
37
- end
@@ -1,177 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Rails::Delegate do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'finds trivial delegate' do
9
- inspect_source(cop,
10
- ['def foo',
11
- ' bar.foo',
12
- 'end'])
13
- expect(cop.offenses.size).to eq(1)
14
- expect(cop.offenses
15
- .map(&:line).sort).to eq([1])
16
- expect(cop.messages)
17
- .to eq(['Use `delegate` to define delegations.'])
18
- expect(cop.highlights).to eq(['def'])
19
- end
20
-
21
- it 'finds trivial delegate with arguments' do
22
- inspect_source(cop,
23
- ['def foo(baz)',
24
- ' bar.foo(baz)',
25
- 'end'])
26
- expect(cop.offenses.size).to eq(1)
27
- expect(cop.offenses
28
- .map(&:line).sort).to eq([1])
29
- expect(cop.messages)
30
- .to eq(['Use `delegate` to define delegations.'])
31
- expect(cop.highlights).to eq(['def'])
32
- end
33
-
34
- it 'finds trivial delegate with prefix' do
35
- inspect_source(cop,
36
- ['def bar_foo',
37
- ' bar.foo',
38
- 'end'])
39
- expect(cop.offenses.size).to eq(1)
40
- expect(cop.offenses
41
- .map(&:line).sort).to eq([1])
42
- expect(cop.messages)
43
- .to eq(['Use `delegate` to define delegations.'])
44
- expect(cop.highlights).to eq(['def'])
45
- end
46
-
47
- it 'ignores class methods' do
48
- inspect_source(cop,
49
- ['def self.fox',
50
- ' new.fox',
51
- 'end'])
52
- expect(cop.offenses).to be_empty
53
- end
54
-
55
- it 'ignores non trivial delegate' do
56
- inspect_source(cop,
57
- ['def fox',
58
- ' bar.foo.fox',
59
- 'end'])
60
- expect(cop.offenses).to be_empty
61
- end
62
-
63
- it 'ignores trivial delegate with mismatched arguments' do
64
- inspect_source(cop,
65
- ['def fox(baz)',
66
- ' bar.fox(foo)',
67
- 'end'])
68
- expect(cop.offenses).to be_empty
69
- end
70
-
71
- it 'ignores trivial delegate with mismatched arguments' do
72
- inspect_source(cop,
73
- ['def fox(foo = nil)',
74
- ' bar.fox(foo || 5)',
75
- 'end'])
76
- expect(cop.offenses).to be_empty
77
- end
78
-
79
- it 'ignores trivial delegate with mismatched arguments' do
80
- inspect_source(cop,
81
- ['def fox(a, baz)',
82
- ' bar.fox(a)',
83
- 'end'])
84
- expect(cop.offenses).to be_empty
85
- end
86
-
87
- it 'ignores trivial delegate with other prefix' do
88
- inspect_source(cop,
89
- ['def fox_foo',
90
- ' bar.foo',
91
- 'end'])
92
- expect(cop.offenses).to be_empty
93
- end
94
-
95
- it 'ignores methods with arguments' do
96
- inspect_source(cop,
97
- ['def fox(bar)',
98
- ' bar.fox',
99
- 'end'])
100
- expect(cop.offenses).to be_empty
101
- end
102
-
103
- it 'ignores private delegations' do
104
- inspect_source(cop,
105
- [' private def fox', # leading spaces are on purpose
106
- ' bar.fox',
107
- ' end',
108
- ' ',
109
- ' private',
110
- ' ',
111
- ' def fox',
112
- ' bar.fox',
113
- ' end'])
114
- expect(cop.offenses).to be_empty
115
- end
116
-
117
- it 'ignores protected delegations' do
118
- inspect_source(cop,
119
- [' protected def fox', # leading spaces are on purpose
120
- ' bar.fox',
121
- ' end',
122
- ' ',
123
- ' protected',
124
- ' ',
125
- ' def fox',
126
- ' bar.fox',
127
- ' end'])
128
- expect(cop.offenses).to be_empty
129
- end
130
-
131
- it 'ignores delegation with assignment' do
132
- inspect_source(cop,
133
- ['def new',
134
- ' @bar = Foo.new',
135
- 'end'])
136
- expect(cop.offenses).to be_empty
137
- end
138
-
139
- it 'ignores delegation to constant' do
140
- inspect_source(cop,
141
- ['FOO = []',
142
- 'def size',
143
- ' FOO.size',
144
- 'end'])
145
- expect(cop.offenses).to be_empty
146
- end
147
-
148
- describe '#autocorrect' do
149
- context 'trivial delegation' do
150
- let(:source) do
151
- ['def bar',
152
- ' foo.bar',
153
- 'end']
154
- end
155
-
156
- let(:corrected_source) { 'delegate :bar, to: :foo' }
157
-
158
- it 'autocorrects' do
159
- expect(autocorrect_source(cop, source)).to eq(corrected_source)
160
- end
161
- end
162
-
163
- context 'trivial delegation with prefix' do
164
- let(:source) do
165
- ['def foo_bar',
166
- ' foo.bar',
167
- 'end']
168
- end
169
-
170
- let(:corrected_source) { 'delegate :bar, to: :foo, prefix: true' }
171
-
172
- it 'autocorrects' do
173
- expect(autocorrect_source(cop, source)).to eq(corrected_source)
174
- end
175
- end
176
- end
177
- end
@@ -1,13 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Rails::HasAndBelongsToMany do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for has_and_belongs_to_many' do
9
- inspect_source(cop,
10
- 'has_and_belongs_to_many :groups')
11
- expect(cop.offenses.size).to eq(1)
12
- end
13
- end
@@ -1,37 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Rails::Output do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'records an offense for methods without a receiver' do
9
- source = ['p "edmond dantes"',
10
- 'puts "sinbad"',
11
- 'print "abbe busoni"',
12
- 'pp "monte cristo"']
13
- inspect_source(cop, source)
14
- expect(cop.offenses.size).to eq(4)
15
- end
16
-
17
- it 'does not record an offense for methods with a receiver' do
18
- source = ['obj.print',
19
- 'something.p',
20
- 'nothing.pp']
21
- inspect_source(cop, source)
22
- expect(cop.offenses).to be_empty
23
- end
24
-
25
- it 'does not record an offense for methods without arguments' do
26
- source = %w(print pp puts)
27
- inspect_source(cop, source)
28
- expect(cop.offenses).to be_empty
29
- end
30
-
31
- it 'does not record an offense for comments' do
32
- source = ['# print "test"',
33
- '# p']
34
- inspect_source(cop, source)
35
- expect(cop.offenses).to be_empty
36
- end
37
- end