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,152 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
- require 'stringio'
5
-
6
- module RuboCop
7
- describe Formatter::JSONFormatter do
8
- subject(:formatter) { described_class.new(output) }
9
- let(:output) { StringIO.new }
10
- let(:files) { %w(/path/to/file1 /path/to/file2) }
11
- let(:location) do
12
- source_buffer = Parser::Source::Buffer.new('test', 1)
13
- source_buffer.source = %w(a b cdefghi).join("\n")
14
- Parser::Source::Range.new(source_buffer, 9, 10)
15
- end
16
- let(:offense) do
17
- Cop::Offense.new(:convention, location,
18
- 'This is message', 'CopName', true)
19
- end
20
-
21
- describe '#started' do
22
- let(:summary) { formatter.output_hash[:summary] }
23
-
24
- it 'sets target file count in summary' do
25
- expect(summary[:target_file_count]).to be_nil
26
- formatter.started(%w(/path/to/file1 /path/to/file2))
27
- expect(summary[:target_file_count]).to eq(2)
28
- end
29
- end
30
-
31
- describe '#file_finished' do
32
- before do
33
- count = 0
34
- allow(formatter).to receive(:hash_for_file) do
35
- count += 1
36
- end
37
- end
38
-
39
- let(:summary) { formatter.output_hash[:summary] }
40
-
41
- it 'adds detected offense count in summary' do
42
- expect(summary[:offense_count]).to eq(0)
43
-
44
- formatter.file_started(files[0], {})
45
- expect(summary[:offense_count]).to eq(0)
46
- formatter.file_finished(files[0], [
47
- double('offense1'), double('offense2')
48
- ])
49
- expect(summary[:offense_count]).to eq(2)
50
- end
51
-
52
- it 'adds value of #hash_for_file to #output_hash[:files]' do
53
- expect(formatter.output_hash[:files]).to be_empty
54
-
55
- formatter.file_started(files[0], {})
56
- expect(formatter.output_hash[:files]).to be_empty
57
- formatter.file_finished(files[0], [])
58
- expect(formatter.output_hash[:files]).to eq([1])
59
-
60
- formatter.file_started(files[1], {})
61
- expect(formatter.output_hash[:files]).to eq([1])
62
- formatter.file_finished(files[1], [])
63
- expect(formatter.output_hash[:files]).to eq([1, 2])
64
- end
65
- end
66
-
67
- describe '#finished' do
68
- let(:summary) { formatter.output_hash[:summary] }
69
-
70
- it 'sets inspected file count in summary' do
71
- expect(summary[:inspected_file_count]).to be_nil
72
- formatter.finished(%w(/path/to/file1 /path/to/file2))
73
- expect(summary[:inspected_file_count]).to eq(2)
74
- end
75
-
76
- it 'outputs #output_hash as JSON' do
77
- formatter.finished(files)
78
- json = output.string
79
- restored_hash = JSON.parse(json, symbolize_names: true)
80
- expect(restored_hash).to eq(formatter.output_hash)
81
- end
82
- end
83
-
84
- describe '#hash_for_file' do
85
- subject(:hash) { formatter.hash_for_file(file, offenses) }
86
- let(:file) { File.expand_path('spec/spec_helper.rb') }
87
- let(:offenses) { [double('offense1'), double('offense2')] }
88
-
89
- it 'sets relative file path for :path key' do
90
- expect(hash[:path]).to eq('spec/spec_helper.rb')
91
- end
92
-
93
- before do
94
- count = 0
95
- allow(formatter).to receive(:hash_for_offense) do
96
- count += 1
97
- end
98
- end
99
-
100
- it 'sets an array of #hash_for_offense values for :offenses key' do
101
- expect(hash[:offenses]).to eq([1, 2])
102
- end
103
- end
104
-
105
- describe '#hash_for_offense' do
106
- subject(:hash) { formatter.hash_for_offense(offense) }
107
-
108
- it 'sets Offense#severity value for :severity key' do
109
- expect(hash[:severity]).to eq(:convention)
110
- end
111
-
112
- it 'sets Offense#message value for :message key' do
113
- expect(hash[:message]).to eq('This is message')
114
- end
115
-
116
- it 'sets Offense#cop_name value for :cop_name key' do
117
- expect(hash[:cop_name]).to eq('CopName')
118
- end
119
-
120
- it 'sets Offense#corrected? value for :corrected key' do
121
- expect(hash[:corrected]).to be_truthy
122
- end
123
-
124
- before do
125
- allow(formatter)
126
- .to receive(:hash_for_location).and_return(location_hash)
127
- end
128
-
129
- let(:location_hash) { { line: 1, column: 2 } }
130
-
131
- it 'sets value of #hash_for_location for :location key' do
132
- expect(hash[:location]).to eq(location_hash)
133
- end
134
- end
135
-
136
- describe '#hash_for_location' do
137
- subject(:hash) { formatter.hash_for_location(offense) }
138
-
139
- it 'sets line value for :line key' do
140
- expect(hash[:line]).to eq(3)
141
- end
142
-
143
- it 'sets column value for :column key' do
144
- expect(hash[:column]).to eq(6)
145
- end
146
-
147
- it 'sets length value for :length key' do
148
- expect(hash[:length]).to eq(1)
149
- end
150
- end
151
- end
152
- end
@@ -1,75 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
- require 'stringio'
5
-
6
- module RuboCop
7
- module Formatter
8
- describe OffenseCountFormatter 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(:finish) { formatter.file_finished(files.first, offenses) }
19
-
20
- describe '#file_finished' do
21
- before { formatter.started(files) }
22
-
23
- context 'when no offenses are detected' do
24
- let(:offenses) { [] }
25
- it 'does not add to offense_counts' do
26
- expect { finish }.to_not change { formatter.offense_counts }
27
- end
28
- end
29
-
30
- context 'when any offenses are detected' do
31
- let(:offenses) { [double('offense', cop_name: 'OffendedCop')] }
32
- it 'increments the count for the cop in offense_counts' do
33
- expect { finish }.to change { formatter.offense_counts }
34
- end
35
- end
36
- end
37
-
38
- describe '#report_summary' do
39
- context 'when an offense is detected' do
40
- let(:cop_counts) { { 'OffendedCop' => 1 } }
41
- it 'shows the cop and the offense count' do
42
- formatter.report_summary(cop_counts)
43
- expect(output.string).to include(
44
- "\n1 OffendedCop\n--\n1 Total")
45
- end
46
- end
47
- end
48
-
49
- describe '#finished' do
50
- context 'when there are many offenses' do
51
- let(:offenses) do
52
- %w(CopB CopA CopC CopC).map { |c| double('offense', cop_name: c) }
53
- end
54
-
55
- before do
56
- formatter.started(files)
57
- finish
58
- end
59
-
60
- it 'sorts by offense count first and then by cop name' do
61
- formatter.finished(files)
62
- expect(output.string).to eq(['',
63
- '2 CopC',
64
- '1 CopA',
65
- '1 CopB',
66
- '--',
67
- '4 Total',
68
- '',
69
- ''].join("\n"))
70
- end
71
- end
72
- end
73
- end
74
- end
75
- end
@@ -1,182 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
- require 'stringio'
5
-
6
- module RuboCop
7
- describe Formatter::ProgressFormatter 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 bin/rubocop).map do |path|
13
- File.expand_path(path)
14
- end
15
- end
16
-
17
- describe '#file_finished' do
18
- before do
19
- formatter.started(files)
20
- formatter.file_started(files.first, {})
21
- end
22
-
23
- shared_examples 'calls #report_file_as_mark' do
24
- it 'calls #report_as_with_mark' do
25
- expect(formatter).to receive(:report_file_as_mark)
26
- formatter.file_finished(files.first, offenses)
27
- end
28
- end
29
-
30
- context 'when no offenses are detected' do
31
- let(:offenses) { [] }
32
- include_examples 'calls #report_file_as_mark'
33
- end
34
-
35
- context 'when any offenses are detected' do
36
- let(:offenses) { [double('offense').as_null_object] }
37
- include_examples 'calls #report_file_as_mark'
38
- end
39
- end
40
-
41
- describe '#report_file_as_mark' do
42
- before do
43
- formatter.report_file_as_mark(offenses)
44
- end
45
-
46
- def offense_with_severity(severity)
47
- source_buffer = Parser::Source::Buffer.new('test', 1)
48
- source_buffer.source = "a\n"
49
- Cop::Offense.new(severity,
50
- Parser::Source::Range.new(source_buffer, 0, 1),
51
- 'message',
52
- 'CopName')
53
- end
54
-
55
- context 'when no offenses are detected' do
56
- let(:offenses) { [] }
57
-
58
- it 'prints "."' do
59
- expect(output.string).to eq('.')
60
- end
61
- end
62
-
63
- context 'when a refactor severity offense is detected' do
64
- let(:offenses) { [offense_with_severity(:refactor)] }
65
-
66
- it 'prints "R"' do
67
- expect(output.string).to eq('R')
68
- end
69
- end
70
-
71
- context 'when a refactor convention offense is detected' do
72
- let(:offenses) { [offense_with_severity(:convention)] }
73
-
74
- it 'prints "C"' do
75
- expect(output.string).to eq('C')
76
- end
77
- end
78
-
79
- context 'when different severity offenses are detected' do
80
- let(:offenses) do
81
- [
82
- offense_with_severity(:refactor),
83
- offense_with_severity(:error)
84
- ]
85
- end
86
-
87
- it 'prints highest level mark' do
88
- expect(output.string).to eq('E')
89
- end
90
- end
91
- end
92
-
93
- describe '#finished' do
94
- before do
95
- formatter.started(files)
96
- end
97
-
98
- context 'when any offenses are detected' do
99
- before do
100
- source_buffer = Parser::Source::Buffer.new('test', 1)
101
- source = 9.times.map do |index|
102
- "This is line #{index + 1}."
103
- end
104
- source_buffer.source = source.join("\n")
105
- line_length = source[0].length + "\n".length
106
-
107
- formatter.file_started(files[0], {})
108
- formatter.file_finished(files[0], [
109
- Cop::Offense.new(
110
- :convention,
111
- Parser::Source::Range.new(source_buffer,
112
- line_length + 2,
113
- line_length + 3),
114
- 'foo',
115
- 'Cop'
116
- )
117
- ])
118
-
119
- formatter.file_started(files[1], {})
120
- formatter.file_finished(files[1], [
121
- ])
122
-
123
- formatter.file_started(files[2], {})
124
- formatter.file_finished(files[2], [
125
- Cop::Offense.new(
126
- :error,
127
- Parser::Source::Range.new(source_buffer,
128
- 4 * line_length + 1,
129
- 4 * line_length + 2),
130
- 'bar',
131
- 'Cop'
132
- ),
133
- Cop::Offense.new(
134
- :convention,
135
- Parser::Source::Range.new(source_buffer,
136
- 5 * line_length,
137
- 5 * line_length + 1),
138
- 'foo',
139
- 'Cop'
140
- )
141
- ])
142
- end
143
-
144
- it 'reports all detected offenses for all failed files' do
145
- formatter.finished(files)
146
- expect(output.string).to include([
147
- 'Offenses:',
148
- '',
149
- 'lib/rubocop.rb:2:3: C: foo',
150
- 'This is line 2.',
151
- ' ^',
152
- 'bin/rubocop:5:2: E: bar',
153
- 'This is line 5.',
154
- ' ^',
155
- 'bin/rubocop:6:1: C: foo',
156
- 'This is line 6.',
157
- '^'
158
- ].join("\n"))
159
- end
160
- end
161
-
162
- context 'when no offenses are detected' do
163
- before do
164
- files.each do |file|
165
- formatter.file_started(file, {})
166
- formatter.file_finished(file, [])
167
- end
168
- end
169
-
170
- it 'does not report offenses' do
171
- formatter.finished(files)
172
- expect(output.string).not_to include('Offenses:')
173
- end
174
- end
175
-
176
- it 'calls #report_summary' do
177
- expect(formatter).to receive(:report_summary)
178
- formatter.finished(files)
179
- end
180
- end
181
- end
182
- end
@@ -1,135 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
- require 'stringio'
5
- require 'tempfile'
6
-
7
- module RuboCop
8
- module Formatter
9
- describe SimpleTextFormatter do
10
- subject(:formatter) { described_class.new(output) }
11
- let(:output) { StringIO.new }
12
-
13
- describe '#report_file' do
14
- before do
15
- formatter.report_file(file, [offense])
16
- end
17
-
18
- let(:file) { '/path/to/file' }
19
-
20
- let(:offense) do
21
- Cop::Offense.new(:convention, location,
22
- 'This is a message.', 'CopName', corrected)
23
- end
24
-
25
- let(:location) do
26
- source_buffer = Parser::Source::Buffer.new('test', 1)
27
- source_buffer.source = "a\n"
28
- Parser::Source::Range.new(source_buffer, 0, 1)
29
- end
30
-
31
- let(:corrected) { false }
32
-
33
- context 'the file is under the current working directory' do
34
- let(:file) { File.expand_path('spec/spec_helper.rb') }
35
-
36
- it 'prints as relative path' do
37
- expect(output.string).to include('== spec/spec_helper.rb ==')
38
- end
39
- end
40
-
41
- context 'the file is outside of the current working directory' do
42
- let(:file) do
43
- tempfile = Tempfile.new('')
44
- tempfile.close
45
- File.expand_path(tempfile.path)
46
- end
47
-
48
- it 'prints as absolute path' do
49
- expect(output.string).to include("== #{file} ==")
50
- end
51
- end
52
-
53
- context 'when the offense is not corrected' do
54
- let(:corrected) { false }
55
-
56
- it 'prints message as-is' do
57
- expect(output.string)
58
- .to include(': This is a message.')
59
- end
60
- end
61
-
62
- context 'when the offense is automatically corrected' do
63
- let(:corrected) { true }
64
-
65
- it 'prints [Corrected] along with message' do
66
- expect(output.string)
67
- .to include(': [Corrected] This is a message.')
68
- end
69
- end
70
- end
71
-
72
- describe '#report_summary' do
73
- context 'when no files inspected' do
74
- it 'handles pluralization correctly' do
75
- formatter.report_summary(0, 0, 0)
76
- expect(output.string).to eq(
77
- ['',
78
- '0 files inspected, no offenses detected',
79
- ''].join("\n"))
80
- end
81
- end
82
-
83
- context 'when a file inspected and no offenses detected' do
84
- it 'handles pluralization correctly' do
85
- formatter.report_summary(1, 0, 0)
86
- expect(output.string).to eq(
87
- ['',
88
- '1 file inspected, no offenses detected',
89
- ''].join("\n"))
90
- end
91
- end
92
-
93
- context 'when a offense detected' do
94
- it 'handles pluralization correctly' do
95
- formatter.report_summary(1, 1, 0)
96
- expect(output.string).to eq(
97
- ['',
98
- '1 file inspected, 1 offense detected',
99
- ''].join("\n"))
100
- end
101
- end
102
-
103
- context 'when 2 offenses detected' do
104
- it 'handles pluralization correctly' do
105
- formatter.report_summary(2, 2, 0)
106
- expect(output.string).to eq(
107
- ['',
108
- '2 files inspected, 2 offenses detected',
109
- ''].join("\n"))
110
- end
111
- end
112
-
113
- context 'when an offense is corrected' do
114
- it 'prints about correction' do
115
- formatter.report_summary(1, 1, 1)
116
- expect(output.string).to eq(
117
- ['',
118
- '1 file inspected, 1 offense detected, 1 offense corrected',
119
- ''].join("\n"))
120
- end
121
- end
122
-
123
- context 'when 2 offenses are corrected' do
124
- it 'handles pluralization correctly' do
125
- formatter.report_summary(1, 1, 2)
126
- expect(output.string).to eq(
127
- ['',
128
- '1 file inspected, 1 offense detected, 2 offenses corrected',
129
- ''].join("\n"))
130
- end
131
- end
132
- end
133
- end
134
- end
135
- end