rubocop 0.18.1 → 0.19.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 (398) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -1
  3. data/CHANGELOG.md +65 -1
  4. data/Gemfile +0 -3
  5. data/LICENSE.txt +1 -1
  6. data/README.md +179 -77
  7. data/Rakefile +8 -0
  8. data/config/default.yml +151 -14
  9. data/config/enabled.yml +65 -8
  10. data/lib/rubocop.rb +19 -4
  11. data/lib/rubocop/cli.rb +2 -1
  12. data/lib/rubocop/comment_config.rb +97 -0
  13. data/lib/rubocop/config.rb +1 -1
  14. data/lib/rubocop/config_loader.rb +3 -2
  15. data/lib/rubocop/config_store.rb +6 -2
  16. data/lib/rubocop/cop/commissioner.rb +2 -2
  17. data/lib/rubocop/cop/cop.rb +22 -26
  18. data/lib/rubocop/cop/lint/ambiguous_operator.rb +2 -2
  19. data/lib/rubocop/cop/lint/ambiguous_regexp_literal.rb +1 -1
  20. data/lib/rubocop/cop/lint/assignment_in_condition.rb +1 -1
  21. data/lib/rubocop/cop/lint/block_alignment.rb +6 -6
  22. data/lib/rubocop/cop/lint/condition_position.rb +1 -1
  23. data/lib/rubocop/cop/lint/debugger.rb +1 -1
  24. data/lib/rubocop/cop/lint/deprecated_class_methods.rb +60 -0
  25. data/lib/rubocop/cop/lint/else_layout.rb +1 -1
  26. data/lib/rubocop/cop/lint/empty_ensure.rb +1 -1
  27. data/lib/rubocop/cop/lint/end_alignment.rb +14 -12
  28. data/lib/rubocop/cop/lint/end_in_method.rb +1 -1
  29. data/lib/rubocop/cop/lint/ensure_return.rb +1 -1
  30. data/lib/rubocop/cop/lint/eval.rb +1 -1
  31. data/lib/rubocop/cop/lint/handle_exceptions.rb +1 -1
  32. data/lib/rubocop/cop/lint/literal_in_condition.rb +13 -2
  33. data/lib/rubocop/cop/lint/literal_in_interpolation.rb +28 -0
  34. data/lib/rubocop/cop/lint/loop.rb +4 -4
  35. data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +1 -1
  36. data/lib/rubocop/cop/lint/require_parentheses.rb +6 -6
  37. data/lib/rubocop/cop/lint/rescue_exception.rb +1 -1
  38. data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +2 -2
  39. data/lib/rubocop/cop/lint/string_conversion_in_interpolation.rb +30 -0
  40. data/lib/rubocop/cop/lint/syntax.rb +5 -5
  41. data/lib/rubocop/cop/lint/unreachable_code.rb +1 -1
  42. data/lib/rubocop/cop/lint/useless_assignment.rb +5 -5
  43. data/lib/rubocop/cop/lint/useless_comparison.rb +1 -1
  44. data/lib/rubocop/cop/lint/useless_setter_call.rb +1 -1
  45. data/lib/rubocop/cop/lint/void.rb +5 -5
  46. data/lib/rubocop/cop/mixin/autocorrect_alignment.rb +8 -5
  47. data/lib/rubocop/cop/mixin/code_length.rb +2 -2
  48. data/lib/rubocop/cop/mixin/configurable_enforced_style.rb +7 -7
  49. data/lib/rubocop/cop/mixin/configurable_max.rb +1 -1
  50. data/lib/rubocop/cop/mixin/configurable_naming.rb +1 -1
  51. data/lib/rubocop/cop/mixin/if_then_else.rb +1 -1
  52. data/lib/rubocop/cop/mixin/negative_conditional.rb +1 -1
  53. data/lib/rubocop/cop/mixin/parser_diagnostic.rb +2 -2
  54. data/lib/rubocop/cop/mixin/space_after_punctuation.rb +3 -2
  55. data/lib/rubocop/cop/mixin/space_inside.rb +1 -1
  56. data/lib/rubocop/cop/mixin/statement_modifier.rb +1 -0
  57. data/lib/rubocop/cop/mixin/string_help.rb +4 -4
  58. data/lib/rubocop/cop/{offence.rb → offense.rb} +7 -7
  59. data/lib/rubocop/cop/rails/action_filter.rb +73 -0
  60. data/lib/rubocop/cop/rails/default_scope.rb +1 -1
  61. data/lib/rubocop/cop/rails/has_and_belongs_to_many.rb +1 -1
  62. data/lib/rubocop/cop/rails/output.rb +1 -10
  63. data/lib/rubocop/cop/rails/read_attribute.rb +1 -1
  64. data/lib/rubocop/cop/rails/scope_args.rb +33 -0
  65. data/lib/rubocop/cop/rails/validation.rb +1 -1
  66. data/lib/rubocop/cop/style/access_modifier_indentation.rb +1 -1
  67. data/lib/rubocop/cop/style/accessor_method_name.rb +2 -2
  68. data/lib/rubocop/cop/style/alias.rb +2 -2
  69. data/lib/rubocop/cop/style/align_array.rb +1 -1
  70. data/lib/rubocop/cop/style/align_hash.rb +29 -2
  71. data/lib/rubocop/cop/style/align_parameters.rb +16 -2
  72. data/lib/rubocop/cop/style/and_or.rb +2 -2
  73. data/lib/rubocop/cop/style/ascii_comments.rb +1 -1
  74. data/lib/rubocop/cop/style/ascii_identifiers.rb +1 -1
  75. data/lib/rubocop/cop/style/attr.rb +1 -1
  76. data/lib/rubocop/cop/style/begin_block.rb +1 -1
  77. data/lib/rubocop/cop/style/block_comments.rb +1 -1
  78. data/lib/rubocop/cop/style/block_nesting.rb +1 -1
  79. data/lib/rubocop/cop/style/blocks.rb +2 -2
  80. data/lib/rubocop/cop/style/braces_around_hash_parameters.rb +2 -2
  81. data/lib/rubocop/cop/style/case_equality.rb +1 -1
  82. data/lib/rubocop/cop/style/case_indentation.rb +2 -2
  83. data/lib/rubocop/cop/style/character_literal.rb +2 -2
  84. data/lib/rubocop/cop/style/class_and_module_camel_case.rb +1 -1
  85. data/lib/rubocop/cop/style/class_and_module_children.rb +69 -0
  86. data/lib/rubocop/cop/style/class_methods.rb +1 -1
  87. data/lib/rubocop/cop/style/class_vars.rb +3 -3
  88. data/lib/rubocop/cop/style/collection_methods.rb +4 -4
  89. data/lib/rubocop/cop/style/colon_method_call.rb +1 -1
  90. data/lib/rubocop/cop/style/comment_annotation.rb +1 -1
  91. data/lib/rubocop/cop/style/constant_name.rb +1 -1
  92. data/lib/rubocop/cop/style/cyclomatic_complexity.rb +2 -2
  93. data/lib/rubocop/cop/style/def_parentheses.rb +2 -2
  94. data/lib/rubocop/cop/style/documentation.rb +1 -1
  95. data/lib/rubocop/cop/style/dot_position.rb +10 -11
  96. data/lib/rubocop/cop/style/double_negation.rb +40 -0
  97. data/lib/rubocop/cop/style/empty_line_between_defs.rb +8 -1
  98. data/lib/rubocop/cop/style/empty_lines.rb +3 -2
  99. data/lib/rubocop/cop/style/empty_lines_around_access_modifier.rb +1 -1
  100. data/lib/rubocop/cop/style/empty_lines_around_body.rb +1 -1
  101. data/lib/rubocop/cop/style/empty_literal.rb +3 -3
  102. data/lib/rubocop/cop/style/encoding.rb +1 -1
  103. data/lib/rubocop/cop/style/end_block.rb +1 -1
  104. data/lib/rubocop/cop/style/end_of_line.rb +2 -2
  105. data/lib/rubocop/cop/style/even_odd.rb +2 -2
  106. data/lib/rubocop/cop/style/favor_join.rb +1 -1
  107. data/lib/rubocop/cop/style/file_name.rb +29 -0
  108. data/lib/rubocop/cop/style/final_newline.rb +1 -1
  109. data/lib/rubocop/cop/style/flip_flop.rb +2 -2
  110. data/lib/rubocop/cop/style/for.rb +2 -2
  111. data/lib/rubocop/cop/style/format_string.rb +66 -0
  112. data/lib/rubocop/cop/style/global_vars.rb +2 -2
  113. data/lib/rubocop/cop/style/hash_methods.rb +1 -1
  114. data/lib/rubocop/cop/style/hash_syntax.rb +3 -3
  115. data/lib/rubocop/cop/style/if_unless_modifier.rb +2 -1
  116. data/lib/rubocop/cop/style/indent_array.rb +41 -0
  117. data/lib/rubocop/cop/style/indent_hash.rb +119 -0
  118. data/lib/rubocop/cop/style/indentation_consistency.rb +3 -11
  119. data/lib/rubocop/cop/style/indentation_width.rb +44 -23
  120. data/lib/rubocop/cop/style/lambda.rb +2 -2
  121. data/lib/rubocop/cop/style/lambda_call.rb +3 -3
  122. data/lib/rubocop/cop/style/leading_comment_space.rb +1 -1
  123. data/lib/rubocop/cop/style/line_end_concatenation.rb +7 -3
  124. data/lib/rubocop/cop/style/line_length.rb +2 -2
  125. data/lib/rubocop/cop/style/method_call_parentheses.rb +2 -2
  126. data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +2 -2
  127. data/lib/rubocop/cop/style/method_def_parentheses.rb +9 -7
  128. data/lib/rubocop/cop/style/module_function.rb +1 -1
  129. data/lib/rubocop/cop/style/multiline_block_chain.rb +1 -1
  130. data/lib/rubocop/cop/style/multiline_ternary_operator.rb +1 -1
  131. data/lib/rubocop/cop/style/nested_ternary_operator.rb +2 -2
  132. data/lib/rubocop/cop/style/nil_comparison.rb +1 -1
  133. data/lib/rubocop/cop/style/not.rb +1 -1
  134. data/lib/rubocop/cop/style/numeric_literals.rb +5 -5
  135. data/lib/rubocop/cop/style/op_method.rb +2 -2
  136. data/lib/rubocop/cop/style/parameter_lists.rb +1 -1
  137. data/lib/rubocop/cop/style/parentheses_around_condition.rb +5 -4
  138. data/lib/rubocop/cop/style/percent_literal_delimiters.rb +143 -0
  139. data/lib/rubocop/cop/style/perl_backrefs.rb +1 -1
  140. data/lib/rubocop/cop/style/predicate_name.rb +1 -1
  141. data/lib/rubocop/cop/style/proc.rb +1 -1
  142. data/lib/rubocop/cop/style/raise_args.rb +2 -2
  143. data/lib/rubocop/cop/style/redundant_begin.rb +1 -1
  144. data/lib/rubocop/cop/style/redundant_exception.rb +1 -1
  145. data/lib/rubocop/cop/style/redundant_return.rb +1 -1
  146. data/lib/rubocop/cop/style/redundant_self.rb +2 -2
  147. data/lib/rubocop/cop/style/regexp_literal.rb +45 -19
  148. data/lib/rubocop/cop/style/rescue_modifier.rb +1 -1
  149. data/lib/rubocop/cop/style/self_assignment.rb +73 -0
  150. data/lib/rubocop/cop/style/semicolon.rb +12 -8
  151. data/lib/rubocop/cop/style/signal_exception.rb +2 -2
  152. data/lib/rubocop/cop/style/single_line_block_params.rb +1 -1
  153. data/lib/rubocop/cop/style/single_line_methods.rb +38 -1
  154. data/lib/rubocop/cop/style/space_after_colon.rb +3 -3
  155. data/lib/rubocop/cop/style/space_after_comma.rb +1 -1
  156. data/lib/rubocop/cop/style/space_after_control_keyword.rb +1 -1
  157. data/lib/rubocop/cop/style/space_after_method_name.rb +11 -3
  158. data/lib/rubocop/cop/style/space_after_not.rb +1 -1
  159. data/lib/rubocop/cop/style/space_after_semicolon.rb +1 -1
  160. data/lib/rubocop/cop/style/space_around_equals_in_parameter_default.rb +41 -6
  161. data/lib/rubocop/cop/style/space_around_operators.rb +4 -4
  162. data/lib/rubocop/cop/style/space_before_block_braces.rb +63 -0
  163. data/lib/rubocop/cop/style/space_before_modifier_keyword.rb +1 -1
  164. data/lib/rubocop/cop/style/{space_around_block_braces.rb → space_inside_block_braces.rb} +15 -24
  165. data/lib/rubocop/cop/style/space_inside_hash_literal_braces.rb +14 -7
  166. data/lib/rubocop/cop/style/special_global_vars.rb +1 -1
  167. data/lib/rubocop/cop/style/string_literals.rb +1 -1
  168. data/lib/rubocop/cop/style/symbol_array.rb +1 -1
  169. data/lib/rubocop/cop/style/tab.rb +1 -1
  170. data/lib/rubocop/cop/style/trailing_blank_lines.rb +2 -2
  171. data/lib/rubocop/cop/style/trailing_comma.rb +4 -4
  172. data/lib/rubocop/cop/style/trailing_whitespace.rb +1 -1
  173. data/lib/rubocop/cop/style/trivial_accessors.rb +2 -2
  174. data/lib/rubocop/cop/style/unless_else.rb +1 -1
  175. data/lib/rubocop/cop/style/variable_interpolation.rb +1 -1
  176. data/lib/rubocop/cop/style/when_then.rb +1 -1
  177. data/lib/rubocop/cop/style/while_until_do.rb +1 -1
  178. data/lib/rubocop/cop/style/while_until_modifier.rb +2 -1
  179. data/lib/rubocop/cop/style/word_array.rb +2 -2
  180. data/lib/rubocop/cop/team.rb +24 -7
  181. data/lib/rubocop/cop/util.rb +3 -3
  182. data/lib/rubocop/cop/variable_inspector.rb +25 -13
  183. data/lib/rubocop/cop/variable_inspector/assignment.rb +1 -1
  184. data/lib/rubocop/cop/variable_inspector/reference.rb +1 -1
  185. data/lib/rubocop/cop/variable_inspector/scope.rb +1 -1
  186. data/lib/rubocop/cop/variable_inspector/variable.rb +2 -2
  187. data/lib/rubocop/cop/variable_inspector/variable_table.rb +1 -1
  188. data/lib/rubocop/file_inspector.rb +12 -13
  189. data/lib/rubocop/formatter/base_formatter.rb +4 -4
  190. data/lib/rubocop/formatter/clang_style_formatter.rb +2 -2
  191. data/lib/rubocop/formatter/disabled_config_formatter.rb +12 -12
  192. data/lib/rubocop/formatter/emacs_style_formatter.rb +3 -2
  193. data/lib/rubocop/formatter/file_list_formatter.rb +4 -4
  194. data/lib/rubocop/formatter/formatter_set.rb +2 -1
  195. data/lib/rubocop/formatter/fuubar_style_formatter.rb +76 -0
  196. data/lib/rubocop/formatter/json_formatter.rb +17 -16
  197. data/lib/rubocop/formatter/offense_count_formatter.rb +54 -0
  198. data/lib/rubocop/formatter/progress_formatter.rb +16 -16
  199. data/lib/rubocop/formatter/simple_text_formatter.rb +25 -25
  200. data/lib/rubocop/options.rb +8 -7
  201. data/lib/rubocop/processed_source.rb +3 -2
  202. data/lib/rubocop/source_parser.rb +1 -59
  203. data/lib/rubocop/version.rb +3 -3
  204. data/relnotes/0.19.0.md +70 -0
  205. data/rubocop-todo.yml +6 -6
  206. data/rubocop.gemspec +2 -1
  207. data/spec/rubocop/cli_spec.rb +431 -268
  208. data/spec/rubocop/comment_config_spec.rb +103 -0
  209. data/spec/rubocop/config_loader_spec.rb +4 -4
  210. data/spec/rubocop/cop/commissioner_spec.rb +7 -7
  211. data/spec/rubocop/cop/cop_spec.rb +17 -17
  212. data/spec/rubocop/cop/lint/ambiguous_operator_spec.rb +16 -16
  213. data/spec/rubocop/cop/lint/ambiguous_regexp_literal_spec.rb +5 -5
  214. data/spec/rubocop/cop/lint/assignment_in_condition_spec.rb +19 -19
  215. data/spec/rubocop/cop/lint/block_alignment_spec.rb +52 -52
  216. data/spec/rubocop/cop/lint/condition_position_spec.rb +7 -7
  217. data/spec/rubocop/cop/lint/debugger_spec.rb +10 -10
  218. data/spec/rubocop/cop/lint/deprecated_class_methods_spec.rb +33 -0
  219. data/spec/rubocop/cop/lint/else_layout_spec.rb +7 -7
  220. data/spec/rubocop/cop/lint/empty_ensure_spec.rb +4 -4
  221. data/spec/rubocop/cop/lint/end_alignment_spec.rb +33 -34
  222. data/spec/rubocop/cop/lint/end_in_method_spec.rb +5 -5
  223. data/spec/rubocop/cop/lint/ensure_return_spec.rb +4 -4
  224. data/spec/rubocop/cop/lint/eval_spec.rb +8 -8
  225. data/spec/rubocop/cop/lint/handle_exceptions_spec.rb +4 -4
  226. data/spec/rubocop/cop/lint/invalid_character_literal_spec.rb +3 -3
  227. data/spec/rubocop/cop/lint/literal_in_condition_spec.rb +65 -10
  228. data/spec/rubocop/cop/lint/literal_in_interpolation_spec.rb +21 -0
  229. data/spec/rubocop/cop/lint/loop_spec.rb +6 -6
  230. data/spec/rubocop/cop/lint/parentheses_as_grouped_expression_spec.rb +14 -14
  231. data/spec/rubocop/cop/lint/require_parentheses_spec.rb +15 -15
  232. data/spec/rubocop/cop/lint/rescue_exception_spec.rb +21 -21
  233. data/spec/rubocop/cop/lint/shadowing_outer_local_variable_spec.rb +16 -16
  234. data/spec/rubocop/cop/lint/string_conversion_in_interpolation_spec.rb +27 -0
  235. data/spec/rubocop/cop/lint/syntax_spec.rb +11 -11
  236. data/spec/rubocop/cop/lint/unreachable_code_spec.rb +8 -8
  237. data/spec/rubocop/cop/lint/useless_assignment_spec.rb +207 -169
  238. data/spec/rubocop/cop/lint/useless_comparison_spec.rb +5 -5
  239. data/spec/rubocop/cop/lint/useless_else_without_rescue_spec.rb +4 -4
  240. data/spec/rubocop/cop/lint/useless_setter_call_spec.rb +17 -17
  241. data/spec/rubocop/cop/lint/void_spec.rb +8 -8
  242. data/spec/rubocop/cop/{offence_spec.rb → offense_spec.rb} +17 -17
  243. data/spec/rubocop/cop/rails/action_filter_spec.rb +69 -0
  244. data/spec/rubocop/cop/rails/default_scope_spec.rb +9 -9
  245. data/spec/rubocop/cop/rails/has_and_belongs_to_many_spec.rb +2 -2
  246. data/spec/rubocop/cop/rails/output_spec.rb +8 -18
  247. data/spec/rubocop/cop/rails/read_attribute_spec.rb +2 -2
  248. data/spec/rubocop/cop/rails/scope_args_spec.rb +25 -0
  249. data/spec/rubocop/cop/rails/validation_spec.rb +3 -3
  250. data/spec/rubocop/cop/style/access_modifier_indentation_spec.rb +38 -38
  251. data/spec/rubocop/cop/style/accessor_method_name_spec.rb +14 -14
  252. data/spec/rubocop/cop/style/alias_spec.rb +11 -11
  253. data/spec/rubocop/cop/style/align_array_spec.rb +23 -7
  254. data/spec/rubocop/cop/style/align_hash_spec.rb +111 -30
  255. data/spec/rubocop/cop/style/align_parameters_spec.rb +260 -187
  256. data/spec/rubocop/cop/style/and_or_spec.rb +6 -6
  257. data/spec/rubocop/cop/style/ascii_comments_spec.rb +3 -3
  258. data/spec/rubocop/cop/style/ascii_identifiers_spec.rb +5 -5
  259. data/spec/rubocop/cop/style/attr_spec.rb +2 -2
  260. data/spec/rubocop/cop/style/begin_block_spec.rb +2 -2
  261. data/spec/rubocop/cop/style/block_comments_spec.rb +3 -3
  262. data/spec/rubocop/cop/style/block_nesting_spec.rb +26 -26
  263. data/spec/rubocop/cop/style/blocks_spec.rb +8 -8
  264. data/spec/rubocop/cop/style/braces_around_hash_parameters_spec.rb +8 -8
  265. data/spec/rubocop/cop/style/case_equality_spec.rb +2 -2
  266. data/spec/rubocop/cop/style/case_indentation_spec.rb +21 -21
  267. data/spec/rubocop/cop/style/character_literal_spec.rb +6 -6
  268. data/spec/rubocop/cop/style/class_and_module_camel_case_spec.rb +4 -4
  269. data/spec/rubocop/cop/style/class_and_module_children_spec.rb +129 -0
  270. data/spec/rubocop/cop/style/class_length_spec.rb +9 -9
  271. data/spec/rubocop/cop/style/class_methods_spec.rb +8 -8
  272. data/spec/rubocop/cop/style/class_vars_spec.rb +4 -4
  273. data/spec/rubocop/cop/style/collection_methods_spec.rb +6 -6
  274. data/spec/rubocop/cop/style/colon_method_call_spec.rb +16 -16
  275. data/spec/rubocop/cop/style/comment_annotation_spec.rb +16 -16
  276. data/spec/rubocop/cop/style/constant_name_spec.rb +12 -12
  277. data/spec/rubocop/cop/style/cyclomatic_complexity_spec.rb +16 -16
  278. data/spec/rubocop/cop/style/def_with_parentheses_spec.rb +6 -6
  279. data/spec/rubocop/cop/style/documentation_spec.rb +14 -14
  280. data/spec/rubocop/cop/style/dot_position_spec.rb +23 -26
  281. data/spec/rubocop/cop/style/double_negation_spec.rb +22 -0
  282. data/spec/rubocop/cop/style/empty_line_between_defs_spec.rb +22 -14
  283. data/spec/rubocop/cop/style/empty_lines_around_access_modifier_spec.rb +4 -4
  284. data/spec/rubocop/cop/style/empty_lines_around_body_spec.rb +20 -20
  285. data/spec/rubocop/cop/style/empty_lines_spec.rb +17 -6
  286. data/spec/rubocop/cop/style/empty_literal_spec.rb +20 -20
  287. data/spec/rubocop/cop/style/encoding_spec.rb +5 -5
  288. data/spec/rubocop/cop/style/end_block_spec.rb +2 -2
  289. data/spec/rubocop/cop/style/end_of_line_spec.rb +4 -4
  290. data/spec/rubocop/cop/style/even_odd_spec.rb +18 -18
  291. data/spec/rubocop/cop/style/favor_join_spec.rb +7 -7
  292. data/spec/rubocop/cop/style/favor_unless_over_negated_if_spec.rb +7 -7
  293. data/spec/rubocop/cop/style/favor_until_over_negated_while_spec.rb +3 -3
  294. data/spec/rubocop/cop/style/file_name_spec.rb +71 -0
  295. data/spec/rubocop/cop/style/final_newline_spec.rb +4 -4
  296. data/spec/rubocop/cop/style/flip_flop_spec.rb +4 -4
  297. data/spec/rubocop/cop/style/for_spec.rb +13 -13
  298. data/spec/rubocop/cop/style/format_string_spec.rb +136 -0
  299. data/spec/rubocop/cop/style/global_vars_spec.rb +7 -7
  300. data/spec/rubocop/cop/style/hash_methods_spec.rb +6 -6
  301. data/spec/rubocop/cop/style/hash_syntax_spec.rb +11 -11
  302. data/spec/rubocop/cop/style/if_unless_modifier_spec.rb +29 -11
  303. data/spec/rubocop/cop/style/if_with_semicolon_spec.rb +1 -1
  304. data/spec/rubocop/cop/style/indent_array_spec.rb +136 -0
  305. data/spec/rubocop/cop/style/indent_hash_spec.rb +238 -0
  306. data/spec/rubocop/cop/style/indentation_consistency_spec.rb +69 -49
  307. data/spec/rubocop/cop/style/indentation_width_spec.rb +264 -128
  308. data/spec/rubocop/cop/style/lambda_call_spec.rb +14 -14
  309. data/spec/rubocop/cop/style/lambda_spec.rb +7 -7
  310. data/spec/rubocop/cop/style/leading_comment_space_spec.rb +15 -15
  311. data/spec/rubocop/cop/style/line_end_concatenation_spec.rb +11 -4
  312. data/spec/rubocop/cop/style/line_length_spec.rb +5 -5
  313. data/spec/rubocop/cop/style/method_call_parentheses_spec.rb +5 -5
  314. data/spec/rubocop/cop/style/method_called_on_do_end_block_spec.rb +9 -9
  315. data/spec/rubocop/cop/style/method_def_parentheses_spec.rb +19 -19
  316. data/spec/rubocop/cop/style/method_length_spec.rb +17 -17
  317. data/spec/rubocop/cop/style/method_name_spec.rb +21 -21
  318. data/spec/rubocop/cop/style/module_function_spec.rb +3 -3
  319. data/spec/rubocop/cop/style/multiline_block_chain_spec.rb +13 -13
  320. data/spec/rubocop/cop/style/multiline_if_then_spec.rb +10 -10
  321. data/spec/rubocop/cop/style/multiline_ternary_operator_spec.rb +3 -3
  322. data/spec/rubocop/cop/style/nested_ternary_operator_spec.rb +3 -3
  323. data/spec/rubocop/cop/style/nil_comparison_spec.rb +7 -7
  324. data/spec/rubocop/cop/style/not_spec.rb +6 -11
  325. data/spec/rubocop/cop/style/numeric_literals_spec.rb +8 -8
  326. data/spec/rubocop/cop/style/one_line_conditional_spec.rb +1 -1
  327. data/spec/rubocop/cop/style/op_method_spec.rb +13 -13
  328. data/spec/rubocop/cop/style/parameter_lists_spec.rb +6 -6
  329. data/spec/rubocop/cop/style/parentheses_around_condition_spec.rb +11 -10
  330. data/spec/rubocop/cop/style/percent_literal_delimiters_spec.rb +250 -0
  331. data/spec/rubocop/cop/style/perl_backrefs_spec.rb +2 -2
  332. data/spec/rubocop/cop/style/predicate_name_spec.rb +3 -3
  333. data/spec/rubocop/cop/style/proc_spec.rb +4 -4
  334. data/spec/rubocop/cop/style/raise_args_spec.rb +20 -20
  335. data/spec/rubocop/cop/style/redundant_begin_spec.rb +6 -6
  336. data/spec/rubocop/cop/style/redundant_exception_spec.rb +6 -6
  337. data/spec/rubocop/cop/style/redundant_return_spec.rb +22 -22
  338. data/spec/rubocop/cop/style/redundant_self_spec.rb +14 -14
  339. data/spec/rubocop/cop/style/regexp_literal_spec.rb +88 -67
  340. data/spec/rubocop/cop/style/rescue_modifier_spec.rb +17 -17
  341. data/spec/rubocop/cop/style/self_assignment_spec.rb +43 -0
  342. data/spec/rubocop/cop/style/semicolon_spec.rb +31 -17
  343. data/spec/rubocop/cop/style/signal_exception_spec.rb +29 -29
  344. data/spec/rubocop/cop/style/single_line_block_params_spec.rb +6 -6
  345. data/spec/rubocop/cop/style/single_line_methods_spec.rb +44 -6
  346. data/spec/rubocop/cop/style/space_after_colon_spec.rb +1 -1
  347. data/spec/rubocop/cop/style/space_after_comma_spec.rb +3 -3
  348. data/spec/rubocop/cop/style/space_after_control_keyword_spec.rb +12 -12
  349. data/spec/rubocop/cop/style/space_after_method_name_spec.rb +8 -8
  350. data/spec/rubocop/cop/style/space_after_not_spec.rb +3 -3
  351. data/spec/rubocop/cop/style/space_after_semicolon_spec.rb +1 -1
  352. data/spec/rubocop/cop/style/space_around_equals_in_parameter_default_spec.rb +63 -21
  353. data/spec/rubocop/cop/style/space_around_operators_spec.rb +24 -24
  354. data/spec/rubocop/cop/style/space_before_block_braces_spec.rb +72 -0
  355. data/spec/rubocop/cop/style/space_before_modifier_keyword_spec.rb +4 -4
  356. data/spec/rubocop/cop/style/{space_around_block_braces_spec.rb → space_inside_block_braces_spec.rb} +39 -41
  357. data/spec/rubocop/cop/style/space_inside_brackets_spec.rb +1 -1
  358. data/spec/rubocop/cop/style/space_inside_hash_literal_braces_spec.rb +15 -15
  359. data/spec/rubocop/cop/style/space_inside_parens_spec.rb +1 -1
  360. data/spec/rubocop/cop/style/special_global_vars_spec.rb +10 -10
  361. data/spec/rubocop/cop/style/string_literals_spec.rb +31 -31
  362. data/spec/rubocop/cop/style/symbol_array_spec.rb +9 -9
  363. data/spec/rubocop/cop/style/tab_spec.rb +3 -3
  364. data/spec/rubocop/cop/style/trailing_blank_lines_spec.rb +3 -3
  365. data/spec/rubocop/cop/style/trailing_comma_spec.rb +32 -32
  366. data/spec/rubocop/cop/style/trailing_whitespace_spec.rb +5 -5
  367. data/spec/rubocop/cop/style/trivial_accessors_spec.rb +39 -39
  368. data/spec/rubocop/cop/style/unless_else_spec.rb +1 -1
  369. data/spec/rubocop/cop/style/variable_interpolation_spec.rb +12 -12
  370. data/spec/rubocop/cop/style/variable_name_spec.rb +21 -21
  371. data/spec/rubocop/cop/style/when_then_spec.rb +1 -1
  372. data/spec/rubocop/cop/style/while_until_do_spec.rb +8 -8
  373. data/spec/rubocop/cop/style/while_until_modifier_spec.rb +25 -7
  374. data/spec/rubocop/cop/style/word_array_spec.rb +23 -23
  375. data/spec/rubocop/cop/team_spec.rb +14 -14
  376. data/spec/rubocop/file_inspector_spec.rb +14 -12
  377. data/spec/rubocop/formatter/base_formatter_spec.rb +19 -19
  378. data/spec/rubocop/formatter/clang_style_formatter_spec.rb +14 -14
  379. data/spec/rubocop/formatter/disabled_config_formatter_spec.rb +7 -7
  380. data/spec/rubocop/formatter/emacs_style_formatter_spec.rb +7 -7
  381. data/spec/rubocop/formatter/file_list_formatter_spec.rb +4 -4
  382. data/spec/rubocop/formatter/fuubar_style_formatter_spec.rb +129 -0
  383. data/spec/rubocop/formatter/json_formatter_spec.rb +23 -19
  384. data/spec/rubocop/formatter/offense_count_formatter_spec.rb +77 -0
  385. data/spec/rubocop/formatter/progress_formatter_spec.rb +27 -27
  386. data/spec/rubocop/formatter/simple_text_formatter_spec.rb +16 -16
  387. data/spec/rubocop/options_spec.rb +7 -8
  388. data/spec/rubocop/source_parser_spec.rb +0 -54
  389. data/spec/spec_helper.rb +11 -7
  390. data/spec/support/file_helper.rb +1 -1
  391. data/spec/support/mri_syntax_checker.rb +4 -4
  392. data/spec/support/shared_examples.rb +6 -6
  393. data/spec/support/statement_modifier_helper.rb +3 -3
  394. metadata +76 -16
  395. data/lib/rubocop/cop/style/favor_sprintf.rb +0 -26
  396. data/lib/rubocop/formatter/offence_count_formatter.rb +0 -49
  397. data/spec/rubocop/cop/style/favor_sprintf_spec.rb +0 -47
  398. data/spec/rubocop/formatter/offence_count_formatter_spec.rb +0 -52
@@ -22,8 +22,8 @@ describe Rubocop::Cop::Style::SingleLineBlockParams, :config do
22
22
  ' [0, 1].reduce(5) { |c, d| c + d }',
23
23
  ' ala.test { |x, z| bala }',
24
24
  'end'])
25
- expect(cop.offences.size).to eq(7)
26
- expect(cop.offences.map(&:line).sort).to eq((2..8).to_a)
25
+ expect(cop.offenses.size).to eq(7)
26
+ expect(cop.offenses.map(&:line).sort).to eq((2..8).to_a)
27
27
  end
28
28
 
29
29
  it 'allows calls with proper argument names' do
@@ -37,7 +37,7 @@ describe Rubocop::Cop::Style::SingleLineBlockParams, :config do
37
37
  ' [0, 1].reduce(5) { |a, e| a + e }',
38
38
  ' ala.test { |x, y| bala }',
39
39
  'end'])
40
- expect(cop.offences).to be_empty
40
+ expect(cop.offenses).to be_empty
41
41
  end
42
42
 
43
43
  it 'ignores do..end blocks' do
@@ -47,7 +47,7 @@ describe Rubocop::Cop::Style::SingleLineBlockParams, :config do
47
47
  ' c + d',
48
48
  ' end',
49
49
  'end'])
50
- expect(cop.offences).to be_empty
50
+ expect(cop.offenses).to be_empty
51
51
  end
52
52
 
53
53
  it 'ignores :reduce symbols' do
@@ -55,7 +55,7 @@ describe Rubocop::Cop::Style::SingleLineBlockParams, :config do
55
55
  ['def m',
56
56
  ' call_method(:reduce) { |a, b| a + b}',
57
57
  'end'])
58
- expect(cop.offences).to be_empty
58
+ expect(cop.offenses).to be_empty
59
59
  end
60
60
 
61
61
  it 'does not report when destructuring is used' do
@@ -63,6 +63,6 @@ describe Rubocop::Cop::Style::SingleLineBlockParams, :config do
63
63
  ['def m',
64
64
  ' test.reduce { |a, (id, _)| a + id}',
65
65
  'end'])
66
- expect(cop.offences).to be_empty
66
+ expect(cop.offenses).to be_empty
67
67
  end
68
68
  end
@@ -6,7 +6,7 @@ describe Rubocop::Cop::Style::SingleLineMethods, :config do
6
6
  subject(:cop) { described_class.new(config) }
7
7
  let(:cop_config) { { 'AllowIfMethodIsEmpty' => true } }
8
8
 
9
- it 'registers an offence for a single-line method' do
9
+ it 'registers an offense for a single-line method' do
10
10
  inspect_source(cop,
11
11
  ['def some_method; body end',
12
12
  'def link_to(name, url); {:name => name}; end',
@@ -18,11 +18,11 @@ describe Rubocop::Cop::Style::SingleLineMethods, :config do
18
18
  context 'when AllowIfMethodIsEmpty is disabled' do
19
19
  let(:cop_config) { { 'AllowIfMethodIsEmpty' => false } }
20
20
 
21
- it 'registers an offence for an empty method' do
21
+ it 'registers an offense for an empty method' do
22
22
  inspect_source(cop, ['def no_op; end',
23
23
  'def self.resource_class=(klass); end',
24
24
  'def @table.columns; end'])
25
- expect(cop.offences.size).to eq(3)
25
+ expect(cop.offenses.size).to eq(3)
26
26
  end
27
27
  end
28
28
 
@@ -33,7 +33,7 @@ describe Rubocop::Cop::Style::SingleLineMethods, :config do
33
33
  inspect_source(cop, ['def no_op; end',
34
34
  'def self.resource_class=(klass); end',
35
35
  'def @table.columns; end'])
36
- expect(cop.offences).to be_empty
36
+ expect(cop.offenses).to be_empty
37
37
  end
38
38
  end
39
39
 
@@ -41,12 +41,50 @@ describe Rubocop::Cop::Style::SingleLineMethods, :config do
41
41
  inspect_source(cop, ['def some_method',
42
42
  ' body',
43
43
  'end'])
44
- expect(cop.offences).to be_empty
44
+ expect(cop.offenses).to be_empty
45
45
  end
46
46
 
47
47
  it 'does not crash on an method with a capitalized name' do
48
48
  inspect_source(cop, ['def NoSnakeCase',
49
49
  'end'])
50
- expect(cop.offences).to be_empty
50
+ expect(cop.offenses).to be_empty
51
+ end
52
+
53
+ it 'auto-corrects def with semicolon after method name' do
54
+ corrected = autocorrect_source(cop,
55
+ [' def some_method; body end # Cmnt'])
56
+ expect(corrected).to eq [' # Cmnt',
57
+ ' def some_method; ',
58
+ ' body ',
59
+ ' end '].join("\n")
60
+ end
61
+
62
+ it 'auto-corrects defs with parentheses after method name' do
63
+ corrected = autocorrect_source(cop, [' def self.some_method() body end'])
64
+ expect(corrected).to eq [' def self.some_method() ',
65
+ ' body ',
66
+ ' end'].join("\n")
67
+ end
68
+
69
+ it 'auto-corrects def with argument in parentheses' do
70
+ corrected = autocorrect_source(cop, [' def some_method(arg) body end'])
71
+ expect(corrected).to eq [' def some_method(arg) ',
72
+ ' body ',
73
+ ' end'].join("\n")
74
+ end
75
+
76
+ it 'auto-corrects def with argument and no parentheses' do
77
+ corrected = autocorrect_source(cop, [' def some_method arg; body end'])
78
+ expect(corrected).to eq [' def some_method arg; ',
79
+ ' body ',
80
+ ' end'].join("\n")
81
+ end
82
+
83
+ it 'auto-corrects def with semicolon before end' do
84
+ corrected = autocorrect_source(cop, [' def some_method; b1; b2; end'])
85
+ expect(corrected).to eq [' def some_method; ',
86
+ ' b1; ',
87
+ ' b2; ',
88
+ ' end'].join("\n")
51
89
  end
52
90
  end
@@ -5,7 +5,7 @@ require 'spec_helper'
5
5
  describe Rubocop::Cop::Style::SpaceAfterColon do
6
6
  subject(:cop) { described_class.new }
7
7
 
8
- it 'registers an offence for colon without space after it' do
8
+ it 'registers an offense for colon without space after it' do
9
9
  # TODO: There is double reporting of the last colon (also from
10
10
  # SpaceAroundOperators).
11
11
  inspect_source(cop, ['x = w ? {a:3}:4'])
@@ -5,19 +5,19 @@ require 'spec_helper'
5
5
  describe Rubocop::Cop::Style::SpaceAfterComma do
6
6
  subject(:cop) { described_class.new }
7
7
 
8
- it 'registers an offence for block argument commas without space' do
8
+ it 'registers an offense for block argument commas without space' do
9
9
  inspect_source(cop, ['each { |s,t| }'])
10
10
  expect(cop.messages).to eq(
11
11
  ['Space missing after comma.'])
12
12
  end
13
13
 
14
- it 'registers an offence for array index commas without space' do
14
+ it 'registers an offense for array index commas without space' do
15
15
  inspect_source(cop, ['formats[0,1]'])
16
16
  expect(cop.messages).to eq(
17
17
  ['Space missing after comma.'])
18
18
  end
19
19
 
20
- it 'registers an offence for method call arg commas without space' do
20
+ it 'registers an offense for method call arg commas without space' do
21
21
  inspect_source(cop, ['a(1,2)'])
22
22
  expect(cop.messages).to eq(
23
23
  ['Space missing after comma.'])
@@ -5,52 +5,52 @@ require 'spec_helper'
5
5
  describe Rubocop::Cop::Style::SpaceAfterControlKeyword do
6
6
  subject(:cop) { described_class.new }
7
7
 
8
- it 'registers an offence for normal if' do
8
+ it 'registers an offense for normal if' do
9
9
  inspect_source(cop,
10
10
  ['if(test) then result end'])
11
- expect(cop.offences.size).to eq(1)
11
+ expect(cop.offenses.size).to eq(1)
12
12
  end
13
13
 
14
- it 'registers an offence for modifier unless' do
14
+ it 'registers an offense for modifier unless' do
15
15
  inspect_source(cop, ['action unless(test)'])
16
16
 
17
- expect(cop.offences.size).to eq(1)
17
+ expect(cop.offenses.size).to eq(1)
18
18
  end
19
19
 
20
20
  it 'does not get confused by keywords' do
21
21
  inspect_source(cop, ['[:if, :unless].action'])
22
- expect(cop.offences).to be_empty
22
+ expect(cop.offenses).to be_empty
23
23
  end
24
24
 
25
25
  it 'does not get confused by the ternary operator' do
26
26
  inspect_source(cop, ['a ? b : c'])
27
- expect(cop.offences).to be_empty
27
+ expect(cop.offenses).to be_empty
28
28
  end
29
29
 
30
- it 'registers an offence for if, elsif, and unless' do
30
+ it 'registers an offense for if, elsif, and unless' do
31
31
  inspect_source(cop,
32
32
  ['if(a)',
33
33
  'elsif(b)',
34
34
  ' unless(c)',
35
35
  ' end',
36
36
  'end'])
37
- expect(cop.offences.map(&:line)).to eq([1, 2, 3])
37
+ expect(cop.offenses.map(&:line)).to eq([1, 2, 3])
38
38
  end
39
39
 
40
- it 'registers an offence for case and when' do
40
+ it 'registers an offense for case and when' do
41
41
  inspect_source(cop,
42
42
  ['case(a)',
43
43
  'when(0) then 1',
44
44
  'end'])
45
- expect(cop.offences.map(&:line)).to eq([1, 2])
45
+ expect(cop.offenses.map(&:line)).to eq([1, 2])
46
46
  end
47
47
 
48
- it 'registers an offence for while and until' do
48
+ it 'registers an offense for while and until' do
49
49
  inspect_source(cop,
50
50
  ['while(a)',
51
51
  ' b until(c)',
52
52
  'end'])
53
- expect(cop.offences.map(&:line)).to eq([1, 2])
53
+ expect(cop.offenses.map(&:line)).to eq([1, 2])
54
54
  end
55
55
 
56
56
  it 'auto-corrects missing space' do
@@ -5,20 +5,20 @@ require 'spec_helper'
5
5
  describe Rubocop::Cop::Style::SpaceAfterMethodName do
6
6
  subject(:cop) { described_class.new }
7
7
 
8
- it 'registers an offence for def with space before the parenthesis' do
8
+ it 'registers an offense for def with space before the parenthesis' do
9
9
  inspect_source(cop,
10
10
  ['def func (x)',
11
11
  ' a',
12
12
  'end'])
13
- expect(cop.offences.size).to eq(1)
13
+ expect(cop.offenses.size).to eq(1)
14
14
  end
15
15
 
16
- it 'registers an offence for defs with space before the parenthesis' do
16
+ it 'registers an offense for defs with space before the parenthesis' do
17
17
  inspect_source(cop,
18
18
  ['def self.func (x)',
19
19
  ' a',
20
20
  'end'])
21
- expect(cop.offences.size).to eq(1)
21
+ expect(cop.offenses.size).to eq(1)
22
22
  end
23
23
 
24
24
  it 'accepts a def without arguments' do
@@ -26,7 +26,7 @@ describe Rubocop::Cop::Style::SpaceAfterMethodName do
26
26
  ['def func',
27
27
  ' a',
28
28
  'end'])
29
- expect(cop.offences).to be_empty
29
+ expect(cop.offenses).to be_empty
30
30
  end
31
31
 
32
32
  it 'accepts a defs without arguments' do
@@ -34,7 +34,7 @@ describe Rubocop::Cop::Style::SpaceAfterMethodName do
34
34
  ['def self.func',
35
35
  ' a',
36
36
  'end'])
37
- expect(cop.offences).to be_empty
37
+ expect(cop.offenses).to be_empty
38
38
  end
39
39
 
40
40
  it 'accepts a def with arguments but no parentheses' do
@@ -42,7 +42,7 @@ describe Rubocop::Cop::Style::SpaceAfterMethodName do
42
42
  ['def func x',
43
43
  ' a',
44
44
  'end'])
45
- expect(cop.offences).to be_empty
45
+ expect(cop.offenses).to be_empty
46
46
  end
47
47
 
48
48
  it 'accepts a defs with arguments but no parentheses' do
@@ -50,7 +50,7 @@ describe Rubocop::Cop::Style::SpaceAfterMethodName do
50
50
  ['def self.func x',
51
51
  ' a',
52
52
  'end'])
53
- expect(cop.offences).to be_empty
53
+ expect(cop.offenses).to be_empty
54
54
  end
55
55
 
56
56
  it 'auto-corrects unwanted space' do
@@ -5,14 +5,14 @@ require 'spec_helper'
5
5
  describe Rubocop::Cop::Style::SpaceAfterNot do
6
6
  subject(:cop) { described_class.new }
7
7
 
8
- it 'reports an offence for space after !' do
8
+ it 'reports an offense for space after !' do
9
9
  inspect_source(cop, ['! something'])
10
- expect(cop.offences.size).to eq(1)
10
+ expect(cop.offenses.size).to eq(1)
11
11
  end
12
12
 
13
13
  it 'accepts no space after !' do
14
14
  inspect_source(cop, ['!something'])
15
- expect(cop.offences).to be_empty
15
+ expect(cop.offenses).to be_empty
16
16
  end
17
17
 
18
18
  it 'auto-corrects by removing redundant space' do
@@ -5,7 +5,7 @@ require 'spec_helper'
5
5
  describe Rubocop::Cop::Style::SpaceAfterSemicolon do
6
6
  subject(:cop) { described_class.new }
7
7
 
8
- it 'registers an offence for semicolon without space after it' do
8
+ it 'registers an offense for semicolon without space after it' do
9
9
  inspect_source(cop, ['x = 1;y = 2'])
10
10
  expect(cop.messages).to eq(
11
11
  ['Space missing after semicolon.'])
@@ -2,32 +2,74 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- describe Rubocop::Cop::Style::SpaceAroundEqualsInParameterDefault do
6
- subject(:cop) { described_class.new }
5
+ describe Rubocop::Cop::Style::SpaceAroundEqualsInParameterDefault, :config do
6
+ subject(:cop) { described_class.new(config) }
7
7
 
8
- it 'registers an offence for default value assignment without space' do
9
- inspect_source(cop, ['def f(x, y=0, z=1)', 'end'])
10
- expect(cop.messages).to eq(
11
- ['Surrounding space missing in default value assignment.'] * 2)
12
- end
8
+ context 'when EnforcedStyle is space' do
9
+ let(:cop_config) { { 'EnforcedStyle' => 'space' } }
13
10
 
14
- it 'registers an offence for assignment empty string without space' do
15
- inspect_source(cop, ['def f(x, y="", z=1)', 'end'])
16
- expect(cop.offences.size).to eq(2)
17
- end
11
+ it 'registers an offense for default value assignment without space' do
12
+ inspect_source(cop, ['def f(x, y=0, z= 1)', 'end'])
13
+ expect(cop.messages)
14
+ .to eq(['Surrounding space missing in default value assignment.'] * 2)
15
+ expect(cop.highlights).to eq(['=', '= '])
16
+ expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
17
+ end
18
18
 
19
- it 'registers an offence for assignment of empty list without space' do
20
- inspect_source(cop, ['def f(x, y=[])', 'end'])
21
- expect(cop.offences.size).to eq(1)
22
- end
19
+ it 'registers an offense for assignment empty string without space' do
20
+ inspect_source(cop, ['def f(x, y="", z=1)', 'end'])
21
+ expect(cop.offenses.size).to eq(2)
22
+ expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' => 'no_space')
23
+ end
24
+
25
+ it 'registers an offense for assignment of empty list without space' do
26
+ inspect_source(cop, ['def f(x, y=[])', 'end'])
27
+ expect(cop.offenses.size).to eq(1)
28
+ end
29
+
30
+ it 'accepts default value assignment with space' do
31
+ inspect_source(cop, ['def f(x, y = 0, z = {})', 'end'])
32
+ expect(cop.messages).to be_empty
33
+ end
23
34
 
24
- it 'accepts default value assignment with space' do
25
- inspect_source(cop, ['def f(x, y = 0, z = {})', 'end'])
26
- expect(cop.messages).to be_empty
35
+ it 'auto-corrects missing space' do
36
+ new_source = autocorrect_source(cop, ['def f(x, y=0, z=1)', 'end'])
37
+ expect(new_source).to eq(['def f(x, y = 0, z = 1)', 'end'].join("\n"))
38
+ end
27
39
  end
28
40
 
29
- it 'auto-corrects missing space' do
30
- new_source = autocorrect_source(cop, ['def f(x, y=0, z=1)', 'end'])
31
- expect(new_source).to eq(['def f(x, y = 0, z = 1)', 'end'].join("\n"))
41
+ context 'when EnforcedStyle is no_space' do
42
+ let(:cop_config) { { 'EnforcedStyle' => 'no_space' } }
43
+
44
+ it 'registers an offense for default value assignment with space' do
45
+ inspect_source(cop, ['def f(x, y = 0, z =1, w= 2)', 'end'])
46
+ expect(cop.messages)
47
+ .to eq(['Surrounding space detected in default value assignment.'] * 3)
48
+ expect(cop.highlights).to eq([' = ', ' =', '= '])
49
+ expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
50
+ end
51
+
52
+ it 'registers an offense for assignment empty string with space' do
53
+ inspect_source(cop, ['def f(x, y = "", z = 1)', 'end'])
54
+ expect(cop.offenses.size).to eq(2)
55
+ expect(cop.config_to_allow_offenses).to eq('EnforcedStyle' => 'space')
56
+ end
57
+
58
+ it 'registers an offense for assignment of empty list with space' do
59
+ inspect_source(cop, ['def f(x, y = [])', 'end'])
60
+ expect(cop.offenses.size).to eq(1)
61
+ end
62
+
63
+ it 'accepts default value assignment without space' do
64
+ inspect_source(cop, ['def f(x, y=0, z={})', 'end'])
65
+ expect(cop.messages).to be_empty
66
+ end
67
+
68
+ it 'auto-corrects unwanted space' do
69
+ new_source = autocorrect_source(cop, ['def f(x, y = 0, z= 1, w= 2)',
70
+ 'end'])
71
+ expect(new_source).to eq(['def f(x, y=0, z=1, w=2)',
72
+ 'end'].join("\n"))
73
+ end
32
74
  end
33
75
  end
@@ -5,7 +5,7 @@ require 'spec_helper'
5
5
  describe Rubocop::Cop::Style::SpaceAroundOperators do
6
6
  subject(:cop) { described_class.new }
7
7
 
8
- it 'registers an offence for assignment without space on both sides' do
8
+ it 'registers an offense for assignment without space on both sides' do
9
9
  inspect_source(cop, ['x=0', 'y= 0', 'z =0'])
10
10
  expect(cop.messages).to eq(
11
11
  ["Surrounding space missing for operator '='."] * 3)
@@ -16,7 +16,7 @@ describe Rubocop::Cop::Style::SpaceAroundOperators do
16
16
  expect(new_source).to eq(['x = 0', 'y = 0', 'z = 0'].join("\n"))
17
17
  end
18
18
 
19
- it 'registers an offence for ternary operator without space' do
19
+ it 'registers an offense for ternary operator without space' do
20
20
  inspect_source(cop, ['x == 0?1:2'])
21
21
  expect(cop.messages).to eq(
22
22
  ["Surrounding space missing for operator '?'.",
@@ -28,19 +28,19 @@ describe Rubocop::Cop::Style::SpaceAroundOperators do
28
28
  expect(new_source).to eq('x == 0 ? 1 : 2')
29
29
  end
30
30
 
31
- it 'registers an offence in presence of modifier if statement' do
31
+ it 'registers an offense in presence of modifier if statement' do
32
32
  check_modifier('if')
33
33
  end
34
34
 
35
- it 'registers an offence in presence of modifier unless statement' do
35
+ it 'registers an offense in presence of modifier unless statement' do
36
36
  check_modifier('unless')
37
37
  end
38
38
 
39
- it 'registers an offence in presence of modifier while statement' do
39
+ it 'registers an offense in presence of modifier while statement' do
40
40
  check_modifier('unless')
41
41
  end
42
42
 
43
- it 'registers an offence in presence of modifier until statement' do
43
+ it 'registers an offense in presence of modifier until statement' do
44
44
  check_modifier('unless')
45
45
  end
46
46
 
@@ -48,7 +48,7 @@ describe Rubocop::Cop::Style::SpaceAroundOperators do
48
48
  src = ["a=1 #{keyword} condition",
49
49
  'c=2']
50
50
  inspect_source(cop, src)
51
- expect(cop.offences.map(&:line)).to eq([1, 2])
51
+ expect(cop.offenses.map(&:line)).to eq([1, 2])
52
52
  expect(cop.messages).to eq(
53
53
  ["Surrounding space missing for operator '='."] * 2)
54
54
 
@@ -57,7 +57,7 @@ describe Rubocop::Cop::Style::SpaceAroundOperators do
57
57
  .to eq(src.map { |line| line.sub(/=/, ' = ') }.join("\n"))
58
58
  end
59
59
 
60
- it 'registers an offence for binary operators that could be unary' do
60
+ it 'registers an offense for binary operators that could be unary' do
61
61
  inspect_source(cop, ['a-3', 'x&0xff', 'z+0'])
62
62
  expect(cop.messages).to eq(
63
63
  ["Surrounding space missing for operator '-'.",
@@ -70,7 +70,7 @@ describe Rubocop::Cop::Style::SpaceAroundOperators do
70
70
  expect(new_source).to eq(['a - 3', 'x & 0xff', 'z + 0'].join("\n"))
71
71
  end
72
72
 
73
- it 'registers an offence for arguments to a method' do
73
+ it 'registers an offense for arguments to a method' do
74
74
  inspect_source(cop, ['puts 1+2'])
75
75
  expect(cop.messages).to eq(
76
76
  ["Surrounding space missing for operator '+'."])
@@ -118,7 +118,7 @@ describe Rubocop::Cop::Style::SpaceAroundOperators do
118
118
  inspect_source(cop, [' def !',
119
119
  ' !__getobj__',
120
120
  ' end'])
121
- expect(cop.offences).to be_empty
121
+ expect(cop.offenses).to be_empty
122
122
  expect(cop.messages).to be_empty
123
123
  end
124
124
 
@@ -161,15 +161,15 @@ describe Rubocop::Cop::Style::SpaceAroundOperators do
161
161
 
162
162
  it 'accepts an assignment with spaces' do
163
163
  inspect_source(cop, ['x = 0'])
164
- expect(cop.offences).to be_empty
164
+ expect(cop.offenses).to be_empty
165
165
  end
166
166
 
167
167
  it 'accepts an operator called with method syntax' do
168
168
  inspect_source(cop, ['Date.today.+(1).to_s'])
169
- expect(cop.offences).to be_empty
169
+ expect(cop.offenses).to be_empty
170
170
  end
171
171
 
172
- it 'registers an offence for operators without spaces' do
172
+ it 'registers an offense for operators without spaces' do
173
173
  inspect_source(cop,
174
174
  ['x+= a+b-c*d/e%f^g|h&i||j',
175
175
  'y -=k&&l'])
@@ -211,10 +211,10 @@ describe Rubocop::Cop::Style::SpaceAroundOperators do
211
211
 
212
212
  it 'accepts an assignment followed by newline' do
213
213
  inspect_source(cop, ['x =', '0'])
214
- expect(cop.offences).to be_empty
214
+ expect(cop.offenses).to be_empty
215
215
  end
216
216
 
217
- it 'registers an offences for exponent operator with spaces' do
217
+ it 'registers an offenses for exponent operator with spaces' do
218
218
  inspect_source(cop, ['x = a * b ** 2'])
219
219
  expect(cop.messages).to eq(
220
220
  ['Space around operator ** detected.'])
@@ -229,16 +229,16 @@ describe Rubocop::Cop::Style::SpaceAroundOperators do
229
229
 
230
230
  it 'accepts exponent operator without spaces' do
231
231
  inspect_source(cop, ['x = a * b**2'])
232
- expect(cop.offences).to be_empty
232
+ expect(cop.offenses).to be_empty
233
233
  end
234
234
 
235
- it 'registers an offence for a setter call without spaces' do
235
+ it 'registers an offense for a setter call without spaces' do
236
236
  inspect_source(cop, ['x.y=2'])
237
237
  expect(cop.messages).to eq(
238
238
  ["Surrounding space missing for operator '='."])
239
239
  end
240
240
 
241
- it 'registers an offence for a hash rocket without spaces' do
241
+ it 'registers an offense for a hash rocket without spaces' do
242
242
  inspect_source(cop, ['{ 1=>2, a: b }'])
243
243
  expect(cop.messages).to eq(
244
244
  ["Surrounding space missing for operator '=>'."])
@@ -272,14 +272,14 @@ describe Rubocop::Cop::Style::SpaceAroundOperators do
272
272
  expect(cop.messages).to be_empty
273
273
  end
274
274
 
275
- it 'registers an offence for match operators without space' do
275
+ it 'registers an offense for match operators without space' do
276
276
  inspect_source(cop, ['x=~/abc/', 'y !~/abc/'])
277
277
  expect(cop.messages)
278
278
  .to eq(["Surrounding space missing for operator '=~'.",
279
279
  "Surrounding space missing for operator '!~'."])
280
280
  end
281
281
 
282
- it 'registers an offence for various assignments without space' do
282
+ it 'registers an offense for various assignments without space' do
283
283
  inspect_source(cop, ['x||=0', 'y&&=0', 'z*=2',
284
284
  '@a=0', '@@a=0', 'a,b=0', 'A=0', 'x[3]=0', '$A=0'])
285
285
  expect(cop.messages)
@@ -294,7 +294,7 @@ describe Rubocop::Cop::Style::SpaceAroundOperators do
294
294
  "Surrounding space missing for operator '='."])
295
295
  end
296
296
 
297
- it 'registers an offence for equality operators without space' do
297
+ it 'registers an offense for equality operators without space' do
298
298
  inspect_source(cop, ['x==0', 'y!=0', 'Hash===z'])
299
299
  expect(cop.messages)
300
300
  .to eq(["Surrounding space missing for operator '=='.",
@@ -302,20 +302,20 @@ describe Rubocop::Cop::Style::SpaceAroundOperators do
302
302
  "Surrounding space missing for operator '==='."])
303
303
  end
304
304
 
305
- it 'registers an offence for - without space with negative lhs operand' do
305
+ it 'registers an offense for - without space with negative lhs operand' do
306
306
  inspect_source(cop, ['-1-arg'])
307
307
  expect(cop.messages)
308
308
  .to eq(["Surrounding space missing for operator '-'."])
309
309
  end
310
310
 
311
- it 'registers an offence for inheritance < without space' do
311
+ it 'registers an offense for inheritance < without space' do
312
312
  inspect_source(cop, ['class ShowSourceTestClass<ShowSourceTestSuperClass',
313
313
  'end'])
314
314
  expect(cop.messages)
315
315
  .to eq(["Surrounding space missing for operator '<'."])
316
316
  end
317
317
 
318
- it 'registers an offence for hash rocket without space at rescue' do
318
+ it 'registers an offense for hash rocket without space at rescue' do
319
319
  inspect_source(cop, ['begin',
320
320
  'rescue Exception=>e',
321
321
  'end'])