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,139 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::Encoding, :config do
6
- subject(:cop) { described_class.new(config) }
7
-
8
- context 'when_needed' do
9
- let(:cop_config) do
10
- { 'EnforcedStyle' => 'when_needed' }
11
- end
12
-
13
- it 'registers no offense when no encoding present but only ASCII ' \
14
- 'characters' do
15
- inspect_source(cop, 'def foo() end')
16
-
17
- expect(cop.offenses).to be_empty
18
- end
19
-
20
- it 'registers an offense when there is no encoding present but non ' \
21
- 'ASCII characters' do
22
- inspect_source(cop, 'def foo() \'ä\' end')
23
-
24
- expect(cop.offenses.size).to eq(1)
25
- expect(cop.messages).to eq(
26
- ['Missing utf-8 encoding comment.'])
27
- end
28
-
29
- it 'registers an offense when encoding present but only ASCII ' \
30
- 'characters' do
31
- inspect_source(cop, ['# encoding: utf-8',
32
- 'def foo() end'])
33
-
34
- expect(cop.offenses.size).to eq(1)
35
- expect(cop.messages).to eq(
36
- ['Unnecessary utf-8 encoding comment.'])
37
- end
38
-
39
- it 'accepts an empty file' do
40
- inspect_source(cop, '')
41
-
42
- expect(cop.offenses).to be_empty
43
- end
44
-
45
- it 'accepts encoding on first line' do
46
- inspect_source(cop, ['# encoding: utf-8',
47
- 'def foo() \'ä\' end'])
48
-
49
- expect(cop.offenses).to be_empty
50
- end
51
-
52
- it 'accepts encoding on second line when shebang present' do
53
- inspect_source(cop, ['#!/usr/bin/env ruby',
54
- '# encoding: utf-8',
55
- 'def foo() \'ä\' end'])
56
-
57
- expect(cop.messages).to be_empty
58
- end
59
-
60
- it 'books an offense when encoding is in the wrong place' do
61
- inspect_source(cop, ['def foo() \'ä\' end',
62
- '# encoding: utf-8'])
63
-
64
- expect(cop.offenses.size).to eq(1)
65
- expect(cop.messages).to eq(
66
- ['Missing utf-8 encoding comment.'])
67
- end
68
-
69
- it 'accepts encoding inserted by magic_encoding gem' do
70
- inspect_source(cop, ['# -*- encoding : utf-8 -*-',
71
- 'def foo() \'ä\' end'])
72
-
73
- expect(cop.messages).to be_empty
74
- end
75
-
76
- it 'accepts vim-style encoding comments' do
77
- inspect_source(cop, ['# vim:fileencoding=utf-8',
78
- 'def foo() \'ä\' end'])
79
- expect(cop.messages).to be_empty
80
- end
81
- end
82
-
83
- context 'always' do
84
- let(:cop_config) do
85
- { 'EnforcedStyle' => 'always' }
86
- end
87
-
88
- it 'registers an offense when no encoding present' do
89
- inspect_source(cop, 'def foo() end')
90
-
91
- expect(cop.offenses.size).to eq(1)
92
- expect(cop.messages).to eq(
93
- ['Missing utf-8 encoding comment.'])
94
- end
95
-
96
- it 'accepts an empty file' do
97
- inspect_source(cop, '')
98
-
99
- expect(cop.offenses).to be_empty
100
- end
101
-
102
- it 'accepts encoding on first line' do
103
- inspect_source(cop, ['# encoding: utf-8',
104
- 'def foo() end'])
105
-
106
- expect(cop.offenses).to be_empty
107
- end
108
-
109
- it 'accepts encoding on second line when shebang present' do
110
- inspect_source(cop, ['#!/usr/bin/env ruby',
111
- '# encoding: utf-8',
112
- 'def foo() end'])
113
-
114
- expect(cop.messages).to be_empty
115
- end
116
-
117
- it 'books an offense when encoding is in the wrong place' do
118
- inspect_source(cop, ['def foo() end',
119
- '# encoding: utf-8'])
120
-
121
- expect(cop.offenses.size).to eq(1)
122
- expect(cop.messages).to eq(
123
- ['Missing utf-8 encoding comment.'])
124
- end
125
-
126
- it 'accepts encoding inserted by magic_encoding gem' do
127
- inspect_source(cop, ['# -*- encoding : utf-8 -*-',
128
- 'def foo() end'])
129
-
130
- expect(cop.messages).to be_empty
131
- end
132
-
133
- it 'accepts vim-style encoding comments' do
134
- inspect_source(cop, ['# vim:fileencoding=utf-8',
135
- 'def foo() end'])
136
- expect(cop.messages).to be_empty
137
- end
138
- end
139
- end
@@ -1,13 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::EndBlock do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'reports an offense for an END block' do
9
- src = 'END { test }'
10
- inspect_source(cop, src)
11
- expect(cop.offenses.size).to eq(1)
12
- end
13
- end
@@ -1,65 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
- require 'tempfile'
5
-
6
- describe RuboCop::Cop::Style::EndOfLine do
7
- subject(:cop) { described_class.new }
8
-
9
- it 'registers an offense for CR+LF' do
10
- inspect_source_file(cop, ['x=0', '', "y=1\r"])
11
- expect(cop.messages).to eq(['Carriage return character detected.'])
12
- end
13
-
14
- it 'highlights the whole offending line' do
15
- inspect_source_file(cop, ['x=0', '', "y=1\r"])
16
- expect(cop.highlights).to eq(["y=1\r"])
17
- end
18
-
19
- it 'registers an offense for CR at end of file' do
20
- inspect_source_file(cop, "x=0\r")
21
- expect(cop.messages).to eq(['Carriage return character detected.'])
22
- end
23
-
24
- shared_examples 'iso-8859-15' do
25
- it 'can inspect non-UTF-8 encoded source with proper encoding comment' do
26
- inspect_source_file(cop, ['# coding: ISO-8859-15\r',
27
- "# Euro symbol: \xa4\r"])
28
- expect(cop.offenses.size).to eq(1)
29
- end
30
- end
31
-
32
- context 'when there are many lines ending with CR+LF' do
33
- it 'registers only one offense' do
34
- inspect_source_file(cop, ['x=0', '', 'y=1'].join("\r\n"))
35
- expect(cop.messages.size).to eq(1)
36
- end
37
-
38
- include_examples 'iso-8859-15'
39
- end
40
-
41
- context 'when the default external encoding is US_ASCII' do
42
- let(:orig_encoding) { Encoding.default_external }
43
- before(:each) { Encoding.default_external = Encoding::US_ASCII }
44
- after(:each) { Encoding.default_external = orig_encoding }
45
-
46
- it 'does not crash on UTF-8 encoded non-ascii characters' do
47
- inspect_source_file(cop,
48
- ['# encoding: UTF-8',
49
- 'class Epd::ReportsController < EpdAreaController',
50
- " 'terecht bij uw ROM-coördinator.'",
51
- 'end'].join("\n"))
52
- expect(cop.offenses).to be_empty
53
- end
54
-
55
- include_examples 'iso-8859-15'
56
- end
57
-
58
- context 'when source is a string' do
59
- it 'registers an offense' do
60
- inspect_source(cop, "x=0\r")
61
-
62
- expect(cop.messages).to eq(['Carriage return character detected.'])
63
- end
64
- end
65
- end
@@ -1,164 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::EvenOdd do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for x % 2 == 0' do
9
- inspect_source(cop, 'x % 2 == 0')
10
- expect(cop.offenses.size).to eq(1)
11
- expect(cop.messages).to eq(['Replace with `Fixnum#even?`.'])
12
- end
13
-
14
- it 'registers an offense for x % 2 != 0' do
15
- inspect_source(cop, 'x % 2 != 0')
16
- expect(cop.offenses.size).to eq(1)
17
- expect(cop.messages).to eq(['Replace with `Fixnum#odd?`.'])
18
- end
19
-
20
- it 'registers an offense for (x % 2) == 0' do
21
- inspect_source(cop, '(x % 2) == 0')
22
- expect(cop.offenses.size).to eq(1)
23
- expect(cop.messages).to eq(['Replace with `Fixnum#even?`.'])
24
- end
25
-
26
- it 'registers an offense for (x % 2) != 0' do
27
- inspect_source(cop, '(x % 2) != 0')
28
- expect(cop.offenses.size).to eq(1)
29
- expect(cop.messages).to eq(['Replace with `Fixnum#odd?`.'])
30
- end
31
-
32
- it 'registers an offense for x % 2 == 1' do
33
- inspect_source(cop, 'x % 2 == 1')
34
- expect(cop.offenses.size).to eq(1)
35
- expect(cop.messages).to eq(['Replace with `Fixnum#odd?`.'])
36
- end
37
-
38
- it 'registers an offense for x % 2 != 1' do
39
- inspect_source(cop, 'x % 2 != 1')
40
- expect(cop.offenses.size).to eq(1)
41
- expect(cop.messages).to eq(['Replace with `Fixnum#even?`.'])
42
- end
43
-
44
- it 'registers an offense for (x % 2) == 1' do
45
- inspect_source(cop, '(x % 2) == 1')
46
- expect(cop.offenses.size).to eq(1)
47
- expect(cop.messages).to eq(['Replace with `Fixnum#odd?`.'])
48
- end
49
-
50
- it 'registers an offense for (x % 2) != 1' do
51
- inspect_source(cop, '(x % 2) != 1')
52
- expect(cop.offenses.size).to eq(1)
53
- expect(cop.messages).to eq(['Replace with `Fixnum#even?`.'])
54
- end
55
-
56
- it 'registers an offense for (x.y % 2) != 1' do
57
- inspect_source(cop, '(x.y % 2) != 1')
58
- expect(cop.offenses.size).to eq(1)
59
- expect(cop.messages).to eq(['Replace with `Fixnum#even?`.'])
60
- end
61
-
62
- it 'registers an offense for (x(y) % 2) != 1' do
63
- inspect_source(cop, '(x(y) % 2) != 1')
64
- expect(cop.offenses.size).to eq(1)
65
- expect(cop.messages).to eq(['Replace with `Fixnum#even?`.'])
66
- end
67
-
68
- it 'accepts x % 3 == 0' do
69
- inspect_source(cop, 'x % 3 == 0')
70
- expect(cop.offenses).to be_empty
71
- end
72
-
73
- it 'accepts x % 3 != 0' do
74
- inspect_source(cop, 'x % 3 != 0')
75
- expect(cop.offenses).to be_empty
76
- end
77
-
78
- it 'converts x % 2 == 0 to #even?' do
79
- corrected = autocorrect_source(cop, 'x % 2 == 0')
80
- expect(corrected).to eq('x.even?')
81
- end
82
-
83
- it 'converts x % 2 != 0 to #odd?' do
84
- corrected = autocorrect_source(cop, 'x % 2 != 0')
85
- expect(corrected).to eq('x.odd?')
86
- end
87
-
88
- it 'converts (x % 2) == 0 to #even?' do
89
- corrected = autocorrect_source(cop, '(x % 2) == 0')
90
- expect(corrected).to eq('x.even?')
91
- end
92
-
93
- it 'converts (x % 2) != 0 to #odd?' do
94
- corrected = autocorrect_source(cop, '(x % 2) != 0')
95
- expect(corrected).to eq('x.odd?')
96
- end
97
-
98
- it 'converts x % 2 == 1 to odd?' do
99
- corrected = autocorrect_source(cop, 'x % 2 == 1')
100
- expect(corrected).to eq('x.odd?')
101
- end
102
-
103
- it 'converts x % 2 != 1 to even?' do
104
- corrected = autocorrect_source(cop, 'x % 2 != 1')
105
- expect(corrected).to eq('x.even?')
106
- end
107
-
108
- it 'converts (x % 2) == 1 to odd?' do
109
- corrected = autocorrect_source(cop, '(x % 2) == 1')
110
- expect(corrected).to eq('x.odd?')
111
- end
112
-
113
- it 'converts (y % 2) != 1 to even?' do
114
- corrected = autocorrect_source(cop, '(y % 2) != 1')
115
- expect(corrected).to eq('y.even?')
116
- end
117
-
118
- it 'converts (x.y % 2) != 1 to even?' do
119
- corrected = autocorrect_source(cop, '(x.y % 2) != 1')
120
- expect(corrected).to eq('x.y.even?')
121
- end
122
-
123
- it 'converts (x(y) % 2) != 1 to even?' do
124
- corrected = autocorrect_source(cop, '(x(y) % 2) != 1')
125
- expect(corrected).to eq('x(y).even?')
126
- end
127
-
128
- it 'converts (x._(y) % 2) != 1 to even?' do
129
- corrected = autocorrect_source(cop, '(x._(y) % 2) != 1')
130
- expect(corrected).to eq('x._(y).even?')
131
- end
132
-
133
- it 'converts (x._(y)) % 2 != 1 to even?' do
134
- corrected = autocorrect_source(cop, '(x._(y)) % 2 != 1')
135
- expect(corrected).to eq('(x._(y)).even?')
136
- end
137
-
138
- it 'converts x._(y) % 2 != 1 to even?' do
139
- corrected = autocorrect_source(cop, 'x._(y) % 2 != 1')
140
- expect(corrected).to eq('x._(y).even?')
141
- end
142
-
143
- it 'converts 1 % 2 != 1 to even?' do
144
- corrected = autocorrect_source(cop, '1 % 2 != 1')
145
- expect(corrected).to eq('1.even?')
146
- end
147
-
148
- it 'converts complex examples' do
149
- corrected = autocorrect_source(cop, [
150
- 'if (y % 2) != 1',
151
- ' method == :== ? :even : :odd',
152
- 'elsif x % 2 == 1',
153
- ' method == :== ? :odd : :even',
154
- 'end'
155
- ])
156
- expect(corrected).to eq([
157
- 'if y.even?',
158
- ' method == :== ? :even : :odd',
159
- 'elsif x.odd?',
160
- ' method == :== ? :odd : :even',
161
- 'end'
162
- ].join("\n"))
163
- end
164
- end
@@ -1,68 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::ExtraSpacing do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for double extra spacing on variable assignment' do
9
- inspect_source(cop, 'm = "hello"')
10
- expect(cop.offenses.size).to eq(1)
11
- end
12
-
13
- it 'ignores whitespace at the beginning of the line' do
14
- inspect_source(cop, ' m = "hello"')
15
- expect(cop.offenses.size).to eq(0)
16
- end
17
-
18
- it 'ignores whitespace inside a string' do
19
- inspect_source(cop, 'm = "hello this"')
20
- expect(cop.offenses.size).to eq(0)
21
- end
22
-
23
- it 'does not permit you to line up assignments' do
24
- inspect_source(cop, [
25
- 'website = "example.org"',
26
- 'name = "Jill"'
27
- ])
28
- expect(cop.offenses.size).to eq(1)
29
- end
30
-
31
- it 'gives the correct line' do
32
- inspect_source(cop, [
33
- 'website = "example.org"',
34
- 'name = "Jill"'
35
- ])
36
- expect(cop.offenses.first.location.line).to eq(2)
37
- end
38
-
39
- it 'registers an offense on class inheritance' do
40
- inspect_source(cop, [
41
- 'class A < String',
42
- 'end'
43
- ])
44
- expect(cop.offenses.size).to eq(1)
45
- end
46
-
47
- it 'auto-corrects a line indented with mixed whitespace' do
48
- new_source = autocorrect_source(cop, [
49
- 'website = "example.org"',
50
- 'name = "Jill"'
51
- ])
52
- expect(new_source).to eq([
53
- 'website = "example.org"',
54
- 'name = "Jill"'
55
- ].join("\n"))
56
- end
57
-
58
- it 'auto-corrects the class inheritance' do
59
- new_source = autocorrect_source(cop, [
60
- 'class A < String',
61
- 'end'
62
- ])
63
- expect(new_source).to eq([
64
- 'class A < String',
65
- 'end'
66
- ].join("\n"))
67
- end
68
- end