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,48 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::InfiniteLoop do
6
- subject(:cop) { described_class.new }
7
-
8
- %w(1 2.0 [1] {}).each do |lit|
9
- it "registers an offense for a while loop with #{lit} as condition" do
10
- inspect_source(cop,
11
- ["while #{lit}",
12
- ' top',
13
- 'end'
14
- ])
15
- expect(cop.offenses.size).to eq(1)
16
- end
17
- end
18
-
19
- %w(false nil).each do |lit|
20
- it "registers an offense for a until loop with #{lit} as condition" do
21
- inspect_source(cop,
22
- ["until #{lit}",
23
- ' top',
24
- 'end'
25
- ])
26
- expect(cop.offenses.size).to eq(1)
27
- end
28
- end
29
-
30
- it 'accepts Kernel#loop' do
31
- inspect_source(cop,
32
- 'loop { break if something }')
33
-
34
- expect(cop.offenses).to be_empty
35
- end
36
-
37
- it 'auto-corrects the usage of "while/until" with do' do
38
- new_source = autocorrect_source(cop, ['while true do',
39
- 'end'])
40
- expect(new_source).to eq("loop do\nend")
41
- end
42
-
43
- it 'auto-corrects the usage of "while/until" without do' do
44
- new_source = autocorrect_source(cop, ['while 1',
45
- 'end'])
46
- expect(new_source).to eq("loop do\nend")
47
- end
48
- end
@@ -1,13 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::InlineComment do
6
- it 'registers an offense for a inline comment' do
7
- code = 'two = 1 + 1 # An inline comment'
8
-
9
- expect(subject).to find_offenses_in(code)
10
- .with_message('Avoid inline comments.')
11
- .with_highlight('# An inline comment')
12
- end
13
- end
@@ -1,65 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::LambdaCall, :config do
6
- subject(:cop) { described_class.new(config) }
7
-
8
- context 'when style is set to call' do
9
- let(:cop_config) { { 'EnforcedStyle' => 'call' } }
10
-
11
- it 'registers an offense for x.()' do
12
- inspect_source(cop,
13
- 'x.(a, b)')
14
- expect(cop.offenses.size).to eq(1)
15
- expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' => 'braces')
16
- end
17
-
18
- it 'registers an offense for correct + opposite' do
19
- inspect_source(cop,
20
- ['x.call(a, b)',
21
- 'x.(a, b)'])
22
- expect(cop.offenses.size).to eq(1)
23
- expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
24
- end
25
-
26
- it 'accepts x.call()' do
27
- inspect_source(cop, 'x.call(a, b)')
28
- expect(cop.offenses).to be_empty
29
- end
30
-
31
- it 'auto-corrects x.() to x.call()' do
32
- new_source = autocorrect_source(cop, ['a.(x)'])
33
- expect(new_source).to eq('a.call(x)')
34
- end
35
- end
36
-
37
- context 'when style is set to braces' do
38
- let(:cop_config) { { 'EnforcedStyle' => 'braces' } }
39
-
40
- it 'registers an offense for x.call()' do
41
- inspect_source(cop,
42
- 'x.call(a, b)')
43
- expect(cop.offenses.size).to eq(1)
44
- expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' => 'call')
45
- end
46
-
47
- it 'registers an offense for opposite + correct' do
48
- inspect_source(cop,
49
- ['x.call(a, b)',
50
- 'x.(a, b)'])
51
- expect(cop.offenses.size).to eq(1)
52
- expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
53
- end
54
-
55
- it 'accepts x.()' do
56
- inspect_source(cop, 'x.(a, b)')
57
- expect(cop.offenses).to be_empty
58
- end
59
-
60
- it 'auto-corrects x.call() to x.()' do
61
- new_source = autocorrect_source(cop, ['a.call(x)'])
62
- expect(new_source).to eq('a.(x)')
63
- end
64
- end
65
- end
@@ -1,76 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::Lambda do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for an old single-line lambda call' do
9
- inspect_source(cop, 'f = lambda { |x| x }')
10
- expect(cop.offenses.size).to eq(1)
11
- expect(cop.messages)
12
- .to eq(['Use the new lambda literal syntax `->(params) {...}`.'])
13
- end
14
-
15
- it 'registers an offense for an old single-line no-argument lambda call' do
16
- inspect_source(cop, 'f = lambda { x }')
17
- expect(cop.offenses.size).to eq(1)
18
- expect(cop.messages)
19
- .to eq(['Use the new lambda literal syntax `-> {...}`.'])
20
- end
21
-
22
- it 'accepts the new lambda literal with single-line body' do
23
- inspect_source(cop, ['lambda = ->(x) { x }',
24
- 'lambda.(1)'])
25
- expect(cop.offenses).to be_empty
26
- end
27
-
28
- it 'registers an offense for a new multi-line lambda call' do
29
- inspect_source(cop, ['f = ->(x) do',
30
- ' x',
31
- 'end'])
32
- expect(cop.offenses.size).to eq(1)
33
- expect(cop.messages)
34
- .to eq(['Use the `lambda` method for multi-line lambdas.'])
35
- end
36
-
37
- it 'accepts the old lambda syntax with multi-line body' do
38
- inspect_source(cop, ['l = lambda do |x|',
39
- ' x',
40
- 'end'])
41
- expect(cop.offenses).to be_empty
42
- end
43
-
44
- it 'accepts the lambda call outside of block' do
45
- inspect_source(cop, 'l = lambda.test')
46
- expect(cop.offenses).to be_empty
47
- end
48
-
49
- it 'auto-corrects an old single-line lambda call' do
50
- new_source = autocorrect_source(cop, 'f = lambda { |x| x }')
51
- expect(new_source).to eq('f = ->(x) { x }')
52
- end
53
-
54
- it 'auto-corrects an old single-line no-argument lambda call' do
55
- new_source = autocorrect_source(cop, 'f = lambda { x }')
56
- expect(new_source).to eq('f = -> { x }')
57
- end
58
-
59
- it 'auto-corrects a new multi-line lambda call' do
60
- new_source = autocorrect_source(cop, ['f = ->(x) do',
61
- ' x',
62
- 'end'])
63
- expect(new_source).to eq(['f = lambda do |x|',
64
- ' x',
65
- 'end'].join("\n"))
66
- end
67
-
68
- it 'auto-corrects a new multi-line no-argument lambda call' do
69
- new_source = autocorrect_source(cop, ['f = -> do',
70
- ' x',
71
- 'end'])
72
- expect(new_source).to eq(['f = lambda do',
73
- ' x',
74
- 'end'].join("\n"))
75
- end
76
- end
@@ -1,64 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::LeadingCommentSpace do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for comment without leading space' do
9
- inspect_source(cop, '#missing space')
10
- expect(cop.offenses.size).to eq(1)
11
- end
12
-
13
- it 'does not register an offense for # followed by no text' do
14
- inspect_source(cop, '#')
15
- expect(cop.offenses).to be_empty
16
- end
17
-
18
- it 'does not register an offense for more than one space' do
19
- inspect_source(cop, '# heavily indented')
20
- expect(cop.offenses).to be_empty
21
- end
22
-
23
- it 'does not register an offense for more than one #' do
24
- inspect_source(cop, '###### heavily indented')
25
- expect(cop.offenses).to be_empty
26
- end
27
-
28
- it 'does not register an offense for only #s' do
29
- inspect_source(cop, '######')
30
- expect(cop.offenses).to be_empty
31
- end
32
-
33
- it 'does not register an offense for #! on first line' do
34
- inspect_source(cop,
35
- ['#!/usr/bin/ruby',
36
- 'test'])
37
- expect(cop.offenses).to be_empty
38
- end
39
-
40
- it 'registers an offense for #! after the first line' do
41
- inspect_source(cop, ['test',
42
- '#!/usr/bin/ruby'])
43
- expect(cop.offenses.size).to eq(1)
44
- end
45
-
46
- it 'accepts rdoc syntax' do
47
- inspect_source(cop,
48
- ['#++',
49
- '#--',
50
- '#:nodoc:'])
51
-
52
- expect(cop.offenses).to be_empty
53
- end
54
-
55
- it 'accepts sprockets directives' do
56
- inspect_source(cop, '#= require_tree .')
57
- expect(cop.offenses).to be_empty
58
- end
59
-
60
- it 'auto-corrects missing space' do
61
- new_source = autocorrect_source(cop, '#comment')
62
- expect(new_source).to eq('# comment')
63
- end
64
- end
@@ -1,184 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::LineEndConcatenation do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for string concat at line end' do
9
- inspect_source(cop,
10
- ['top = "test" +',
11
- '"top"'])
12
- expect(cop.offenses.size).to eq(1)
13
- expect(cop.highlights).to eq(['+'])
14
- end
15
-
16
- it 'registers an offense for string concat with << at line end' do
17
- inspect_source(cop,
18
- ['top = "test" <<',
19
- '"top"'])
20
- expect(cop.offenses.size).to eq(1)
21
- expect(cop.highlights).to eq(['<<'])
22
- end
23
-
24
- it 'registers an offense for string concat with << and \ at line ends' do
25
- inspect_source(cop,
26
- ['top = "test " \\',
27
- '"foo" <<',
28
- '"bar"'])
29
- expect(cop.offenses.size).to eq(1)
30
- end
31
-
32
- it 'registers an offense for dynamic string concat at line end' do
33
- inspect_source(cop,
34
- ['top = "test#{x}" +',
35
- '"top"'])
36
- expect(cop.offenses.size).to eq(1)
37
- end
38
-
39
- it 'registers an offense for dynamic string concat with << at line end' do
40
- inspect_source(cop,
41
- ['top = "test#{x}" <<',
42
- '"top"'])
43
- expect(cop.offenses.size).to eq(1)
44
- end
45
-
46
- it 'registers multiple offenses when there are chained << methods' do
47
- inspect_source(cop,
48
- ['top = "test#{x}" <<',
49
- '"top" <<',
50
- '"ubertop"'])
51
- expect(cop.offenses.size).to eq(2)
52
- end
53
-
54
- it 'registers multiple offenses when there are chained concatenations' do
55
- inspect_source(cop,
56
- ['top = "test#{x}" +',
57
- '"top" +',
58
- '"foo"'])
59
- expect(cop.offenses.size).to eq(2)
60
- end
61
-
62
- it 'registers multiple offenses when there are chained concatenations' \
63
- 'combined with << calls' do
64
- inspect_source(cop,
65
- ['top = "test#{x}" <<',
66
- '"top" +',
67
- '"foo" <<',
68
- '"bar"'])
69
- expect(cop.offenses.size).to eq(3)
70
- end
71
-
72
- it 'accepts string concat on the same line' do
73
- inspect_source(cop,
74
- 'top = "test" + "top"')
75
- expect(cop.offenses).to be_empty
76
- end
77
-
78
- it 'accepts string concat with a return value of method on a string' do
79
- inspect_source(cop,
80
- [
81
- # What we want here is 'content ', not '
82
- # content content content '.
83
- 'content_and_three_spaces = "content" +',
84
- ' " " * 3',
85
- # Method call with dot on a string literal.
86
- "a_thing = 'a ' +",
87
- " 'gniht'.reverse",
88
- # Formatting operator.
89
- "output = 'value: ' +",
90
- " '%d' % value",
91
- # Index operator.
92
- "'letter: ' +",
93
- " 'abcdefghij'[ix]"
94
- ])
95
- expect(cop.offenses).to be_empty
96
- end
97
-
98
- it 'accepts string concat with a return value of method on an interpolated ' \
99
- 'string' do
100
- source = <<-END
101
- x3a = 'x' +
102
- "\#{'a' + "\#{3}"}".reverse
103
- END
104
- inspect_source(cop, source)
105
- expect(cop.offenses).to be_empty
106
- end
107
-
108
- it 'accepts string concat at line end when followed by comment' do
109
- inspect_source(cop,
110
- ['top = "test" + # something',
111
- '"top"'])
112
- expect(cop.offenses).to be_empty
113
- end
114
-
115
- it 'accepts string concat at line end when followed by a comment line' do
116
- inspect_source(cop,
117
- ['top = "test" +',
118
- '# something',
119
- '"top"'])
120
- expect(cop.offenses).to be_empty
121
- end
122
-
123
- it 'accepts string concat at line end when % literals are involved' do
124
- inspect_source(cop,
125
- ['top = %(test) +',
126
- '"top"'])
127
- expect(cop.offenses).to be_empty
128
- end
129
-
130
- it 'accepts string concat at line end for special strings like __FILE__' do
131
- inspect_source(cop,
132
- ['top = __FILE__ +',
133
- '"top"'])
134
- expect(cop.offenses).to be_empty
135
- end
136
-
137
- it 'registers offenses only for the appropriate lines in chained concats' do
138
- # only the last concatenation is an offense
139
- inspect_source(cop,
140
- ['top = "test#{x}" + # comment',
141
- '"foo" +',
142
- '%(bar) +',
143
- '"baz" +',
144
- '"qux"'])
145
- expect(cop.offenses.size).to eq(1)
146
- end
147
-
148
- it 'autocorrects in the simple case by replacing + with \\' do
149
- corrected = autocorrect_source(cop,
150
- ['top = "test" +',
151
- '"top"'])
152
- expect(corrected).to eq ['top = "test" \\', '"top"'].join("\n")
153
- end
154
-
155
- it 'autocorrects for chained concatenations and << calls' do
156
- corrected = autocorrect_source(cop,
157
- ['top = "test#{x}" <<',
158
- '"top" +',
159
- '"ubertop" <<',
160
- '"foo"'])
161
-
162
- expect(corrected).to eq ['top = "test#{x}" \\',
163
- '"top" \\',
164
- '"ubertop" \\',
165
- '"foo"'].join("\n")
166
- end
167
-
168
- it 'autocorrects only the lines that should be autocorrected' do
169
- corrected = autocorrect_source(cop,
170
- ['top = "test#{x}" <<',
171
- '"top" + # comment',
172
- '"foo" +',
173
- '"bar" +',
174
- '%(baz) +',
175
- '"qux"'])
176
-
177
- expect(corrected).to eq ['top = "test#{x}" \\',
178
- '"top" + # comment',
179
- '"foo" \\',
180
- '"bar" +',
181
- '%(baz) +',
182
- '"qux"'].join("\n")
183
- end
184
- end