rubocop 0.8.3 → 0.9.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 (381) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +0 -4
  3. data/.yardopts +2 -0
  4. data/CHANGELOG.md +70 -1
  5. data/README.md +101 -11
  6. data/config/default.yml +10 -2
  7. data/config/enabled.yml +85 -11
  8. data/lib/rubocop.rb +97 -73
  9. data/lib/rubocop/cli.rb +177 -92
  10. data/lib/rubocop/config.rb +56 -11
  11. data/lib/rubocop/config_store.rb +2 -0
  12. data/lib/rubocop/cop/cop.rb +52 -8
  13. data/lib/rubocop/cop/lint/assignment_in_condition.rb +54 -0
  14. data/lib/rubocop/cop/lint/end_alignment.rb +180 -0
  15. data/lib/rubocop/cop/lint/end_in_method.rb +30 -0
  16. data/lib/rubocop/cop/lint/ensure_return.rb +22 -0
  17. data/lib/rubocop/cop/lint/eval.rb +22 -0
  18. data/lib/rubocop/cop/lint/handle_exceptions.rb +20 -0
  19. data/lib/rubocop/cop/lint/literal_in_condition.rb +63 -0
  20. data/lib/rubocop/cop/lint/loop.rb +29 -0
  21. data/lib/rubocop/cop/lint/rescue_exception.rb +29 -0
  22. data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +33 -0
  23. data/lib/rubocop/cop/lint/unreachable_code.rb +35 -0
  24. data/lib/rubocop/cop/lint/unused_local_variable.rb +32 -0
  25. data/lib/rubocop/cop/lint/void.rb +58 -0
  26. data/lib/rubocop/cop/offence.rb +112 -12
  27. data/lib/rubocop/cop/rails/validation.rb +34 -0
  28. data/lib/rubocop/cop/style/access_control.rb +58 -0
  29. data/lib/rubocop/cop/style/alias.rb +28 -0
  30. data/lib/rubocop/cop/style/align_parameters.rb +39 -0
  31. data/lib/rubocop/cop/style/and_or.rb +45 -0
  32. data/lib/rubocop/cop/style/ascii_comments.rb +21 -0
  33. data/lib/rubocop/cop/style/ascii_identifiers.rb +22 -0
  34. data/lib/rubocop/cop/style/attr.rb +20 -0
  35. data/lib/rubocop/cop/style/avoid_class_vars.rb +20 -0
  36. data/lib/rubocop/cop/style/avoid_for.rb +18 -0
  37. data/lib/rubocop/cop/style/avoid_global_vars.rb +65 -0
  38. data/lib/rubocop/cop/style/avoid_perl_backrefs.rb +21 -0
  39. data/lib/rubocop/cop/style/avoid_perlisms.rb +50 -0
  40. data/lib/rubocop/cop/style/begin_block.rb +18 -0
  41. data/lib/rubocop/cop/style/block_comments.rb +20 -0
  42. data/lib/rubocop/cop/style/block_nesting.rb +47 -0
  43. data/lib/rubocop/cop/style/blocks.rb +27 -0
  44. data/lib/rubocop/cop/style/case_equality.rb +22 -0
  45. data/lib/rubocop/cop/style/case_indentation.rb +28 -0
  46. data/lib/rubocop/cop/style/character_literal.rb +37 -0
  47. data/lib/rubocop/cop/style/class_and_module_camel_case.rb +33 -0
  48. data/lib/rubocop/cop/style/class_methods.rb +22 -0
  49. data/lib/rubocop/cop/style/collection_methods.rb +37 -0
  50. data/lib/rubocop/cop/style/colon_method_call.rb +29 -0
  51. data/lib/rubocop/cop/style/constant_name.rb +31 -0
  52. data/lib/rubocop/cop/style/def_parentheses.rb +70 -0
  53. data/lib/rubocop/cop/style/documentation.rb +58 -0
  54. data/lib/rubocop/cop/style/dot_position.rb +25 -0
  55. data/lib/rubocop/cop/style/empty_line_between_defs.rb +26 -0
  56. data/lib/rubocop/cop/style/empty_lines.rb +40 -0
  57. data/lib/rubocop/cop/style/empty_literal.rb +53 -0
  58. data/lib/rubocop/cop/style/encoding.rb +29 -0
  59. data/lib/rubocop/cop/style/end_block.rb +18 -0
  60. data/lib/rubocop/cop/style/end_of_line.rb +23 -0
  61. data/lib/rubocop/cop/style/favor_join.rb +29 -0
  62. data/lib/rubocop/cop/style/favor_modifier.rb +118 -0
  63. data/lib/rubocop/cop/style/favor_sprintf.rb +28 -0
  64. data/lib/rubocop/cop/style/favor_unless_over_negated_if.rb +54 -0
  65. data/lib/rubocop/cop/style/hash_syntax.rb +47 -0
  66. data/lib/rubocop/cop/style/if_then_else.rb +80 -0
  67. data/lib/rubocop/cop/style/lambda.rb +47 -0
  68. data/lib/rubocop/cop/style/leading_comment_space.rb +25 -0
  69. data/lib/rubocop/cop/style/line_continuation.rb +26 -0
  70. data/lib/rubocop/cop/style/line_length.rb +30 -0
  71. data/lib/rubocop/cop/style/method_and_variable_snake_case.rb +61 -0
  72. data/lib/rubocop/cop/style/method_call_parentheses.rb +22 -0
  73. data/lib/rubocop/cop/style/method_length.rb +57 -0
  74. data/lib/rubocop/cop/style/not.rb +24 -0
  75. data/lib/rubocop/cop/style/numeric_literals.rb +25 -0
  76. data/lib/rubocop/cop/{op_method.rb → style/op_method.rb} +4 -3
  77. data/lib/rubocop/cop/style/parameter_lists.rb +42 -0
  78. data/lib/rubocop/cop/style/parentheses_around_condition.rb +42 -0
  79. data/lib/rubocop/cop/style/proc.rb +30 -0
  80. data/lib/rubocop/cop/style/reduce_arguments.rb +34 -0
  81. data/lib/rubocop/cop/style/regexp_literal.rb +39 -0
  82. data/lib/rubocop/cop/style/rescue_modifier.rb +55 -0
  83. data/lib/rubocop/cop/style/semicolon.rb +51 -0
  84. data/lib/rubocop/cop/style/single_line_methods.rb +48 -0
  85. data/lib/rubocop/cop/style/space_after_comma_etc.rb +69 -0
  86. data/lib/rubocop/cop/style/space_after_control_keyword.rb +32 -0
  87. data/lib/rubocop/cop/style/string_literals.rb +36 -0
  88. data/lib/rubocop/cop/style/surrounding_space.rb +314 -0
  89. data/lib/rubocop/cop/style/symbol_array.rb +31 -0
  90. data/lib/rubocop/cop/style/symbol_name.rb +27 -0
  91. data/lib/rubocop/cop/style/tab.rb +25 -0
  92. data/lib/rubocop/cop/style/ternary_operator.rb +49 -0
  93. data/lib/rubocop/cop/style/trailing_whitespace.rb +24 -0
  94. data/lib/rubocop/cop/style/trivial_accessors.rb +32 -0
  95. data/lib/rubocop/cop/style/unless_else.rb +26 -0
  96. data/lib/rubocop/cop/style/variable_interpolation.rb +32 -0
  97. data/lib/rubocop/cop/style/when_then.rb +25 -0
  98. data/lib/rubocop/cop/style/while_until_do.rb +45 -0
  99. data/lib/rubocop/cop/style/word_array.rb +44 -0
  100. data/lib/rubocop/cop/util.rb +1 -0
  101. data/lib/rubocop/cop/variable_inspector.rb +280 -0
  102. data/lib/rubocop/formatter/base_formatter.rb +119 -0
  103. data/lib/rubocop/formatter/clang_style_formatter.rb +21 -0
  104. data/lib/rubocop/formatter/emacs_style_formatter.rb +17 -0
  105. data/lib/rubocop/formatter/formatter_set.rb +77 -0
  106. data/lib/rubocop/formatter/json_formatter.rb +76 -0
  107. data/lib/rubocop/formatter/progress_formatter.rb +63 -0
  108. data/lib/rubocop/formatter/simple_text_formatter.rb +62 -0
  109. data/lib/rubocop/version.rb +15 -1
  110. data/rubocop.gemspec +1 -2
  111. data/spec/.rubocop.yml +5 -0
  112. data/spec/project_spec.rb +4 -7
  113. data/spec/rubocop/cli_spec.rb +383 -146
  114. data/spec/rubocop/config_spec.rb +61 -0
  115. data/spec/rubocop/config_store_spec.rb +2 -2
  116. data/spec/rubocop/cops/cop_spec.rb +14 -7
  117. data/spec/rubocop/cops/lint/assignment_in_condition_spec.rb +111 -0
  118. data/spec/rubocop/cops/lint/end_alignment_spec.rb +426 -0
  119. data/spec/rubocop/cops/lint/end_in_method_spec.rb +35 -0
  120. data/spec/rubocop/cops/lint/ensure_return_spec.rb +37 -0
  121. data/spec/rubocop/cops/lint/eval_spec.rb +41 -0
  122. data/spec/rubocop/cops/lint/handle_exceptions_spec.rb +36 -0
  123. data/spec/rubocop/cops/lint/literal_in_condition_spec.rb +35 -0
  124. data/spec/rubocop/cops/lint/loop_spec.rb +33 -0
  125. data/spec/rubocop/cops/lint/rescue_exception_spec.rb +127 -0
  126. data/spec/rubocop/cops/lint/shadowing_outer_local_variable_spec.rb +180 -0
  127. data/spec/rubocop/cops/lint/unreachable_code_spec.rb +69 -0
  128. data/spec/rubocop/cops/lint/unused_local_variable_spec.rb +484 -0
  129. data/spec/rubocop/cops/lint/void_spec.rb +63 -0
  130. data/spec/rubocop/cops/offence_spec.rb +107 -10
  131. data/spec/rubocop/cops/rails/validation_spec.rb +27 -0
  132. data/spec/rubocop/cops/style/access_control_spec.rb +142 -0
  133. data/spec/rubocop/cops/style/alias_spec.rb +47 -0
  134. data/spec/rubocop/cops/style/align_parameters_spec.rb +199 -0
  135. data/spec/rubocop/cops/style/and_or_spec.rb +39 -0
  136. data/spec/rubocop/cops/style/ascii_comments_spec.rb +28 -0
  137. data/spec/rubocop/cops/style/ascii_identifiers_spec.rb +28 -0
  138. data/spec/rubocop/cops/style/attr_spec.rb +20 -0
  139. data/spec/rubocop/cops/style/avoid_class_vars_spec.rb +27 -0
  140. data/spec/rubocop/cops/style/avoid_for_spec.rb +37 -0
  141. data/spec/rubocop/cops/style/avoid_global_vars_spec.rb +34 -0
  142. data/spec/rubocop/cops/style/avoid_perl_backrefs_spec.rb +20 -0
  143. data/spec/rubocop/cops/style/avoid_perlisms_spec.rb +47 -0
  144. data/spec/rubocop/cops/style/begin_block_spec.rb +19 -0
  145. data/spec/rubocop/cops/style/block_comments_spec.rb +27 -0
  146. data/spec/rubocop/cops/style/block_nesting_spec.rb +159 -0
  147. data/spec/rubocop/cops/style/blocks_spec.rb +35 -0
  148. data/spec/rubocop/cops/style/case_equality_spec.rb +18 -0
  149. data/spec/rubocop/cops/style/case_indentation_spec.rb +88 -0
  150. data/spec/rubocop/cops/style/character_literal_spec.rb +28 -0
  151. data/spec/rubocop/cops/style/class_and_module_camel_case_spec.rb +46 -0
  152. data/spec/rubocop/cops/style/class_methods_spec.rb +51 -0
  153. data/spec/rubocop/cops/style/collection_methods_spec.rb +46 -0
  154. data/spec/rubocop/cops/style/colon_method_call_spec.rb +55 -0
  155. data/spec/rubocop/cops/style/constant_name_spec.rb +56 -0
  156. data/spec/rubocop/cops/style/def_with_parentheses_spec.rb +40 -0
  157. data/spec/rubocop/cops/style/def_without_parentheses_spec.rb +34 -0
  158. data/spec/rubocop/cops/style/documentation_spec.rb +79 -0
  159. data/spec/rubocop/cops/style/dot_position_spec.rb +30 -0
  160. data/spec/rubocop/cops/style/empty_line_between_defs_spec.rb +85 -0
  161. data/spec/rubocop/cops/style/empty_lines_spec.rb +40 -0
  162. data/spec/rubocop/cops/style/empty_literal_spec.rb +91 -0
  163. data/spec/rubocop/cops/style/encoding_spec.rb +49 -0
  164. data/spec/rubocop/cops/style/end_block_spec.rb +19 -0
  165. data/spec/rubocop/cops/style/end_of_line_spec.rb +25 -0
  166. data/spec/rubocop/cops/style/favor_join_spec.rb +37 -0
  167. data/spec/rubocop/cops/style/favor_modifier_spec.rb +160 -0
  168. data/spec/rubocop/cops/style/favor_sprintf_spec.rb +53 -0
  169. data/spec/rubocop/cops/style/favor_unless_over_negated_if_spec.rb +64 -0
  170. data/spec/rubocop/cops/style/favor_until_over_negated_while_spec.rb +47 -0
  171. data/spec/rubocop/cops/style/hash_syntax_spec.rb +51 -0
  172. data/spec/rubocop/cops/style/if_with_semicolon_spec.rb +25 -0
  173. data/spec/rubocop/cops/style/lambda_spec.rb +45 -0
  174. data/spec/rubocop/cops/style/leading_comment_space_spec.rb +65 -0
  175. data/spec/rubocop/cops/style/line_continuation_spec.rb +26 -0
  176. data/spec/rubocop/cops/style/line_length_spec.rb +25 -0
  177. data/spec/rubocop/cops/style/method_and_variable_snake_case_spec.rb +95 -0
  178. data/spec/rubocop/cops/style/method_call_parentheses_spec.rb +25 -0
  179. data/spec/rubocop/cops/style/method_length_spec.rb +151 -0
  180. data/spec/rubocop/cops/style/multiline_if_then_spec.rb +81 -0
  181. data/spec/rubocop/cops/style/not_spec.rb +28 -0
  182. data/spec/rubocop/cops/style/numeric_literals_spec.rb +51 -0
  183. data/spec/rubocop/cops/style/one_line_conditional_spec.rb +18 -0
  184. data/spec/rubocop/cops/style/op_method_spec.rb +80 -0
  185. data/spec/rubocop/cops/style/parameter_lists_spec.rb +49 -0
  186. data/spec/rubocop/cops/style/parentheses_around_condition_spec.rb +59 -0
  187. data/spec/rubocop/cops/style/proc_spec.rb +28 -0
  188. data/spec/rubocop/cops/style/reduce_arguments_spec.rb +59 -0
  189. data/spec/rubocop/cops/style/regexp_literal_spec.rb +83 -0
  190. data/spec/rubocop/cops/style/rescue_modifier_spec.rb +122 -0
  191. data/spec/rubocop/cops/style/semicolon_spec.rb +95 -0
  192. data/spec/rubocop/cops/style/single_line_methods_spec.rb +54 -0
  193. data/spec/rubocop/cops/style/space_after_colon_spec.rb +29 -0
  194. data/spec/rubocop/cops/style/space_after_comma_spec.rb +31 -0
  195. data/spec/rubocop/cops/style/space_after_control_keyword_spec.rb +69 -0
  196. data/spec/rubocop/cops/style/space_after_semicolon_spec.rb +24 -0
  197. data/spec/rubocop/cops/style/space_around_braces_spec.rb +49 -0
  198. data/spec/rubocop/cops/style/space_around_equals_in_default_parameter_spec.rb +34 -0
  199. data/spec/rubocop/cops/style/space_around_operators_spec.rb +216 -0
  200. data/spec/rubocop/cops/style/space_inside_brackets_spec.rb +51 -0
  201. data/spec/rubocop/cops/style/space_inside_hash_literal_braces_spec.rb +99 -0
  202. data/spec/rubocop/cops/style/space_inside_parens_spec.rb +33 -0
  203. data/spec/rubocop/cops/style/string_literals_spec.rb +62 -0
  204. data/spec/rubocop/cops/style/symbol_array_spec.rb +45 -0
  205. data/spec/rubocop/cops/style/symbol_name_spec.rb +122 -0
  206. data/spec/rubocop/cops/style/tab_spec.rb +23 -0
  207. data/spec/rubocop/cops/style/ternary_operator_spec.rb +42 -0
  208. data/spec/rubocop/cops/style/trailing_whitespace_spec.rb +29 -0
  209. data/spec/rubocop/cops/style/trivial_accessors_spec.rb +338 -0
  210. data/spec/rubocop/cops/style/unless_else_spec.rb +31 -0
  211. data/spec/rubocop/cops/style/variable_interpolation_spec.rb +53 -0
  212. data/spec/rubocop/cops/style/when_then_spec.rb +40 -0
  213. data/spec/rubocop/cops/style/while_until_do_spec.rb +47 -0
  214. data/spec/rubocop/cops/style/word_array_spec.rb +61 -0
  215. data/spec/rubocop/cops/variable_inspector_spec.rb +374 -0
  216. data/spec/rubocop/formatter/base_formatter_spec.rb +190 -0
  217. data/spec/rubocop/formatter/clang_style_formatter_spec.rb +70 -0
  218. data/spec/rubocop/formatter/emacs_style_formatter_spec.rb +32 -0
  219. data/spec/rubocop/formatter/formatter_set_spec.rb +132 -0
  220. data/spec/rubocop/formatter/json_formatter_spec.rb +142 -0
  221. data/spec/rubocop/formatter/progress_formatter_spec.rb +196 -0
  222. data/spec/rubocop/formatter/simple_text_formatter_spec.rb +74 -0
  223. data/spec/spec_helper.rb +23 -8
  224. data/spec/support/mri_syntax_checker.rb +69 -0
  225. data/spec/support/shared_examples.rb +33 -0
  226. metadata +315 -243
  227. data/lib/rubocop/cop/access_control.rb +0 -41
  228. data/lib/rubocop/cop/alias.rb +0 -17
  229. data/lib/rubocop/cop/align_parameters.rb +0 -37
  230. data/lib/rubocop/cop/and_or.rb +0 -36
  231. data/lib/rubocop/cop/ascii_comments.rb +0 -17
  232. data/lib/rubocop/cop/ascii_identifiers.rb +0 -19
  233. data/lib/rubocop/cop/avoid_class_vars.rb +0 -15
  234. data/lib/rubocop/cop/avoid_for.rb +0 -17
  235. data/lib/rubocop/cop/avoid_global_vars.rb +0 -61
  236. data/lib/rubocop/cop/avoid_perl_backrefs.rb +0 -17
  237. data/lib/rubocop/cop/avoid_perlisms.rb +0 -47
  238. data/lib/rubocop/cop/block_comments.rb +0 -17
  239. data/lib/rubocop/cop/block_nesting.rb +0 -35
  240. data/lib/rubocop/cop/blocks.rb +0 -23
  241. data/lib/rubocop/cop/case_indentation.rb +0 -22
  242. data/lib/rubocop/cop/class_and_module_camel_case.rb +0 -29
  243. data/lib/rubocop/cop/class_methods.rb +0 -15
  244. data/lib/rubocop/cop/collection_methods.rb +0 -29
  245. data/lib/rubocop/cop/colon_method_call.rb +0 -20
  246. data/lib/rubocop/cop/constant_name.rb +0 -24
  247. data/lib/rubocop/cop/def_parentheses.rb +0 -62
  248. data/lib/rubocop/cop/empty_line_between_defs.rb +0 -22
  249. data/lib/rubocop/cop/empty_lines.rb +0 -34
  250. data/lib/rubocop/cop/empty_literal.rb +0 -49
  251. data/lib/rubocop/cop/encoding.rb +0 -19
  252. data/lib/rubocop/cop/end_of_line.rb +0 -15
  253. data/lib/rubocop/cop/ensure_return.rb +0 -19
  254. data/lib/rubocop/cop/eval.rb +0 -19
  255. data/lib/rubocop/cop/favor_join.rb +0 -22
  256. data/lib/rubocop/cop/favor_modifier.rb +0 -92
  257. data/lib/rubocop/cop/favor_percent_r.rb +0 -19
  258. data/lib/rubocop/cop/favor_sprintf.rb +0 -21
  259. data/lib/rubocop/cop/favor_unless_over_negated_if.rb +0 -49
  260. data/lib/rubocop/cop/handle_exceptions.rb +0 -17
  261. data/lib/rubocop/cop/hash_syntax.rb +0 -41
  262. data/lib/rubocop/cop/if_then_else.rb +0 -75
  263. data/lib/rubocop/cop/lambda.rb +0 -42
  264. data/lib/rubocop/cop/leading_comment_space.rb +0 -19
  265. data/lib/rubocop/cop/line_continuation.rb +0 -15
  266. data/lib/rubocop/cop/line_length.rb +0 -23
  267. data/lib/rubocop/cop/loop.rb +0 -33
  268. data/lib/rubocop/cop/method_and_variable_snake_case.rb +0 -55
  269. data/lib/rubocop/cop/method_length.rb +0 -52
  270. data/lib/rubocop/cop/not.rb +0 -21
  271. data/lib/rubocop/cop/numeric_literals.rb +0 -21
  272. data/lib/rubocop/cop/parameter_lists.rb +0 -23
  273. data/lib/rubocop/cop/parentheses_around_condition.rb +0 -40
  274. data/lib/rubocop/cop/percent_r.rb +0 -19
  275. data/lib/rubocop/cop/proc.rb +0 -26
  276. data/lib/rubocop/cop/reduce_arguments.rb +0 -29
  277. data/lib/rubocop/cop/rescue_exception.rb +0 -26
  278. data/lib/rubocop/cop/rescue_modifier.rb +0 -15
  279. data/lib/rubocop/cop/semicolon.rb +0 -31
  280. data/lib/rubocop/cop/single_line_methods.rb +0 -44
  281. data/lib/rubocop/cop/space_after_comma_etc.rb +0 -62
  282. data/lib/rubocop/cop/space_after_control_keyword.rb +0 -29
  283. data/lib/rubocop/cop/string_literals.rb +0 -25
  284. data/lib/rubocop/cop/surrounding_space.rb +0 -285
  285. data/lib/rubocop/cop/symbol_array.rb +0 -31
  286. data/lib/rubocop/cop/symbol_name.rb +0 -23
  287. data/lib/rubocop/cop/syntax.rb +0 -49
  288. data/lib/rubocop/cop/tab.rb +0 -15
  289. data/lib/rubocop/cop/ternary_operator.rb +0 -43
  290. data/lib/rubocop/cop/trailing_whitespace.rb +0 -15
  291. data/lib/rubocop/cop/trivial_accessors.rb +0 -26
  292. data/lib/rubocop/cop/unless_else.rb +0 -23
  293. data/lib/rubocop/cop/variable_interpolation.rb +0 -29
  294. data/lib/rubocop/cop/when_then.rb +0 -17
  295. data/lib/rubocop/cop/word_array.rb +0 -37
  296. data/lib/rubocop/report/emacs_style.rb +0 -17
  297. data/lib/rubocop/report/plain_text.rb +0 -18
  298. data/lib/rubocop/report/report.rb +0 -44
  299. data/spec/rubocop/cops/access_control_spec.rb +0 -129
  300. data/spec/rubocop/cops/alias_spec.rb +0 -39
  301. data/spec/rubocop/cops/align_parameters_spec.rb +0 -197
  302. data/spec/rubocop/cops/and_or_spec.rb +0 -37
  303. data/spec/rubocop/cops/ascii_comments_spec.rb +0 -26
  304. data/spec/rubocop/cops/ascii_identifiers_spec.rb +0 -26
  305. data/spec/rubocop/cops/avoid_class_vars_spec.rb +0 -25
  306. data/spec/rubocop/cops/avoid_for_spec.rb +0 -35
  307. data/spec/rubocop/cops/avoid_global_vars_spec.rb +0 -32
  308. data/spec/rubocop/cops/avoid_perl_backrefs_spec.rb +0 -18
  309. data/spec/rubocop/cops/avoid_perlisms_spec.rb +0 -44
  310. data/spec/rubocop/cops/block_comments_spec.rb +0 -25
  311. data/spec/rubocop/cops/block_nesting_spec.rb +0 -148
  312. data/spec/rubocop/cops/blocks_spec.rb +0 -33
  313. data/spec/rubocop/cops/case_indentation_spec.rb +0 -86
  314. data/spec/rubocop/cops/class_and_module_camel_case_spec.rb +0 -44
  315. data/spec/rubocop/cops/class_methods_spec.rb +0 -49
  316. data/spec/rubocop/cops/collection_methods_spec.rb +0 -44
  317. data/spec/rubocop/cops/colon_method_call_spec.rb +0 -53
  318. data/spec/rubocop/cops/constant_name_spec.rb +0 -42
  319. data/spec/rubocop/cops/def_with_parentheses_spec.rb +0 -38
  320. data/spec/rubocop/cops/def_without_parentheses_spec.rb +0 -32
  321. data/spec/rubocop/cops/empty_line_between_defs_spec.rb +0 -83
  322. data/spec/rubocop/cops/empty_lines_spec.rb +0 -38
  323. data/spec/rubocop/cops/empty_literal_spec.rb +0 -90
  324. data/spec/rubocop/cops/encoding_spec.rb +0 -47
  325. data/spec/rubocop/cops/end_of_line_spec.rb +0 -23
  326. data/spec/rubocop/cops/ensure_return_spec.rb +0 -35
  327. data/spec/rubocop/cops/eval_spec.rb +0 -39
  328. data/spec/rubocop/cops/favor_join_spec.rb +0 -35
  329. data/spec/rubocop/cops/favor_modifier_spec.rb +0 -146
  330. data/spec/rubocop/cops/favor_percent_r_spec.rb +0 -29
  331. data/spec/rubocop/cops/favor_sprintf_spec.rb +0 -51
  332. data/spec/rubocop/cops/favor_unless_over_negated_if_spec.rb +0 -62
  333. data/spec/rubocop/cops/favor_until_over_negated_while_spec.rb +0 -45
  334. data/spec/rubocop/cops/handle_exceptions_spec.rb +0 -34
  335. data/spec/rubocop/cops/hash_syntax_spec.rb +0 -49
  336. data/spec/rubocop/cops/if_with_semicolon_spec.rb +0 -23
  337. data/spec/rubocop/cops/lambda_spec.rb +0 -43
  338. data/spec/rubocop/cops/leading_comment_space_spec.rb +0 -54
  339. data/spec/rubocop/cops/line_continuation_spec.rb +0 -24
  340. data/spec/rubocop/cops/line_length_spec.rb +0 -23
  341. data/spec/rubocop/cops/loop_spec.rb +0 -31
  342. data/spec/rubocop/cops/method_and_variable_snake_case_spec.rb +0 -93
  343. data/spec/rubocop/cops/method_length_spec.rb +0 -147
  344. data/spec/rubocop/cops/multiline_if_then_spec.rb +0 -79
  345. data/spec/rubocop/cops/not_spec.rb +0 -26
  346. data/spec/rubocop/cops/numeric_literals_spec.rb +0 -49
  347. data/spec/rubocop/cops/one_line_conditional_spec.rb +0 -16
  348. data/spec/rubocop/cops/op_method_spec.rb +0 -78
  349. data/spec/rubocop/cops/parameter_lists_spec.rb +0 -24
  350. data/spec/rubocop/cops/parentheses_around_condition_spec.rb +0 -61
  351. data/spec/rubocop/cops/percent_r_spec.rb +0 -29
  352. data/spec/rubocop/cops/proc_spec.rb +0 -26
  353. data/spec/rubocop/cops/reduce_arguments_spec.rb +0 -57
  354. data/spec/rubocop/cops/rescue_exception_spec.rb +0 -125
  355. data/spec/rubocop/cops/rescue_modifier_spec.rb +0 -37
  356. data/spec/rubocop/cops/semicolon_spec.rb +0 -88
  357. data/spec/rubocop/cops/single_line_methods_spec.rb +0 -50
  358. data/spec/rubocop/cops/space_after_colon_spec.rb +0 -27
  359. data/spec/rubocop/cops/space_after_comma_spec.rb +0 -29
  360. data/spec/rubocop/cops/space_after_control_keyword_spec.rb +0 -67
  361. data/spec/rubocop/cops/space_after_semicolon_spec.rb +0 -22
  362. data/spec/rubocop/cops/space_around_braces_spec.rb +0 -47
  363. data/spec/rubocop/cops/space_around_equals_in_default_parameter_spec.rb +0 -32
  364. data/spec/rubocop/cops/space_around_operators_spec.rb +0 -209
  365. data/spec/rubocop/cops/space_inside_brackets_spec.rb +0 -49
  366. data/spec/rubocop/cops/space_inside_hash_literal_braces_spec.rb +0 -86
  367. data/spec/rubocop/cops/space_inside_parens_spec.rb +0 -31
  368. data/spec/rubocop/cops/string_literals_spec.rb +0 -58
  369. data/spec/rubocop/cops/symbol_array_spec.rb +0 -41
  370. data/spec/rubocop/cops/symbol_name_spec.rb +0 -119
  371. data/spec/rubocop/cops/syntax_spec.rb +0 -41
  372. data/spec/rubocop/cops/tab_spec.rb +0 -21
  373. data/spec/rubocop/cops/ternary_operator_spec.rb +0 -40
  374. data/spec/rubocop/cops/trailing_whitespace_spec.rb +0 -27
  375. data/spec/rubocop/cops/trivial_accessors_spec.rb +0 -337
  376. data/spec/rubocop/cops/unless_else_spec.rb +0 -29
  377. data/spec/rubocop/cops/variable_interpolation_spec.rb +0 -49
  378. data/spec/rubocop/cops/when_then_spec.rb +0 -38
  379. data/spec/rubocop/cops/word_array_spec.rb +0 -47
  380. data/spec/rubocop/reports/emacs_style_spec.rb +0 -25
  381. data/spec/rubocop/reports/report_spec.rb +0 -29
@@ -0,0 +1,37 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ module Rubocop
6
+ module Cop
7
+ module Style
8
+ describe FavorJoin do
9
+ let(:fj) { FavorJoin.new }
10
+
11
+ it 'registers an offence for an array followed by string' do
12
+ inspect_source(fj,
13
+ ['%w(one two three) * ", "'])
14
+ expect(fj.offences.size).to eq(1)
15
+ expect(fj.offences.map(&:message))
16
+ .to eq([FavorJoin::MSG])
17
+ end
18
+
19
+ it 'does not register an offence for numbers' do
20
+ inspect_source(fj,
21
+ ['%w(one two three) * 4'])
22
+ expect(fj.offences).to be_empty
23
+ end
24
+
25
+ it 'does not register an offence for ambiguous cases' do
26
+ inspect_source(fj,
27
+ ['test * ", "'])
28
+ expect(fj.offences).to be_empty
29
+
30
+ inspect_source(fj,
31
+ ['%w(one two three) * test'])
32
+ expect(fj.offences).to be_empty
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,160 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ module Rubocop
6
+ module Cop
7
+ module Style
8
+ describe FavorModifier do
9
+ let(:if_unless) { IfUnlessModifier.new }
10
+ let(:while_until) { WhileUntilModifier.new }
11
+ before { LineLength.config = { 'Max' => 79 } }
12
+
13
+ it 'registers an offence for multiline if that fits on one line' do
14
+ # This if statement fits exactly on one line if written as a
15
+ # modifier.
16
+ condition = 'a' * 38
17
+ body = 'b' * 35
18
+ expect(" #{body} if #{condition}".length).to eq(79)
19
+
20
+ inspect_source(if_unless,
21
+ [" if #{condition}",
22
+ " #{body}",
23
+ ' end'])
24
+ expect(if_unless.offences.map(&:message)).to eq(
25
+ ['Favor modifier if/unless usage when you have a single-line' +
26
+ ' body. Another good alternative is the usage of control flow' +
27
+ ' &&/||.'])
28
+ end
29
+
30
+ it "accepts multiline if that doesn't fit on one line" do
31
+ check_too_long(if_unless, 'if')
32
+ end
33
+
34
+ it 'accepts multiline if whose body is more than one line' do
35
+ check_short_multiline(if_unless, 'if')
36
+ end
37
+
38
+ it 'registers an offence for multiline unless that fits on one line' do
39
+ inspect_source(if_unless, ['unless a',
40
+ ' b',
41
+ 'end'])
42
+ expect(if_unless.offences.map(&:message)).to eq(
43
+ ['Favor modifier if/unless usage when you have a single-line' +
44
+ ' body. Another good alternative is the usage of control flow' +
45
+ ' &&/||.'])
46
+ end
47
+
48
+ it 'accepts code with EOL comment since user might want to keep it' do
49
+ inspect_source(if_unless, ['unless a',
50
+ ' b # A comment',
51
+ 'end'])
52
+ expect(if_unless.offences).to be_empty
53
+ end
54
+
55
+ it 'accepts if-else-end' do
56
+ inspect_source(if_unless,
57
+ ['if args.last.is_a? Hash then args.pop else ' +
58
+ 'Hash.new end'])
59
+ expect(if_unless.offences.map(&:message)).to be_empty
60
+ end
61
+
62
+ it "accepts multiline unless that doesn't fit on one line" do
63
+ check_too_long(while_until, 'unless')
64
+ end
65
+
66
+ it 'accepts multiline unless whose body is more than one line' do
67
+ check_short_multiline(while_until, 'unless')
68
+ end
69
+
70
+ it 'registers an offence for multiline while that fits on one line' do
71
+ check_really_short(while_until, 'while')
72
+ end
73
+
74
+ it "accepts multiline while that doesn't fit on one line" do
75
+ check_too_long(while_until, 'while')
76
+ end
77
+
78
+ it 'accepts multiline while whose body is more than one line' do
79
+ check_short_multiline(while_until, 'while')
80
+ end
81
+
82
+ it 'registers an offence for multiline until that fits on one line' do
83
+ check_really_short(while_until, 'until')
84
+ end
85
+
86
+ it "accepts multiline until that doesn't fit on one line" do
87
+ check_too_long(while_until, 'until')
88
+ end
89
+
90
+ it 'accepts multiline until whose body is more than one line' do
91
+ check_short_multiline(while_until, 'until')
92
+ end
93
+
94
+ it 'accepts an empty condition' do
95
+ check_empty(if_unless, 'if')
96
+ check_empty(if_unless, 'unless')
97
+ check_empty(while_until, 'while')
98
+ check_empty(while_until, 'until')
99
+ end
100
+
101
+ it 'accepts if/elsif' do
102
+ inspect_source(if_unless, ['if test',
103
+ ' something',
104
+ 'elsif test2',
105
+ ' something_else',
106
+ 'end'])
107
+ expect(if_unless.offences).to be_empty
108
+ end
109
+
110
+ it 'accepts modifier while' do
111
+ inspect_source(while_until, ['ala while bala'])
112
+ expect(while_until.offences).to be_empty
113
+ end
114
+
115
+ it 'accepts modifier until' do
116
+ inspect_source(while_until, ['ala until bala'])
117
+ expect(while_until.offences).to be_empty
118
+ end
119
+
120
+ def check_empty(cop, keyword)
121
+ inspect_source(cop, ["#{keyword} cond",
122
+ 'end'])
123
+ expect(cop.offences).to be_empty
124
+ end
125
+
126
+ def check_really_short(cop, keyword)
127
+ inspect_source(cop, ["#{keyword} a",
128
+ ' b',
129
+ 'end'])
130
+ expect(cop.offences.map(&:message)).to eq(
131
+ ['Favor modifier while/until usage when you have a single-line ' +
132
+ 'body.'])
133
+ end
134
+
135
+ def check_too_long(cop, keyword)
136
+ # This statement is one character too long to fit.
137
+ condition = 'a' * (40 - keyword.length)
138
+ body = 'b' * 36
139
+ expect(" #{body} #{keyword} #{condition}".length).to eq(80)
140
+
141
+ inspect_source(cop,
142
+ [" #{keyword} #{condition}",
143
+ " #{body}",
144
+ ' end'])
145
+
146
+ expect(cop.offences).to be_empty
147
+ end
148
+
149
+ def check_short_multiline(cop, keyword)
150
+ inspect_source(cop,
151
+ ["#{keyword} ENV['COVERAGE']",
152
+ " require 'simplecov'",
153
+ ' SimpleCov.start',
154
+ 'end'])
155
+ expect(cop.offences.map(&:message)).to be_empty
156
+ end
157
+ end
158
+ end
159
+ end
160
+ end
@@ -0,0 +1,53 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ module Rubocop
6
+ module Cop
7
+ module Style
8
+ describe FavorSprintf do
9
+ let(:fs) { FavorSprintf.new }
10
+
11
+ it 'registers an offence for a string followed by something' do
12
+ inspect_source(fs,
13
+ ['puts "%d" % 10'])
14
+ expect(fs.offences.size).to eq(1)
15
+ expect(fs.offences.map(&:message))
16
+ .to eq([FavorSprintf::MSG])
17
+ end
18
+
19
+ it 'registers an offence for something followed by an array' do
20
+ inspect_source(fs,
21
+ ['puts x % [10, 11]'])
22
+ expect(fs.offences.size).to eq(1)
23
+ expect(fs.offences.map(&:message))
24
+ .to eq([FavorSprintf::MSG])
25
+ end
26
+
27
+ it 'does not register an offence for numbers' do
28
+ inspect_source(fs,
29
+ ['puts 10 % 4'])
30
+ expect(fs.offences).to be_empty
31
+ end
32
+
33
+ it 'does not register an offence for ambiguous cases' do
34
+ inspect_source(fs,
35
+ ['puts x % 4'])
36
+ expect(fs.offences).to be_empty
37
+
38
+ inspect_source(fs,
39
+ ['puts x % Y'])
40
+ expect(fs.offences).to be_empty
41
+ end
42
+
43
+ it 'works if the first operand contains embedded expressions' do
44
+ inspect_source(fs,
45
+ ['puts "#{x * 5} %d #{@test}" % 10'])
46
+ expect(fs.offences.size).to eq(1)
47
+ expect(fs.offences.map(&:message))
48
+ .to eq([FavorSprintf::MSG])
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,64 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ module Rubocop
6
+ module Cop
7
+ module Style
8
+ describe FavorUnlessOverNegatedIf do
9
+ let(:fav_unless) { FavorUnlessOverNegatedIf.new }
10
+
11
+ it 'registers an offence for if with exclamation point condition' do
12
+ inspect_source(fav_unless,
13
+ ['if !a_condition',
14
+ ' some_method',
15
+ 'end',
16
+ 'some_method if !a_condition',
17
+ ])
18
+ expect(fav_unless.offences.map(&:message)).to eq(
19
+ ['Favor unless (or control flow or) over if for negative ' +
20
+ 'conditions.'] * 2)
21
+ end
22
+
23
+ it 'registers an offence for if with "not" condition' do
24
+ inspect_source(fav_unless,
25
+ ['if not a_condition',
26
+ ' some_method',
27
+ 'end',
28
+ 'some_method if not a_condition'])
29
+ expect(fav_unless.offences.map(&:message)).to eq(
30
+ ['Favor unless (or control flow or) over if for negative ' +
31
+ 'conditions.'] * 2)
32
+ expect(fav_unless.offences.map(&:line)).to eq([1, 4])
33
+ end
34
+
35
+ it 'accepts an if/else with negative condition' do
36
+ inspect_source(fav_unless,
37
+ ['if !a_condition',
38
+ ' some_method',
39
+ 'else',
40
+ ' something_else',
41
+ 'end',
42
+ 'if not a_condition',
43
+ ' some_method',
44
+ 'elsif other_condition',
45
+ ' something_else',
46
+ 'end'])
47
+ expect(fav_unless.offences.map(&:message)).to be_empty
48
+ end
49
+
50
+ it 'accepts an if where only part of the contition is negated' do
51
+ inspect_source(fav_unless,
52
+ ['if !condition && another_condition',
53
+ ' some_method',
54
+ 'end',
55
+ 'if not condition or another_condition',
56
+ ' some_method',
57
+ 'end',
58
+ 'some_method if not condition or another_condition'])
59
+ expect(fav_unless.offences.map(&:message)).to be_empty
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,47 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ module Rubocop
6
+ module Cop
7
+ module Style
8
+ describe FavorUntilOverNegatedWhile do
9
+ let(:fav_until) { FavorUntilOverNegatedWhile.new }
10
+
11
+ it 'registers an offence for while with exclamation point condition' do
12
+ inspect_source(fav_until,
13
+ ['while !a_condition',
14
+ ' some_method',
15
+ 'end',
16
+ 'some_method while !a_condition',
17
+ ])
18
+ expect(fav_until.offences.map(&:message)).to eq(
19
+ ['Favor until over while for negative conditions.'] * 2)
20
+ end
21
+
22
+ it 'registers an offence for while with "not" condition' do
23
+ inspect_source(fav_until,
24
+ ['while (not a_condition)',
25
+ ' some_method',
26
+ 'end',
27
+ 'some_method while not a_condition'])
28
+ expect(fav_until.offences.map(&:message)).to eq(
29
+ ['Favor until over while for negative conditions.'] * 2)
30
+ expect(fav_until.offences.map(&:line)).to eq([1, 4])
31
+ end
32
+
33
+ it 'accepts an while where only part of the contition is negated' do
34
+ inspect_source(fav_until,
35
+ ['while !a_condition && another_condition',
36
+ ' some_method',
37
+ 'end',
38
+ 'while not a_condition or another_condition',
39
+ ' some_method',
40
+ 'end',
41
+ 'some_method while not a_condition or other_cond'])
42
+ expect(fav_until.offences.map(&:message)).to be_empty
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,51 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ module Rubocop
6
+ module Cop
7
+ module Style
8
+ describe HashSyntax do
9
+ let(:hash_syntax) { HashSyntax.new }
10
+
11
+ it 'registers offence for hash rocket syntax when new is possible' do
12
+ inspect_source(hash_syntax, ['x = { :a => 0 }'])
13
+ expect(hash_syntax.offences.map(&:message)).to eq(
14
+ ['Ruby 1.8 hash syntax detected'])
15
+ end
16
+
17
+ it 'registers an offence for mixed syntax when new is possible' do
18
+ inspect_source(hash_syntax, ['x = { :a => 0, b: 1 }'])
19
+ expect(hash_syntax.offences.map(&:message)).to eq(
20
+ ['Ruby 1.8 hash syntax detected'])
21
+ end
22
+
23
+ it 'registers an offence for hash rockets in method calls' do
24
+ inspect_source(hash_syntax, ['func(3, :a => 0)'])
25
+ expect(hash_syntax.offences.map(&:message)).to eq(
26
+ ['Ruby 1.8 hash syntax detected'])
27
+ end
28
+
29
+ it 'accepts hash rockets when keys have different types' do
30
+ inspect_source(hash_syntax, ['x = { :a => 0, "b" => 1 }'])
31
+ expect(hash_syntax.offences.map(&:message)).to be_empty
32
+ end
33
+
34
+ it 'accepts hash rockets when keys special symbols in them' do
35
+ inspect_source(hash_syntax, ['x = { :"t o" => 0, :"\xab" => 1 }'])
36
+ expect(hash_syntax.offences.map(&:message)).to be_empty
37
+ end
38
+
39
+ it 'accepts new syntax in a hash literal' do
40
+ inspect_source(hash_syntax, ['x = { a: 0, b: 1 }'])
41
+ expect(hash_syntax.offences.map(&:message)).to be_empty
42
+ end
43
+
44
+ it 'accepts new syntax in method calls' do
45
+ inspect_source(hash_syntax, ['func(3, a: 0)'])
46
+ expect(hash_syntax.offences.map(&:message)).to be_empty
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,25 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ module Rubocop
6
+ module Cop
7
+ module Style
8
+ describe IfWithSemicolon do
9
+ let(:iws) { IfWithSemicolon.new }
10
+
11
+ it 'registers an offence for one line if/;/end' do
12
+ inspect_source(iws, ['if cond; run else dont end'])
13
+ expect(iws.offences.map(&:message)).to eq(
14
+ ['Never use if x; Use the ternary operator instead.'])
15
+ end
16
+
17
+ it 'can handle modifier conditionals' do
18
+ inspect_source(iws, ['class Hash',
19
+ 'end if RUBY_VERSION < "1.8.7"'])
20
+ expect(iws.offences.map(&:message)).to be_empty
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,45 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ module Rubocop
6
+ module Cop
7
+ module Style
8
+ describe Lambda do
9
+ let(:lambda) { Lambda.new }
10
+
11
+ it 'registers an offence for an old single-line lambda call' do
12
+ inspect_source(lambda, ['f = lambda { |x| x }'])
13
+ expect(lambda.offences.size).to eq(1)
14
+ expect(lambda.messages).to eq([Lambda::SINGLE_MSG])
15
+ end
16
+
17
+ it 'accepts the new lambda literal with single-line body' do
18
+ inspect_source(lambda, ['lambda = ->(x) { x }',
19
+ 'lambda.(1)'])
20
+ expect(lambda.offences).to be_empty
21
+ end
22
+
23
+ it 'registers an offence for a new multi-line lambda call' do
24
+ inspect_source(lambda, ['f = ->(x) do',
25
+ ' x',
26
+ 'end'])
27
+ expect(lambda.offences.size).to eq(1)
28
+ expect(lambda.messages).to eq([Lambda::MULTI_MSG])
29
+ end
30
+
31
+ it 'accepts the old lambda syntax with multi-line body' do
32
+ inspect_source(lambda, ['l = lambda do |x|',
33
+ ' x',
34
+ 'end'])
35
+ expect(lambda.offences).to be_empty
36
+ end
37
+
38
+ it 'accepts the lambda call outside of block' do
39
+ inspect_source(lambda, ['l = lambda.test'])
40
+ expect(lambda.offences).to be_empty
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end