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,86 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::CommentAnnotation, :config do
6
- subject(:cop) { described_class.new(config) }
7
- let(:cop_config) do
8
- { 'Keywords' => %w(TODO FIXME OPTIMIZE HACK REVIEW) }
9
- end
10
-
11
- it 'registers an offense for a missing colon' do
12
- inspect_source(cop, '# TODO make better')
13
- expect(cop.offenses.size).to eq(1)
14
- end
15
-
16
- context 'with configured keyword' do
17
- let(:cop_config) { { 'Keywords' => %w(ISSUE) } }
18
-
19
- it 'registers an offense for a missing colon after the word' do
20
- inspect_source(cop, '# ISSUE wrong order')
21
- expect(cop.offenses.size).to eq(1)
22
- end
23
- end
24
-
25
- context 'when used with the clang formatter' do
26
- let(:formatter) { RuboCop::Formatter::ClangStyleFormatter.new(output) }
27
- let(:output) { StringIO.new }
28
-
29
- it 'marks the annotation keyword' do
30
- inspect_source(cop, '# TODO:make better')
31
- formatter.report_file('t', cop.offenses)
32
- expect(output.string).to eq(["t:1:3: C: #{described_class::MSG}",
33
- '# TODO:make better',
34
- ' ^^^^^',
35
- ''].join("\n"))
36
- end
37
- end
38
-
39
- it 'registers an offense for lower case' do
40
- inspect_source(cop, '# fixme: does not work')
41
- expect(cop.offenses.size).to eq(1)
42
- end
43
-
44
- it 'registers an offense for capitalized annotation keyword' do
45
- inspect_source(cop, '# Optimize: does not work')
46
- expect(cop.offenses.size).to eq(1)
47
- end
48
-
49
- it 'registers an offense for upper case with colon but no note' do
50
- inspect_source(cop, '# HACK:')
51
- expect(cop.offenses.size).to eq(1)
52
- end
53
-
54
- it 'accepts upper case keyword with colon, space and note' do
55
- inspect_source(cop, '# REVIEW: not sure about this')
56
- expect(cop.offenses).to be_empty
57
- end
58
-
59
- it 'accepts upper case keyword alone' do
60
- inspect_source(cop, '# OPTIMIZE')
61
- expect(cop.offenses).to be_empty
62
- end
63
-
64
- it 'accepts a comment that is obviously a code example' do
65
- inspect_source(cop, '# Todo.destroy(1)')
66
- expect(cop.offenses).to be_empty
67
- end
68
-
69
- it 'accepts a keyword that is just the beginning of a sentence' do
70
- inspect_source(cop,
71
- ["# Optimize if you want. I wouldn't recommend it.",
72
- '# Hack is a fun game.'])
73
- expect(cop.offenses).to be_empty
74
- end
75
-
76
- context 'when a keyword is not in the configuration' do
77
- let(:cop_config) do
78
- { 'Keywords' => %w(FIXME OPTIMIZE HACK REVIEW) }
79
- end
80
-
81
- it 'accepts the word without colon' do
82
- inspect_source(cop, '# TODO make better')
83
- expect(cop.offenses).to be_empty
84
- end
85
- end
86
- end
@@ -1,179 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::CommentIndentation do
6
- subject(:cop) { described_class.new(config) }
7
- let(:config) do
8
- RuboCop::Config
9
- .new('Style/IndentationWidth' => { 'Width' => indentation_width })
10
- end
11
- let(:indentation_width) { 2 }
12
-
13
- context 'on outer level' do
14
- it 'accepts a correctly indented comment' do
15
- inspect_source(cop, '# comment')
16
- expect(cop.offenses).to be_empty
17
- end
18
-
19
- it 'accepts a comment that follows code' do
20
- inspect_source(cop, 'hello # comment')
21
- expect(cop.offenses).to be_empty
22
- end
23
-
24
- it 'accepts a documentation comment' do
25
- inspect_source(cop, ['=begin',
26
- 'Doc comment',
27
- '=end',
28
- ' hello',
29
- ' #',
30
- 'hi'])
31
- expect(cop.highlights).to eq(['#'])
32
- end
33
-
34
- it 'registers an offense for an incorrectly indented (1) comment' do
35
- inspect_source(cop, ' # comment')
36
- expect(cop.messages)
37
- .to eq(['Incorrect indentation detected (column 1 instead of 0).'])
38
- expect(cop.highlights).to eq(['# comment'])
39
- end
40
-
41
- it 'registers an offense for an incorrectly indented (2) comment' do
42
- inspect_source(cop, ' # comment')
43
- expect(cop.messages)
44
- .to eq(['Incorrect indentation detected (column 2 instead of 0).'])
45
- end
46
-
47
- it 'registers an offense for each incorrectly indented comment' do
48
- inspect_source(cop, ['# a',
49
- ' # b',
50
- ' # c',
51
- '# d',
52
- 'def test; end'])
53
- expect(cop.messages)
54
- .to eq(['Incorrect indentation detected (column 0 instead of 2).',
55
- 'Incorrect indentation detected (column 2 instead of 4).',
56
- 'Incorrect indentation detected (column 4 instead of 0).'])
57
- end
58
- end
59
-
60
- context 'around program structure keywords' do
61
- it 'accepts correctly indented comments' do
62
- inspect_source(cop, ['#',
63
- 'def m',
64
- ' #',
65
- ' if a',
66
- ' #',
67
- ' b',
68
- ' # this is accepted',
69
- ' elsif aa',
70
- ' # this is accepted',
71
- ' else',
72
- ' #',
73
- ' end',
74
- ' #',
75
- ' case a',
76
- ' # this is accepted',
77
- ' when 0',
78
- ' #',
79
- ' b',
80
- ' end',
81
- ' # this is accepted',
82
- 'rescue',
83
- '# this is accepted',
84
- 'ensure',
85
- ' #',
86
- 'end',
87
- '#'])
88
- expect(cop.offenses).to eq([])
89
- end
90
-
91
- context 'with a blank line following the comment' do
92
- it 'accepts a correctly indented comment' do
93
- inspect_source(cop, ['def m',
94
- ' # comment',
95
- '',
96
- 'end'])
97
- expect(cop.offenses).to be_empty
98
- end
99
- end
100
- end
101
-
102
- context 'near various kinds of brackets' do
103
- it 'accepts correctly indented comments' do
104
- inspect_source(cop, ['#',
105
- 'a = {',
106
- ' #',
107
- ' x: [',
108
- ' 1',
109
- ' #',
110
- ' ],',
111
- ' #',
112
- ' y: func(',
113
- ' 1',
114
- ' #',
115
- ' )',
116
- ' #',
117
- '}',
118
- '#'])
119
- expect(cop.offenses).to eq([])
120
- end
121
-
122
- it 'is unaffected by closing bracket that does not begin a line' do
123
- inspect_source(cop, ['#',
124
- 'result = []'])
125
- expect(cop.messages).to eq([])
126
- end
127
- end
128
-
129
- it 'auto-corrects' do
130
- new_source = autocorrect_source(cop, [' # comment',
131
- 'hash1 = { a: 0,',
132
- ' # comment',
133
- ' bb: 1,',
134
- ' ccc: 2 }',
135
- ' if a',
136
- ' #',
137
- ' b',
138
- ' # this is accepted',
139
- ' elsif aa',
140
- ' # so is this',
141
- ' elsif bb',
142
- '#',
143
- ' else',
144
- ' #',
145
- ' end',
146
- ' case a',
147
- ' # this is accepted',
148
- ' when 0',
149
- ' # so is this',
150
- ' when 1',
151
- ' #',
152
- ' b',
153
- ' end'])
154
- expect(new_source).to eq(['# comment',
155
- 'hash1 = { a: 0,',
156
- ' # comment',
157
- ' bb: 1,',
158
- ' ccc: 2 }',
159
- ' if a',
160
- ' #',
161
- ' b',
162
- ' # this is accepted',
163
- ' elsif aa',
164
- ' # so is this',
165
- ' elsif bb',
166
- ' #',
167
- ' else',
168
- ' #',
169
- ' end',
170
- ' case a',
171
- ' # this is accepted',
172
- ' when 0',
173
- ' # so is this',
174
- ' when 1',
175
- ' #',
176
- ' b',
177
- ' end'].join("\n"))
178
- end
179
- end
@@ -1,65 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::ConstantName do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for camel case in const name' do
9
- inspect_source(cop,
10
- 'TopCase = 5')
11
- expect(cop.offenses.size).to eq(1)
12
- end
13
-
14
- it 'registers offenses for camel case in multiple const assignment' do
15
- inspect_source(cop,
16
- 'TopCase, Test2, TEST_3 = 5, 6, 7')
17
- expect(cop.offenses.size).to eq(2)
18
- end
19
-
20
- it 'registers an offense for snake case in const name' do
21
- inspect_source(cop,
22
- 'TOP_test = 5')
23
- expect(cop.offenses.size).to eq(1)
24
- end
25
-
26
- it 'allows screaming snake case in const name' do
27
- inspect_source(cop,
28
- 'TOP_TEST = 5')
29
- expect(cop.offenses).to be_empty
30
- end
31
-
32
- it 'allows screaming snake case in multiple const assignment' do
33
- inspect_source(cop,
34
- 'TOP_TEST, TEST_2 = 5, 6')
35
- expect(cop.offenses).to be_empty
36
- end
37
-
38
- it 'does not check names if rhs is a method call' do
39
- inspect_source(cop,
40
- 'AnythingGoes = test')
41
- expect(cop.offenses).to be_empty
42
- end
43
-
44
- it 'does not check names if rhs is a method call with block' do
45
- inspect_source(cop,
46
- ['AnythingGoes = test do',
47
- ' do_something',
48
- 'end'
49
- ])
50
- expect(cop.offenses).to be_empty
51
- end
52
-
53
- it 'does not check if rhs is another constant' do
54
- inspect_source(cop,
55
- 'Parser::CurrentRuby = Parser::Ruby20')
56
- expect(cop.offenses).to be_empty
57
- end
58
-
59
- it 'checks qualified const names' do
60
- inspect_source(cop,
61
- ['::AnythingGoes = 30',
62
- 'a::Bar_foo = 10'])
63
- expect(cop.offenses.size).to eq(2)
64
- end
65
- end
@@ -1,43 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::DefWithParentheses do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'reports an offense for def with empty parens' do
9
- src = ['def func()',
10
- 'end']
11
- inspect_source(cop, src)
12
- expect(cop.offenses.size).to eq(1)
13
- end
14
-
15
- it 'reports an offense for class def with empty parens' do
16
- src = ['def Test.func()',
17
- 'end']
18
- inspect_source(cop, src)
19
- expect(cop.offenses.size).to eq(1)
20
- end
21
-
22
- it 'accepts def with arg and parens' do
23
- src = ['def func(a)',
24
- 'end']
25
- inspect_source(cop, src)
26
- expect(cop.offenses).to be_empty
27
- end
28
-
29
- it 'accepts empty parentheses in one liners' do
30
- src = "def to_s() join '/' end"
31
- inspect_source(cop, src)
32
- expect(cop.offenses).to be_empty
33
- end
34
-
35
- it 'auto-removes unneeded parens' do
36
- new_source = autocorrect_source(cop, ['def test();',
37
- 'something',
38
- 'end'])
39
- expect(new_source).to eq(['def test;',
40
- 'something',
41
- 'end'].join("\n"))
42
- end
43
- end
@@ -1,45 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::DeprecatedHashMethods do
6
- subject(:cop) { described_class.new }
7
-
8
- it 'registers an offense for has_key? with one arg' do
9
- inspect_source(cop,
10
- 'o.has_key?(o)')
11
- expect(cop.offenses.size).to eq(1)
12
- expect(cop.messages)
13
- .to eq(['`Hash#has_key?` is deprecated in favor of `Hash#key?`.'])
14
- end
15
-
16
- it 'accepts has_key? with no args' do
17
- inspect_source(cop,
18
- 'o.has_key?')
19
- expect(cop.offenses).to be_empty
20
- end
21
-
22
- it 'registers an offense for has_value? with one arg' do
23
- inspect_source(cop,
24
- 'o.has_value?(o)')
25
- expect(cop.offenses.size).to eq(1)
26
- expect(cop.messages)
27
- .to eq(['`Hash#has_value?` is deprecated in favor of `Hash#value?`.'])
28
- end
29
-
30
- it 'accepts has_value? with no args' do
31
- inspect_source(cop,
32
- 'o.has_value?')
33
- expect(cop.offenses).to be_empty
34
- end
35
-
36
- it 'auto-corrects has_key? with key?' do
37
- new_source = autocorrect_source(cop, 'hash.has_key?(:test)')
38
- expect(new_source).to eq('hash.key?(:test)')
39
- end
40
-
41
- it 'auto-corrects has_value? with value?' do
42
- new_source = autocorrect_source(cop, 'hash.has_value?(value)')
43
- expect(new_source).to eq('hash.value?(value)')
44
- end
45
- end
@@ -1,146 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Style::Documentation do
6
- subject(:cop) { described_class.new(config) }
7
- let(:config) do
8
- RuboCop::Config.new('Style/CommentAnnotation' => {
9
- 'Keywords' => %w(TODO FIXME OPTIMIZE HACK REVIEW)
10
- })
11
- end
12
-
13
- it 'registers an offense for non-empty class' do
14
- inspect_source(cop,
15
- ['class My_Class',
16
- ' TEST = 20',
17
- 'end'
18
- ])
19
- expect(cop.offenses.size).to eq(1)
20
- end
21
-
22
- it 'does not consider comment followed by empty line to be class ' \
23
- 'documentation' do
24
- inspect_source(cop,
25
- ['# Copyright 2014',
26
- '# Some company',
27
- '',
28
- 'class My_Class',
29
- ' TEST = 20',
30
- 'end'
31
- ])
32
- expect(cop.offenses.size).to eq(1)
33
- end
34
-
35
- it 'registers an offense for non-namespace' do
36
- inspect_source(cop,
37
- ['module My_Class',
38
- ' TEST = 20',
39
- 'end'
40
- ])
41
- expect(cop.offenses.size).to eq(1)
42
- end
43
-
44
- it 'registers an offense for empty module without documentation' do
45
- # Because why would you have an empty module? It requires some
46
- # explanation.
47
- inspect_source(cop,
48
- ['module Test',
49
- 'end'
50
- ])
51
- expect(cop.offenses.size).to eq(1)
52
- end
53
-
54
- it 'accepts non-empty class with documentation' do
55
- inspect_source(cop,
56
- ['# class comment',
57
- 'class My_Class',
58
- ' TEST = 20',
59
- 'end'
60
- ])
61
- expect(cop.offenses).to be_empty
62
- end
63
-
64
- it 'registers an offense for non-empty class with annotation comment' do
65
- inspect_source(cop,
66
- ['# OPTIMIZE: Make this faster.',
67
- 'class My_Class',
68
- ' TEST = 20',
69
- 'end'
70
- ])
71
- expect(cop.offenses.size).to eq(1)
72
- end
73
-
74
- it 'accepts non-empty class with annotation comment followed by other ' \
75
- 'comment' do
76
- inspect_source(cop,
77
- ['# OPTIMIZE: Make this faster.',
78
- '# Class comment.',
79
- 'class My_Class',
80
- ' TEST = 20',
81
- 'end'
82
- ])
83
- expect(cop.offenses).to be_empty
84
- end
85
-
86
- it 'accepts non-empty class with comment that ends with an annotation' do
87
- inspect_source(cop,
88
- ['# Does fooing.',
89
- '# FIXME: Not yet implemented.',
90
- 'class Foo',
91
- ' def initialize',
92
- ' end',
93
- 'end'
94
- ])
95
- expect(cop.offenses).to be_empty
96
- end
97
-
98
- it 'accepts non-empty module with documentation' do
99
- inspect_source(cop,
100
- ['# class comment',
101
- 'module My_Class',
102
- ' TEST = 20',
103
- 'end'
104
- ])
105
- expect(cop.offenses).to be_empty
106
- end
107
-
108
- it 'accepts empty class without documentation' do
109
- inspect_source(cop,
110
- ['class My_Class',
111
- 'end'
112
- ])
113
- expect(cop.offenses).to be_empty
114
- end
115
-
116
- it 'accepts namespace module without documentation' do
117
- inspect_source(cop,
118
- ['module Test',
119
- ' class A; end',
120
- ' class B; end',
121
- 'end'
122
- ])
123
- expect(cop.offenses).to be_empty
124
- end
125
-
126
- it 'accepts namespace class without documentation' do
127
- inspect_source(cop,
128
- ['class Test',
129
- ' class A; end',
130
- ' class B; end',
131
- 'end'
132
- ])
133
- expect(cop.offenses).to be_empty
134
- end
135
-
136
- it 'does not raise an error for an implicit match conditional' do
137
- expect do
138
- inspect_source(cop,
139
- ['class Test',
140
- ' if //',
141
- ' end',
142
- 'end'
143
- ])
144
- end.to_not raise_error
145
- end
146
- end