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
@@ -0,0 +1,238 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Rubocop::Cop::Style::IndentHash, :config do
6
+ subject(:cop) { described_class.new(config) }
7
+ let(:cop_config) { { 'EnforcedStyle' => 'special_inside_parentheses' } }
8
+
9
+ context 'when hash is operand' do
10
+ it 'accepts correctly indented first pair' do
11
+ inspect_source(cop,
12
+ ['a << {',
13
+ ' a: 1',
14
+ '}'])
15
+ expect(cop.offenses).to be_empty
16
+ end
17
+
18
+ it 'registers an offense for incorrectly indented first pair' do
19
+ inspect_source(cop,
20
+ ['a << {',
21
+ ' a: 1',
22
+ '}'])
23
+ expect(cop.highlights).to eq(['a: 1'])
24
+ expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
25
+ end
26
+
27
+ it 'auto-corrects incorrectly indented first pair' do
28
+ corrected = autocorrect_source(cop, ['a << {',
29
+ ' a: 1',
30
+ '}'])
31
+ expect(corrected).to eq ['a << {',
32
+ ' a: 1',
33
+ '}'].join("\n")
34
+ end
35
+ end
36
+
37
+ context 'when hash is argument to setter' do
38
+ it 'accepts correctly indented first pair' do
39
+ inspect_source(cop,
40
+ [' config.rack_cache = {',
41
+ ' :metastore => "rails:/",',
42
+ ' :entitystore => "rails:/",',
43
+ ' :verbose => false',
44
+ ' }'])
45
+ expect(cop.offenses).to be_empty
46
+ end
47
+
48
+ it 'registers an offense for incorrectly indented first pair' do
49
+ inspect_source(cop,
50
+ [' config.rack_cache = {',
51
+ ' :metastore => "rails:/",',
52
+ ' :entitystore => "rails:/",',
53
+ ' :verbose => false',
54
+ ' }'])
55
+ expect(cop.highlights).to eq([':metastore => "rails:/"'])
56
+ expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
57
+ end
58
+ end
59
+
60
+ context 'when hash is right hand side in assignment' do
61
+ it 'registers an offense for incorrectly indented first pair' do
62
+ inspect_source(cop, ['a = {',
63
+ ' a: 1,',
64
+ ' b: 2,',
65
+ ' c: 3',
66
+ '}'])
67
+ expect(cop.messages)
68
+ .to eq(['Use 2 spaces for indentation in a hash, relative to the ' \
69
+ 'start of the line where the left curly brace is.'])
70
+ expect(cop.highlights).to eq(['a: 1'])
71
+ expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
72
+ end
73
+
74
+ it 'auto-corrects incorrectly indented first pair' do
75
+ corrected = autocorrect_source(cop, ['a = {',
76
+ ' a: 1,',
77
+ ' b: 2,',
78
+ ' c: 3',
79
+ '}'])
80
+ expect(corrected).to eq ['a = {',
81
+ ' a: 1,',
82
+ ' b: 2,',
83
+ ' c: 3',
84
+ '}'].join("\n")
85
+ end
86
+
87
+ it 'accepts correctly indented first pair' do
88
+ inspect_source(cop,
89
+ ['a = {',
90
+ ' a: 1',
91
+ '}'])
92
+ expect(cop.offenses).to be_empty
93
+ end
94
+
95
+ it 'accepts several pairs per line' do
96
+ inspect_source(cop,
97
+ ['a = {',
98
+ ' a: 1, b: 2',
99
+ '}'])
100
+ expect(cop.offenses).to be_empty
101
+ end
102
+
103
+ it 'accepts a first pair on the same line as the left brace' do
104
+ inspect_source(cop,
105
+ ['a = { "a" => 1,',
106
+ ' "b" => 2 }'])
107
+ expect(cop.offenses).to be_empty
108
+ end
109
+
110
+ it 'accepts single line hash' do
111
+ inspect_source(cop,
112
+ ['a = { a: 1, b: 2 }'])
113
+ expect(cop.offenses).to be_empty
114
+ end
115
+
116
+ it 'accepts an empty hash' do
117
+ inspect_source(cop,
118
+ ['a = {}'])
119
+ expect(cop.offenses).to be_empty
120
+ end
121
+ end
122
+
123
+ context 'when hash is method argument' do
124
+ context 'and arguments are surrounded by parentheses' do
125
+ context 'and EnforcedStyle is special_inside_parentheses' do
126
+ it 'accepts special indentation for first argument' do
127
+ inspect_source(cop,
128
+ ['func({',
129
+ ' a: 1',
130
+ ' })'])
131
+ expect(cop.offenses).to be_empty
132
+ end
133
+
134
+ it 'registers an offense for incorrect indentation' do
135
+ inspect_source(cop,
136
+ ['func({',
137
+ ' a: 1',
138
+ '})'])
139
+ expect(cop.messages)
140
+ .to eq(['Use 2 spaces for indentation in a hash, relative to the' \
141
+ ' first position after the preceding left parenthesis.'])
142
+ expect(cop.config_to_allow_offenses)
143
+ .to eq('EnforcedStyle' => 'consistent')
144
+ end
145
+
146
+ it 'auto-corrects incorrectly indented first pair' do
147
+ corrected = autocorrect_source(cop, ['func({',
148
+ ' a: 1',
149
+ '})'])
150
+ expect(corrected).to eq ['func({',
151
+ ' a: 1',
152
+ '})'].join("\n")
153
+ end
154
+
155
+ it 'accepts special indentation for second argument' do
156
+ inspect_source(cop,
157
+ ['body.should have_tag("input", :attributes => {',
158
+ ' :name => /q\[(id_eq)\]/ })'])
159
+ expect(cop.offenses).to be_empty
160
+ end
161
+
162
+ it 'accepts normal indentation for hash within hash' do
163
+ inspect_source(cop,
164
+ ['scope = scope.where(',
165
+ ' klass.table_name => {',
166
+ ' reflection.type => model.base_class.sti_name',
167
+ ' }',
168
+ ')'])
169
+ expect(cop.offenses).to be_empty
170
+ end
171
+ end
172
+
173
+ context 'and EnforcedStyle is consistent' do
174
+ let(:cop_config) { { 'EnforcedStyle' => 'consistent' } }
175
+
176
+ it 'accepts normal indentation for first argument' do
177
+ inspect_source(cop,
178
+ ['func({',
179
+ ' a: 1',
180
+ '})'])
181
+ expect(cop.offenses).to be_empty
182
+ end
183
+
184
+ it 'registers an offense for incorrect indentation' do
185
+ inspect_source(cop,
186
+ ['func({',
187
+ ' a: 1',
188
+ ' })'])
189
+ expect(cop.messages)
190
+ .to eq(['Use 2 spaces for indentation in a hash, relative to the' \
191
+ ' start of the line where the left curly brace is.'])
192
+ expect(cop.config_to_allow_offenses)
193
+ .to eq('EnforcedStyle' => 'special_inside_parentheses')
194
+ end
195
+
196
+ it 'accepts normal indentation for second argument' do
197
+ inspect_source(cop,
198
+ ['body.should have_tag("input", :attributes => {',
199
+ ' :name => /q\[(id_eq)\]/ })'])
200
+ expect(cop.offenses).to be_empty
201
+ end
202
+ end
203
+ end
204
+
205
+ context 'and argument are not surrounded by parentheses' do
206
+ it 'accepts braceless hash' do
207
+ inspect_source(cop,
208
+ ['func a: 1, b: 2'])
209
+ expect(cop.offenses).to be_empty
210
+ end
211
+
212
+ it 'accepts single line hash with braces' do
213
+ inspect_source(cop,
214
+ ['func x, { a: 1, b: 2 }'])
215
+ expect(cop.offenses).to be_empty
216
+ end
217
+
218
+ it 'accepts a correctly indented multi-line hash with braces' do
219
+ inspect_source(cop,
220
+ ['func x, {',
221
+ ' a: 1, b: 2 }'])
222
+ expect(cop.offenses).to be_empty
223
+ end
224
+
225
+ it 'registers an offense for incorrectly indented multi-line hash ' \
226
+ 'with braces' do
227
+ inspect_source(cop,
228
+ ['func x, {',
229
+ ' a: 1, b: 2 }'])
230
+ expect(cop.messages)
231
+ .to eq(['Use 2 spaces for indentation in a hash, relative to the ' \
232
+ 'start of the line where the left curly brace is.'])
233
+ expect(cop.highlights).to eq(['a: 1'])
234
+ expect(cop.config_to_allow_offenses).to eq('Enabled' => false)
235
+ end
236
+ end
237
+ end
238
+ end
@@ -6,7 +6,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
6
6
  subject(:cop) { described_class.new }
7
7
 
8
8
  context 'with if statement' do
9
- it 'registers an offence for bad indentation in an if body' do
9
+ it 'registers an offense for bad indentation in an if body' do
10
10
  inspect_source(cop,
11
11
  ['if cond',
12
12
  ' func',
@@ -15,7 +15,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
15
15
  expect(cop.messages).to eq(['Inconsistent indentation detected.'])
16
16
  end
17
17
 
18
- it 'registers an offence for bad indentation in an else body' do
18
+ it 'registers an offense for bad indentation in an else body' do
19
19
  inspect_source(cop,
20
20
  ['if cond',
21
21
  ' func1',
@@ -26,7 +26,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
26
26
  expect(cop.messages).to eq(['Inconsistent indentation detected.'])
27
27
  end
28
28
 
29
- it 'registers an offence for bad indentation in an elsif body' do
29
+ it 'registers an offense for bad indentation in an elsif body' do
30
30
  inspect_source(cop,
31
31
  ['if a1',
32
32
  ' b1',
@@ -39,10 +39,30 @@ describe Rubocop::Cop::Style::IndentationConsistency do
39
39
  expect(cop.messages).to eq(['Inconsistent indentation detected.'])
40
40
  end
41
41
 
42
+ it 'autocorrects bad indentation' do
43
+ corrected = autocorrect_source(cop,
44
+ ['if a1',
45
+ ' b1',
46
+ 'elsif a2',
47
+ ' b2',
48
+ ' b3',
49
+ 'else',
50
+ ' c',
51
+ 'end'])
52
+ expect(corrected).to eq ['if a1',
53
+ ' b1',
54
+ 'elsif a2',
55
+ ' b2',
56
+ ' b3',
57
+ 'else',
58
+ ' c',
59
+ 'end'].join("\n")
60
+ end
61
+
42
62
  it 'accepts a one line if statement' do
43
63
  inspect_source(cop,
44
64
  ['if cond then func1 else func2 end'])
45
- expect(cop.offences).to be_empty
65
+ expect(cop.offenses).to be_empty
46
66
  end
47
67
 
48
68
  it 'accepts a correctly aligned if/elsif/else/end' do
@@ -54,7 +74,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
54
74
  'else',
55
75
  ' c',
56
76
  'end'])
57
- expect(cop.offences).to be_empty
77
+ expect(cop.offenses).to be_empty
58
78
  end
59
79
 
60
80
  it 'accepts if/elsif/else/end laid out as a table' do
@@ -64,7 +84,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
64
84
  'elsif @io == $stderr then str << "$stderr"',
65
85
  'else str << @io.class.to_s',
66
86
  'end'])
67
- expect(cop.offences).to be_empty
87
+ expect(cop.offenses).to be_empty
68
88
  end
69
89
 
70
90
  it 'accepts if/then/else/end laid out as another table' do
@@ -73,7 +93,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
73
93
  'then ConfigTable.load',
74
94
  'else ConfigTable.new',
75
95
  'end'])
76
- expect(cop.offences).to be_empty
96
+ expect(cop.offenses).to be_empty
77
97
  end
78
98
 
79
99
  it 'accepts an empty if' do
@@ -81,7 +101,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
81
101
  ['if a',
82
102
  'else',
83
103
  'end'])
84
- expect(cop.offences).to be_empty
104
+ expect(cop.offenses).to be_empty
85
105
  end
86
106
 
87
107
  it 'accepts an if in assignment with end aligned with variable' do
@@ -107,7 +127,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
107
127
  'VAR = if a',
108
128
  ' 0',
109
129
  'end'])
110
- expect(cop.offences).to be_empty
130
+ expect(cop.offenses).to be_empty
111
131
  end
112
132
 
113
133
  it 'accepts an if/else in assignment with end aligned with variable' do
@@ -117,29 +137,29 @@ describe Rubocop::Cop::Style::IndentationConsistency do
117
137
  'else',
118
138
  ' 1',
119
139
  'end'])
120
- expect(cop.offences).to be_empty
140
+ expect(cop.offenses).to be_empty
121
141
  end
122
142
 
123
143
  it 'accepts an if/else in assignment with end aligned with variable ' \
124
- 'and chaining after the end' do
144
+ 'and chaining after the end' do
125
145
  inspect_source(cop,
126
146
  ['var = if a',
127
147
  ' 0',
128
148
  'else',
129
149
  ' 1',
130
150
  'end.abc.join("")'])
131
- expect(cop.offences).to be_empty
151
+ expect(cop.offenses).to be_empty
132
152
  end
133
153
 
134
154
  it 'accepts an if/else in assignment with end aligned with variable ' \
135
- 'and chaining with a block after the end' do
155
+ 'and chaining with a block after the end' do
136
156
  inspect_source(cop,
137
157
  ['var = if a',
138
158
  ' 0',
139
159
  'else',
140
160
  ' 1',
141
161
  'end.abc.tap {}'])
142
- expect(cop.offences).to be_empty
162
+ expect(cop.offenses).to be_empty
143
163
  end
144
164
 
145
165
  it 'accepts an if in assignment with end aligned with if' do
@@ -147,7 +167,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
147
167
  ['var = if a',
148
168
  ' 0',
149
169
  ' end'])
150
- expect(cop.offences).to be_empty
170
+ expect(cop.offenses).to be_empty
151
171
  end
152
172
 
153
173
  it 'accepts an if/else in assignment with end aligned with if' do
@@ -157,11 +177,11 @@ describe Rubocop::Cop::Style::IndentationConsistency do
157
177
  ' else',
158
178
  ' 1',
159
179
  ' end'])
160
- expect(cop.offences).to be_empty
180
+ expect(cop.offenses).to be_empty
161
181
  end
162
182
 
163
183
  it 'accepts an if/else in assignment on next line with end aligned ' \
164
- 'with if' do
184
+ 'with if' do
165
185
  inspect_source(cop,
166
186
  ['var =',
167
187
  ' if a',
@@ -169,7 +189,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
169
189
  ' else',
170
190
  ' 1',
171
191
  ' end'])
172
- expect(cop.offences).to be_empty
192
+ expect(cop.offenses).to be_empty
173
193
  end
174
194
 
175
195
  it 'accepts an if/else branches with rescue clauses' do
@@ -181,12 +201,12 @@ describe Rubocop::Cop::Style::IndentationConsistency do
181
201
  'else',
182
202
  ' a rescue nil',
183
203
  'end'])
184
- expect(cop.offences).to be_empty
204
+ expect(cop.offenses).to be_empty
185
205
  end
186
206
  end
187
207
 
188
208
  context 'with unless' do
189
- it 'registers an offence for bad indentation in an unless body' do
209
+ it 'registers an offense for bad indentation in an unless body' do
190
210
  inspect_source(cop,
191
211
  ['unless cond',
192
212
  ' func',
@@ -200,12 +220,12 @@ describe Rubocop::Cop::Style::IndentationConsistency do
200
220
  ['unless a',
201
221
  'else',
202
222
  'end'])
203
- expect(cop.offences).to be_empty
223
+ expect(cop.offenses).to be_empty
204
224
  end
205
225
  end
206
226
 
207
227
  context 'with case' do
208
- it 'registers an offence for bad indentation in a case/when body' do
228
+ it 'registers an offense for bad indentation in a case/when body' do
209
229
  inspect_source(cop,
210
230
  ['case a',
211
231
  'when b',
@@ -215,7 +235,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
215
235
  expect(cop.messages).to eq(['Inconsistent indentation detected.'])
216
236
  end
217
237
 
218
- it 'registers an offence for bad indentation in a case/else body' do
238
+ it 'registers an offense for bad indentation in a case/else body' do
219
239
  inspect_source(cop,
220
240
  ['case a',
221
241
  'when b',
@@ -239,7 +259,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
239
259
  'else',
240
260
  ' f',
241
261
  'end'])
242
- expect(cop.offences).to be_empty
262
+ expect(cop.offenses).to be_empty
243
263
  end
244
264
 
245
265
  it 'accepts case/when/else laid out as a table' do
@@ -249,7 +269,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
249
269
  "when 'unless' then cond, _else, body = *sexp",
250
270
  'else cond, body = *sexp',
251
271
  'end'])
252
- expect(cop.offences).to be_empty
272
+ expect(cop.offenses).to be_empty
253
273
  end
254
274
 
255
275
  it 'accepts case/when/else with then beginning a line' do
@@ -258,7 +278,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
258
278
  "when 'if'",
259
279
  'then cond, body, _else = *sexp',
260
280
  'end'])
261
- expect(cop.offences).to be_empty
281
+ expect(cop.offenses).to be_empty
262
282
  end
263
283
 
264
284
  it 'accepts indented when/else plus indented body' do
@@ -274,12 +294,12 @@ describe Rubocop::Cop::Style::IndentationConsistency do
274
294
  ' else',
275
295
  " 'plain'",
276
296
  'end'])
277
- expect(cop.offences).to be_empty
297
+ expect(cop.offenses).to be_empty
278
298
  end
279
299
  end
280
300
 
281
301
  context 'with while/until' do
282
- it 'registers an offence for bad indentation in a while body' do
302
+ it 'registers an offense for bad indentation in a while body' do
283
303
  inspect_source(cop,
284
304
  ['while cond',
285
305
  ' func',
@@ -288,7 +308,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
288
308
  expect(cop.messages).to eq(['Inconsistent indentation detected.'])
289
309
  end
290
310
 
291
- it 'registers an offence for bad indentation in begin/end/while' do
311
+ it 'registers an offense for bad indentation in begin/end/while' do
292
312
  inspect_source(cop,
293
313
  ['something = begin',
294
314
  ' func1',
@@ -297,7 +317,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
297
317
  expect(cop.messages).to eq(['Inconsistent indentation detected.'])
298
318
  end
299
319
 
300
- it 'registers an offence for bad indentation in an until body' do
320
+ it 'registers an offense for bad indentation in an until body' do
301
321
  inspect_source(cop,
302
322
  ['until cond',
303
323
  ' func',
@@ -310,12 +330,12 @@ describe Rubocop::Cop::Style::IndentationConsistency do
310
330
  inspect_source(cop,
311
331
  ['while a',
312
332
  'end'])
313
- expect(cop.offences).to be_empty
333
+ expect(cop.offenses).to be_empty
314
334
  end
315
335
  end
316
336
 
317
337
  context 'with for' do
318
- it 'registers an offence for bad indentation in a for body' do
338
+ it 'registers an offense for bad indentation in a for body' do
319
339
  inspect_source(cop,
320
340
  ['for var in 1..10',
321
341
  ' func',
@@ -328,12 +348,12 @@ describe Rubocop::Cop::Style::IndentationConsistency do
328
348
  inspect_source(cop,
329
349
  ['for var in 1..10',
330
350
  'end'])
331
- expect(cop.offences).to be_empty
351
+ expect(cop.offenses).to be_empty
332
352
  end
333
353
  end
334
354
 
335
355
  context 'with def/defs' do
336
- it 'registers an offence for bad indentation in a def body' do
356
+ it 'registers an offense for bad indentation in a def body' do
337
357
  inspect_source(cop,
338
358
  ['def test',
339
359
  ' func1',
@@ -343,7 +363,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
343
363
  .to eq(['Inconsistent indentation detected.'])
344
364
  end
345
365
 
346
- it 'registers an offence for bad indentation in a defs body' do
366
+ it 'registers an offense for bad indentation in a defs body' do
347
367
  inspect_source(cop,
348
368
  ['def self.test',
349
369
  ' func',
@@ -356,19 +376,19 @@ describe Rubocop::Cop::Style::IndentationConsistency do
356
376
  inspect_source(cop,
357
377
  ['def test',
358
378
  'end'])
359
- expect(cop.offences).to be_empty
379
+ expect(cop.offenses).to be_empty
360
380
  end
361
381
 
362
382
  it 'accepts an empty defs body' do
363
383
  inspect_source(cop,
364
384
  ['def self.test',
365
385
  'end'])
366
- expect(cop.offences).to be_empty
386
+ expect(cop.offenses).to be_empty
367
387
  end
368
388
  end
369
389
 
370
390
  context 'with class' do
371
- it 'registers an offence for bad indentation in a class body' do
391
+ it 'registers an offense for bad indentation in a class body' do
372
392
  inspect_source(cop,
373
393
  ['class Test',
374
394
  ' def func1',
@@ -384,7 +404,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
384
404
  inspect_source(cop,
385
405
  ['class Test',
386
406
  'end'])
387
- expect(cop.offences).to be_empty
407
+ expect(cop.offenses).to be_empty
388
408
  end
389
409
 
390
410
  it 'accepts indented public, protected, and private' do
@@ -405,11 +425,11 @@ describe Rubocop::Cop::Style::IndentationConsistency do
405
425
  ' def g',
406
426
  ' end',
407
427
  'end'])
408
- expect(cop.offences).to be_empty
428
+ expect(cop.offenses).to be_empty
409
429
  end
410
430
 
411
- it 'registers an offence for bad indentation in def but not for ' \
412
- 'outdented public, protected, and private' do
431
+ it 'registers an offense for bad indentation in def but not for ' \
432
+ 'outdented public, protected, and private' do
413
433
  inspect_source(cop,
414
434
  ['class Test',
415
435
  'public',
@@ -428,12 +448,12 @@ describe Rubocop::Cop::Style::IndentationConsistency do
428
448
  ' end',
429
449
  'end'])
430
450
  expect(cop.messages).to eq(['Inconsistent indentation detected.'])
431
- expect(cop.highlights).to eq([' '])
451
+ expect(cop.highlights).to eq(["def g\n end"])
432
452
  end
433
453
  end
434
454
 
435
455
  context 'with module' do
436
- it 'registers an offence for bad indentation in a module body' do
456
+ it 'registers an offense for bad indentation in a module body' do
437
457
  inspect_source(cop,
438
458
  ['module Test',
439
459
  ' def func1',
@@ -448,12 +468,12 @@ describe Rubocop::Cop::Style::IndentationConsistency do
448
468
  inspect_source(cop,
449
469
  ['module Test',
450
470
  'end'])
451
- expect(cop.offences).to be_empty
471
+ expect(cop.offenses).to be_empty
452
472
  end
453
473
  end
454
474
 
455
475
  context 'with block' do
456
- it 'registers an offence for bad indentation in a do/end body' do
476
+ it 'registers an offense for bad indentation in a do/end body' do
457
477
  inspect_source(cop,
458
478
  ['a = func do',
459
479
  ' b',
@@ -462,7 +482,7 @@ describe Rubocop::Cop::Style::IndentationConsistency do
462
482
  expect(cop.messages).to eq(['Inconsistent indentation detected.'])
463
483
  end
464
484
 
465
- it 'registers an offence for bad indentation in a {} body' do
485
+ it 'registers an offense for bad indentation in a {} body' do
466
486
  inspect_source(cop,
467
487
  ['func {',
468
488
  ' b',
@@ -477,14 +497,14 @@ describe Rubocop::Cop::Style::IndentationConsistency do
477
497
  ' b',
478
498
  ' c',
479
499
  'end'])
480
- expect(cop.offences).to be_empty
500
+ expect(cop.offenses).to be_empty
481
501
  end
482
502
 
483
503
  it 'accepts an empty block body' do
484
504
  inspect_source(cop,
485
505
  ['a = func do',
486
506
  'end'])
487
- expect(cop.offences).to be_empty
507
+ expect(cop.offenses).to be_empty
488
508
  end
489
509
  end
490
510
  end