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,26 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
- require 'astrolabe/sexp'
5
-
6
- describe RuboCop::Cop::VariableForce do
7
- include Astrolabe::Sexp
8
-
9
- subject(:force) { described_class.new([]) }
10
-
11
- describe '#process_node' do
12
- before do
13
- force.variable_table.push_scope(s(:def))
14
- end
15
-
16
- context 'when processing lvar node' do
17
- let(:node) { s(:lvar, :foo) }
18
-
19
- context 'when the variable is not yet declared' do
20
- it 'does not raise error' do
21
- expect { force.process_node(node) }.not_to raise_error
22
- end
23
- end
24
- end
25
- end
26
- end
@@ -1,191 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- module RuboCop
6
- module Formatter
7
- describe BaseFormatter do
8
- include FileHelper
9
-
10
- describe 'how the API methods are invoked', :isolated_environment do
11
- subject(:formatter) { double('formatter').as_null_object }
12
- let(:runner) { Runner.new({}, ConfigStore.new) }
13
- let(:output) { $stdout.string }
14
-
15
- before do
16
- create_file('1_offense.rb', [
17
- '# encoding: utf-8',
18
- '#' * 90
19
- ])
20
-
21
- create_file('4_offenses.rb', [
22
- '# encoding: utf-8',
23
- 'puts x ',
24
- 'test;',
25
- 'top;',
26
- '#' * 90
27
- ])
28
-
29
- create_file('no_offense.rb', [
30
- '# encoding: utf-8'
31
- ])
32
-
33
- allow(SimpleTextFormatter).to receive(:new).and_return(formatter)
34
- $stdout = StringIO.new
35
- end
36
-
37
- after do
38
- $stdout = STDOUT
39
- end
40
-
41
- def run
42
- runner.run([])
43
- end
44
-
45
- describe 'invocation order' do
46
- subject(:formatter) do
47
- formatter = double('formatter')
48
- def formatter.method_missing(method_name, *)
49
- return if method_name == :output
50
- puts method_name
51
- end
52
- formatter
53
- end
54
-
55
- it 'is called in the proper sequence' do
56
- run
57
- expect(output).to eq([
58
- 'started',
59
- 'file_started',
60
- 'file_finished',
61
- 'file_started',
62
- 'file_finished',
63
- 'file_started',
64
- 'file_finished',
65
- 'finished',
66
- ''
67
- ].join("\n"))
68
- end
69
- end
70
-
71
- shared_examples 'receives all file paths' do |method_name|
72
- it 'receives all file paths' do
73
- expected_paths = [
74
- '1_offense.rb',
75
- '4_offenses.rb',
76
- 'no_offense.rb'
77
- ].map { |path| File.expand_path(path) }.sort
78
-
79
- expect(formatter).to receive(method_name) do |all_files|
80
- expect(all_files.sort).to eq(expected_paths)
81
- end
82
-
83
- run
84
- end
85
-
86
- describe 'the passed files paths' do
87
- it 'is frozen' do
88
- expect(formatter).to receive(method_name) do |all_files|
89
- all_files.each do |path|
90
- expect(path).to be_frozen
91
- end
92
- end
93
- run
94
- end
95
- end
96
- end
97
-
98
- describe '#started' do
99
- include_examples 'receives all file paths', :started
100
- end
101
-
102
- describe '#finished' do
103
- context 'when RuboCop finished inspecting all files normally' do
104
- include_examples 'receives all file paths', :started
105
- end
106
-
107
- context 'when RuboCop is interrupted by user' do
108
- it 'receives only processed file paths' do
109
- class << formatter
110
- attr_reader :processed_file_count
111
-
112
- def file_finished(_file, _offenses)
113
- @processed_file_count ||= 0
114
- @processed_file_count += 1
115
- end
116
- end
117
-
118
- allow(runner).to receive(:aborting?) do
119
- formatter.processed_file_count == 2
120
- end
121
-
122
- expect(formatter).to receive(:finished) do |processed_files|
123
- expect(processed_files.size).to eq(2)
124
- end
125
-
126
- run
127
- end
128
- end
129
- end
130
-
131
- shared_examples 'receives a file path' do |method_name|
132
- it 'receives a file path' do
133
- expect(formatter).to receive(method_name)
134
- .with(File.expand_path('1_offense.rb'), anything)
135
-
136
- expect(formatter).to receive(method_name)
137
- .with(File.expand_path('4_offenses.rb'), anything)
138
-
139
- expect(formatter).to receive(method_name)
140
- .with(File.expand_path('no_offense.rb'), anything)
141
-
142
- run
143
- end
144
-
145
- describe 'the passed path' do
146
- it 'is frozen' do
147
- expect(formatter)
148
- .to receive(method_name).exactly(3).times do |path|
149
- expect(path).to be_frozen
150
- end
151
- run
152
- end
153
- end
154
- end
155
-
156
- describe '#file_started' do
157
- include_examples 'receives a file path', :file_started
158
-
159
- it 'receives file specific information hash' do
160
- expect(formatter).to receive(:file_started)
161
- .with(anything, an_instance_of(Hash)).exactly(3).times
162
- run
163
- end
164
- end
165
-
166
- describe '#file_finished' do
167
- include_examples 'receives a file path', :file_finished
168
-
169
- it 'receives an array of detected offenses for the file' do
170
- expect(formatter).to receive(:file_finished)
171
- .exactly(3).times do |file, offenses|
172
- case File.basename(file)
173
- when '1_offense.rb'
174
- expect(offenses.size).to eq(1)
175
- when '4_offenses.rb'
176
- expect(offenses.size).to eq(4)
177
- when 'no_offense.rb'
178
- expect(offenses).to be_empty
179
- else
180
- fail
181
- end
182
- expect(offenses.all? { |o| o.is_a?(RuboCop::Cop::Offense) })
183
- .to be_truthy
184
- end
185
- run
186
- end
187
- end
188
- end
189
- end
190
- end
191
- end
@@ -1,114 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
- require 'stringio'
5
-
6
- module RuboCop
7
- module Formatter
8
- describe ClangStyleFormatter do
9
- subject(:formatter) { described_class.new(output) }
10
- let(:output) { StringIO.new }
11
-
12
- describe '#report_file' do
13
- it 'displays text containing the offending source line' do
14
- cop = Cop::Cop.new
15
- source_buffer = Parser::Source::Buffer.new('test', 1)
16
- source_buffer.source = ('aa'..'az').to_a.join($RS)
17
- cop.add_offense(nil,
18
- Parser::Source::Range.new(source_buffer, 0, 2),
19
- 'message 1')
20
- cop.add_offense(nil,
21
- Parser::Source::Range.new(source_buffer, 30, 32),
22
- 'message 2')
23
-
24
- formatter.report_file('test', cop.offenses)
25
- expect(output.string).to eq ['test:1:1: C: message 1',
26
- 'aa',
27
- '^^',
28
- 'test:11:1: C: message 2',
29
- 'ak',
30
- '^^',
31
- ''].join("\n")
32
- end
33
-
34
- context 'when the source line is blank' do
35
- it 'does not display offending source line' do
36
- cop = Cop::Cop.new
37
- source_buffer = Parser::Source::Buffer.new('test', 1)
38
- source_buffer.source = ([' ', 'yaba']).to_a.join($RS)
39
- cop.add_offense(nil,
40
- Parser::Source::Range.new(source_buffer, 0, 2),
41
- 'message 1')
42
- cop.add_offense(nil,
43
- Parser::Source::Range.new(source_buffer, 6, 10),
44
- 'message 2')
45
-
46
- formatter.report_file('test', cop.offenses)
47
- expect(output.string).to eq ['test:1:1: C: message 1',
48
- 'test:2:1: C: message 2',
49
- 'yaba',
50
- '^^^^',
51
- ''].join("\n")
52
- end
53
- end
54
-
55
- context 'when the offending source spans multiple lines' do
56
- it 'displays the first line' do
57
- source = ['do_something([this,',
58
- ' is,',
59
- ' target])'].join($RS)
60
-
61
- source_buffer = Parser::Source::Buffer.new('test', 1)
62
- source_buffer.source = source
63
-
64
- location = Parser::Source::Range.new(source_buffer,
65
- source.index('['),
66
- source.index(']') + 1)
67
-
68
- cop = Cop::Cop.new
69
- cop.add_offense(nil, location, 'message 1')
70
-
71
- formatter.report_file('test', cop.offenses)
72
- expect(output.string).to eq ['test:1:14: C: message 1',
73
- 'do_something([this,',
74
- ' ^^^^^^',
75
- ''].join("\n")
76
- end
77
- end
78
-
79
- let(:file) { '/path/to/file' }
80
-
81
- let(:offense) do
82
- Cop::Offense.new(:convention, location,
83
- 'This is a message.', 'CopName', corrected)
84
- end
85
-
86
- let(:location) do
87
- source_buffer = Parser::Source::Buffer.new('test', 1)
88
- source_buffer.source = "a\n"
89
- Parser::Source::Range.new(source_buffer, 0, 1)
90
- end
91
-
92
- context 'when the offense is not corrected' do
93
- let(:corrected) { false }
94
-
95
- it 'prints message as-is' do
96
- formatter.report_file(file, [offense])
97
- expect(output.string)
98
- .to include(': This is a message.')
99
- end
100
- end
101
-
102
- context 'when the offense is automatically corrected' do
103
- let(:corrected) { true }
104
-
105
- it 'prints [Corrected] along with message' do
106
- formatter.report_file(file, [offense])
107
- expect(output.string)
108
- .to include(': [Corrected] This is a message.')
109
- end
110
- end
111
- end
112
- end
113
- end
114
- end
@@ -1,107 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
- require 'rubocop/formatter/colorizable'
5
- require 'stringio'
6
-
7
- module RuboCop
8
- module Formatter
9
- describe Colorizable do
10
- let(:formatter_class) do
11
- Class.new(BaseFormatter) do
12
- include Colorizable
13
- end
14
- end
15
-
16
- let(:formatter) do
17
- formatter_class.new(output)
18
- end
19
-
20
- let(:output) { double('output') }
21
-
22
- around do |example|
23
- original_state = Rainbow.enabled
24
-
25
- begin
26
- example.run
27
- ensure
28
- Rainbow.enabled = original_state
29
- end
30
- end
31
-
32
- describe '#colorize' do
33
- subject { formatter.colorize('foo', :red) }
34
-
35
- shared_examples 'does nothing' do
36
- it 'does nothing' do
37
- should eq('foo')
38
- end
39
- end
40
-
41
- context 'when the global Rainbow.enabled is true' do
42
- before do
43
- Rainbow.enabled = true
44
- end
45
-
46
- context "and the formatter's output is a tty" do
47
- before do
48
- allow(output).to receive(:tty?).and_return(true)
49
- end
50
-
51
- it 'colorize the passed string' do
52
- should eq("\e[31mfoo\e[0m")
53
- end
54
- end
55
-
56
- context "and the formatter's output is not a tty" do
57
- before do
58
- allow(output).to receive(:tty?).and_return(false)
59
- end
60
-
61
- include_examples 'does nothing'
62
- end
63
- end
64
-
65
- context 'when the global Rainbow.enabled is false' do
66
- before do
67
- Rainbow.enabled = false
68
- end
69
-
70
- context "and the formatter's output is a tty" do
71
- before do
72
- allow(output).to receive(:tty?).and_return(true)
73
- end
74
-
75
- include_examples 'does nothing'
76
- end
77
-
78
- context "and the formatter's output is not a tty" do
79
- before do
80
- allow(output).to receive(:tty?).and_return(false)
81
- end
82
-
83
- include_examples 'does nothing'
84
- end
85
- end
86
- end
87
-
88
- [
89
- :black,
90
- :red,
91
- :green,
92
- :yellow,
93
- :blue,
94
- :magenta,
95
- :cyan,
96
- :white
97
- ].each do |color|
98
- describe "##{color}" do
99
- it "invokes #colorize(string, #{color}" do
100
- expect(formatter).to receive(:colorize).with('foo', color)
101
- formatter.send(color, 'foo')
102
- end
103
- end
104
- end
105
- end
106
- end
107
- end
@@ -1,50 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
- require 'stringio'
5
- require 'ostruct'
6
-
7
- module RuboCop
8
- module Formatter
9
- describe DisabledConfigFormatter do
10
- subject(:formatter) { described_class.new(output) }
11
- let(:output) do
12
- o = StringIO.new
13
- def o.path
14
- '.rubocop_todo.yml'
15
- end
16
- o
17
- end
18
- let(:offenses) do
19
- [RuboCop::Cop::Offense.new(:convention, location, 'message', 'Cop1'),
20
- RuboCop::Cop::Offense.new(:convention, location, 'message', 'Cop2')]
21
- end
22
- let(:location) { OpenStruct.new(line: 1, column: 5) }
23
- before { $stdout = StringIO.new }
24
-
25
- describe '#finished' do
26
- it 'displays YAML configuration disabling all cops with offenses' do
27
- formatter.file_finished('test.rb', offenses)
28
- formatter.finished(['test.rb'])
29
- expect(output.string).to eq(described_class::HEADING +
30
- ['',
31
- '',
32
- '# Offense count: 1',
33
- 'Cop1:',
34
- ' Enabled: false',
35
- '',
36
- '# Offense count: 1',
37
- 'Cop2:',
38
- ' Enabled: false',
39
- ''].join("\n"))
40
- expect($stdout.string)
41
- .to eq(['Created .rubocop_todo.yml.',
42
- 'Run `rubocop --config .rubocop_todo.yml`, or',
43
- 'add inherit_from: .rubocop_todo.yml in a .rubocop.yml ' \
44
- 'file.',
45
- ''].join("\n"))
46
- end
47
- end
48
- end
49
- end
50
- end