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,67 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
- require 'stringio'
5
-
6
- module RuboCop
7
- module Formatter
8
- describe DisabledLinesFormatter do
9
- subject(:formatter) { described_class.new(output) }
10
- let(:output) { StringIO.new }
11
-
12
- let(:files) do
13
- %w(lib/rubocop.rb spec/spec_helper.rb bin/rubocop).map do |path|
14
- File.expand_path(path)
15
- end
16
- end
17
-
18
- let(:file_started) do
19
- formatter.file_started(files.first, cop_disabled_line_ranges)
20
- end
21
-
22
- describe '#file_started' do
23
- before { formatter.started(files) }
24
-
25
- context 'when no disable cop comments are detected' do
26
- let(:cop_disabled_line_ranges) { {} }
27
- it 'does not add to cop_disabled_line_ranges' do
28
- expect { file_started }.to_not(
29
- change { formatter.cop_disabled_line_ranges })
30
- end
31
- end
32
-
33
- context 'when any disable cop comments are detected' do
34
- let(:cop_disabled_line_ranges) do
35
- { cop_disabled_line_ranges: { 'LineLength' => [1..1] } }
36
- end
37
- it 'merges the changes into cop_disabled_line_ranges' do
38
- expect { file_started }.to(
39
- change { formatter.cop_disabled_line_ranges })
40
- end
41
- end
42
- end
43
-
44
- describe '#finished' do
45
- context 'when there disabled cops detected' do
46
- let(:cop_disabled_line_ranges) do
47
- { cop_disabled_line_ranges: { 'LineLength' => [1..1] } }
48
- end
49
-
50
- before do
51
- formatter.started(files)
52
- formatter.file_started('lib/rubocop.rb', cop_disabled_line_ranges)
53
- end
54
-
55
- it 'lists disabled cops by file' do
56
- formatter.finished(files)
57
- expect(output.string).to eq(['',
58
- 'Cops disabled line ranges:',
59
- '',
60
- 'lib/rubocop.rb:1..1: LineLength',
61
- ''].join("\n"))
62
- end
63
- end
64
- end
65
- end
66
- end
67
- end
@@ -1,63 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
- require 'stringio'
5
-
6
- module RuboCop
7
- module Formatter
8
- describe EmacsStyleFormatter do
9
- subject(:formatter) { described_class.new(output) }
10
- let(:output) { StringIO.new }
11
-
12
- describe '#file_finished' do
13
- it 'displays parsable text' do
14
- cop = Cop::Cop.new
15
- source_buffer = Parser::Source::Buffer.new('test', 1)
16
- source_buffer.source = %w(a b cdefghi).join("\n")
17
-
18
- cop.add_offense(nil,
19
- Parser::Source::Range.new(source_buffer, 0, 1),
20
- 'message 1')
21
- cop.add_offense(nil,
22
- Parser::Source::Range.new(source_buffer, 9, 10),
23
- 'message 2')
24
-
25
- formatter.file_finished('test', cop.offenses)
26
- expect(output.string).to eq ['test:1:1: C: message 1',
27
- 'test:3:6: C: message 2',
28
- ''].join("\n")
29
- end
30
-
31
- context 'when the offense is automatically corrected' do
32
- let(:file) { '/path/to/file' }
33
-
34
- let(:offense) do
35
- Cop::Offense.new(:convention, location,
36
- 'This is a message.', 'CopName', corrected)
37
- end
38
-
39
- let(:location) do
40
- source_buffer = Parser::Source::Buffer.new('test', 1)
41
- source_buffer.source = "a\n"
42
- Parser::Source::Range.new(source_buffer, 0, 1)
43
- end
44
-
45
- let(:corrected) { true }
46
-
47
- it 'prints [Corrected] along with message' do
48
- formatter.file_finished(file, [offense])
49
- expect(output.string)
50
- .to include(': [Corrected] This is a message.')
51
- end
52
- end
53
- end
54
-
55
- describe '#finished' do
56
- it 'does not report summary' do
57
- formatter.finished(['/path/to/file'])
58
- expect(output.string).to be_empty
59
- end
60
- end
61
- end
62
- end
63
- end
@@ -1,33 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
- require 'stringio'
5
-
6
- module RuboCop
7
- module Formatter
8
- describe FileListFormatter do
9
- subject(:formatter) { described_class.new(output) }
10
- let(:output) { StringIO.new }
11
-
12
- describe '#file_finished' do
13
- it 'displays parsable text' do
14
- cop = Cop::Cop.new
15
- source_buffer = Parser::Source::Buffer.new('test', 1)
16
- source_buffer.source = %w(a b cdefghi).join("\n")
17
-
18
- cop.add_offense(nil,
19
- Parser::Source::Range.new(source_buffer, 0, 1),
20
- 'message 1')
21
- cop.add_offense(nil,
22
- Parser::Source::Range.new(source_buffer, 9, 10),
23
- 'message 2')
24
-
25
- formatter.file_finished('test', cop.offenses)
26
- formatter.file_finished('test_2', cop.offenses)
27
- expect(output.string).to eq ['test',
28
- "test_2\n"].join("\n")
29
- end
30
- end
31
- end
32
- end
33
- end
@@ -1,141 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
- require 'tempfile'
5
-
6
- module RuboCop
7
- module Formatter
8
- describe FormatterSet do
9
- subject(:formatter_set) { described_class.new }
10
-
11
- it 'responds to all formatter API methods' do
12
- [:started, :file_started, :file_finished, :finished].each do |method|
13
- expect(formatter_set).to respond_to(method)
14
- end
15
- end
16
-
17
- describe 'formatter API method' do
18
- before do
19
- formatter_set.add_formatter('simple')
20
- formatter_set.add_formatter('emacs')
21
- end
22
-
23
- let(:files) { ['/path/to/file1', '/path/to/file2'] }
24
-
25
- it 'invokes same method of all containing formatters' do
26
- formatter_set.each do |formatter|
27
- expect(formatter).to receive(:started).with(files)
28
- end
29
- formatter_set.started(files)
30
- end
31
- end
32
-
33
- describe 'add_formatter' do
34
- it 'adds a formatter to itself' do
35
- formatter_set.add_formatter('simple')
36
- expect(formatter_set.size).to eq(1)
37
- end
38
-
39
- it 'adds a formatter with specified formatter type' do
40
- formatter_set.add_formatter('simple')
41
- expect(formatter_set.first.class).to eq(SimpleTextFormatter)
42
- end
43
-
44
- it 'can add multiple formatters by being invoked multiple times' do
45
- formatter_set.add_formatter('simple')
46
- formatter_set.add_formatter('emacs')
47
- expect(formatter_set[0].class).to eq(SimpleTextFormatter)
48
- expect(formatter_set[1].class).to eq(EmacsStyleFormatter)
49
- end
50
-
51
- context 'when output path is omitted' do
52
- it 'adds a formatter outputs to $stdout' do
53
- formatter_set.add_formatter('simple')
54
- expect(formatter_set.first.output).to eq($stdout)
55
- end
56
- end
57
-
58
- context 'when output path is specified' do
59
- it 'adds a formatter outputs to the specified file' do
60
- output_path = Tempfile.new('').path
61
- formatter_set.add_formatter('simple', output_path)
62
- expect(formatter_set.first.output.class).to eq(File)
63
- expect(formatter_set.first.output.path).to eq(output_path)
64
- end
65
-
66
- it "creates parent directories if they don't exist" do
67
- Dir.mktmpdir do |tmpdir|
68
- output_path = File.join(tmpdir, 'path/does/not/exist')
69
- formatter_set.add_formatter('simple', output_path)
70
- expect(formatter_set.first.output.class).to eq(File)
71
- expect(formatter_set.first.output.path).to eq(output_path)
72
- end
73
- end
74
- end
75
- end
76
-
77
- describe '#close_output_files' do
78
- before do
79
- 2.times do
80
- output_path = Tempfile.new('').path
81
- formatter_set.add_formatter('simple', output_path)
82
- end
83
- formatter_set.add_formatter('simple')
84
- end
85
-
86
- it 'closes all output files' do
87
- formatter_set.close_output_files
88
- formatter_set[0..1].each do |formatter|
89
- expect(formatter.output).to be_closed
90
- end
91
- end
92
-
93
- it 'does not close non file output' do
94
- expect(formatter_set[2].output).not_to be_closed
95
- end
96
- end
97
-
98
- describe '#builtin_formatter_class' do
99
- def builtin_formatter_class(string)
100
- described_class.new.send(:builtin_formatter_class, string)
101
- end
102
-
103
- it 'returns class which matches passed alias name exactly' do
104
- expect(builtin_formatter_class('simple'))
105
- .to eq(SimpleTextFormatter)
106
- end
107
-
108
- it 'returns class whose first letter of alias name ' \
109
- 'matches passed letter' do
110
- expect(builtin_formatter_class('s'))
111
- .to eq(SimpleTextFormatter)
112
- end
113
- end
114
-
115
- describe '#custom_formatter_class' do
116
- def custom_formatter_class(string)
117
- described_class.new.send(:custom_formatter_class, string)
118
- end
119
-
120
- it 'returns constant represented by the passed string' do
121
- expect(custom_formatter_class('RuboCop')).to eq(RuboCop)
122
- end
123
-
124
- it 'can handle namespaced constant name' do
125
- expect(custom_formatter_class('RuboCop::CLI')).to eq(RuboCop::CLI)
126
- end
127
-
128
- it 'can handle top level namespaced constant name' do
129
- expect(custom_formatter_class('::RuboCop::CLI')).to eq(RuboCop::CLI)
130
- end
131
-
132
- context 'when non-existent constant name is passed' do
133
- it 'raises error' do
134
- expect { custom_formatter_class('RuboCop::NonExistentClass') }
135
- .to raise_error(NameError)
136
- end
137
- end
138
- end
139
- end
140
- end
141
- end
@@ -1,129 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
- require 'stringio'
5
-
6
- module RuboCop
7
- describe Formatter::FuubarStyleFormatter do
8
- subject(:formatter) { described_class.new(output) }
9
- let(:output) { StringIO.new }
10
-
11
- let(:files) do
12
- %w(lib/rubocop.rb spec/spec_helper.rb).map do |path|
13
- File.expand_path(path)
14
- end
15
- end
16
-
17
- describe '#with_color' do
18
- around do |example|
19
- original_state = formatter.rainbow.enabled
20
-
21
- begin
22
- example.run
23
- ensure
24
- formatter.rainbow.enabled = original_state
25
- end
26
- end
27
-
28
- context 'when color is enabled' do
29
- before do
30
- formatter.rainbow.enabled = true
31
- end
32
-
33
- it 'outputs coloring sequence code at the beginning and the end' do
34
- formatter.with_color { formatter.output.write 'foo' }
35
- expect(output.string).to eq("\e[32mfoo\e[0m")
36
- end
37
- end
38
-
39
- context 'when color is enabled' do
40
- before do
41
- formatter.rainbow.enabled = false
42
- end
43
-
44
- it 'outputs nothing' do
45
- formatter.with_color { formatter.output.write 'foo' }
46
- expect(output.string).to eq('foo')
47
- end
48
- end
49
- end
50
-
51
- describe '#progressbar_color' do
52
- before do
53
- formatter.started(files)
54
- end
55
-
56
- def offense(severity, corrected = false)
57
- source_range = double('source_range').as_null_object
58
- Cop::Offense.new(severity, source_range, 'message', 'Cop', corrected)
59
- end
60
-
61
- context 'initially' do
62
- it 'is green' do
63
- expect(formatter.progressbar_color).to eq(:green)
64
- end
65
- end
66
-
67
- context 'when no offenses are detected in a file' do
68
- before do
69
- formatter.file_finished(files[0], [])
70
- end
71
-
72
- it 'is still green' do
73
- expect(formatter.progressbar_color).to eq(:green)
74
- end
75
- end
76
-
77
- context 'when a convention offense is detected in a file' do
78
- before do
79
- formatter.file_finished(files[0], [offense(:convention)])
80
- end
81
-
82
- it 'is yellow' do
83
- expect(formatter.progressbar_color).to eq(:yellow)
84
- end
85
- end
86
-
87
- context 'when an error offense is detected in a file' do
88
- before do
89
- formatter.file_finished(files[0], [offense(:error)])
90
- end
91
-
92
- it 'is red' do
93
- expect(formatter.progressbar_color).to eq(:red)
94
- end
95
-
96
- context 'and then a convention offense is detected in the next file' do
97
- before do
98
- formatter.file_finished(files[1], [offense(:convention)])
99
- end
100
-
101
- it 'is still red' do
102
- expect(formatter.progressbar_color).to eq(:red)
103
- end
104
- end
105
- end
106
-
107
- context 'when convention and error offenses are detected in a file' do
108
- before do
109
- offenses = [offense(:convention), offense(:error)]
110
- formatter.file_finished(files[0], offenses)
111
- end
112
-
113
- it 'is red' do
114
- expect(formatter.progressbar_color).to eq(:red)
115
- end
116
- end
117
-
118
- context 'when a offense is detected in a file and auto-corrected' do
119
- before do
120
- formatter.file_finished(files[0], [offense(:convention, true)])
121
- end
122
-
123
- it 'is green' do
124
- expect(formatter.progressbar_color).to eq(:green)
125
- end
126
- end
127
- end
128
- end
129
- end
@@ -1,48 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
- require 'fileutils'
5
-
6
- module RuboCop
7
- module Formatter
8
- describe HTMLFormatter, :isolated_environment do
9
- spec_root = File.expand_path('../../..', __FILE__)
10
-
11
- around do |example|
12
- project_path = File.join(spec_root, 'fixtures/html_formatter/project')
13
- FileUtils.cp_r(project_path, '.')
14
-
15
- Dir.chdir(File.basename(project_path)) do
16
- example.run
17
- end
18
- end
19
-
20
- let(:actual_html_path) do
21
- path = File.expand_path('result.html')
22
- CLI.new.run(['--format', 'html', '--out', path])
23
- path
24
- end
25
-
26
- let(:actual_html) do
27
- File.read(actual_html_path, encoding: 'UTF-8')
28
- end
29
-
30
- let(:expected_html_path) do
31
- File.join(spec_root, 'fixtures/html_formatter/expected.html')
32
- end
33
-
34
- let(:expected_html) do
35
- html = File.read(expected_html_path, encoding: 'UTF-8')
36
- # Avoid failure on version bump
37
- html.sub(/(class="version".{0,20})\d+(?:\.\d+){2}/i) do
38
- Regexp.last_match(1) + RuboCop::Version::STRING
39
- end
40
- end
41
-
42
- it 'outputs the result in HTML' do
43
- # FileUtils.copy(actual_html_path, expected_html_path)
44
- expect(actual_html).to eq(expected_html)
45
- end
46
- end
47
- end
48
- end