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,34 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ module Rubocop
6
+ module Cop
7
+ module Style
8
+ describe SpaceAroundEqualsInParameterDefault do
9
+ let(:space) { SpaceAroundEqualsInParameterDefault.new }
10
+
11
+ it 'registers an offence for default value assignment without space' do
12
+ inspect_source(space, ['def f(x, y=0, z=1)', 'end'])
13
+ expect(space.offences.map(&:message)).to eq(
14
+ ['Surrounding space missing in default value assignment.'] * 2)
15
+ end
16
+
17
+ it 'registers an offence for assignment empty string without space' do
18
+ inspect_source(space, ['def f(x, y="", z=1)', 'end'])
19
+ expect(space.offences.size).to eq(2)
20
+ end
21
+
22
+ it 'registers an offence for assignment of empty list without space' do
23
+ inspect_source(space, ['def f(x, y=[])', 'end'])
24
+ expect(space.offences.size).to eq(1)
25
+ end
26
+
27
+ it 'accepts default value assignment with space' do
28
+ inspect_source(space, ['def f(x, y = 0, z = {})', 'end'])
29
+ expect(space.offences.map(&:message)).to be_empty
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,216 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ module Rubocop
6
+ module Cop
7
+ module Style
8
+ describe SpaceAroundOperators do
9
+ let(:space) { SpaceAroundOperators.new }
10
+
11
+ it 'registers an offence for assignment without space on both sides' do
12
+ inspect_source(space, ['x=0', 'y= 0', 'z =0'])
13
+ expect(space.offences.map(&:message)).to eq(
14
+ ["Surrounding space missing for operator '='."] * 3)
15
+ end
16
+
17
+ it 'registers an offence for ternary operator without space' do
18
+ inspect_source(space, ['x == 0?1:2'])
19
+ expect(space.offences.map(&:message)).to eq(
20
+ ["Surrounding space missing for operator '?'.",
21
+ "Surrounding space missing for operator ':'."])
22
+ end
23
+
24
+ it 'registers an offence in presence of modifier if statement' do
25
+ check_modifier('if')
26
+ end
27
+
28
+ it 'registers an offence in presence of modifier unless statement' do
29
+ check_modifier('unless')
30
+ end
31
+
32
+ it 'registers an offence in presence of modifier while statement' do
33
+ check_modifier('unless')
34
+ end
35
+
36
+ it 'registers an offence in presence of modifier until statement' do
37
+ check_modifier('unless')
38
+ end
39
+
40
+ def check_modifier(keyword)
41
+ src = ["a=1 #{keyword} condition",
42
+ 'c=2']
43
+ inspect_source(space, src)
44
+ expect(space.offences.map(&:line)).to eq([1, 2])
45
+ expect(space.offences.map(&:message)).to eq(
46
+ ["Surrounding space missing for operator '='."] * 2)
47
+ end
48
+
49
+ it 'registers an offence for binary operators that could be unary' do
50
+ inspect_source(space, ['a-3', 'x&0xff', 'z+0'])
51
+ expect(space.offences.map(&:message)).to eq(
52
+ ["Surrounding space missing for operator '-'.",
53
+ "Surrounding space missing for operator '&'.",
54
+ "Surrounding space missing for operator '+'."])
55
+ end
56
+
57
+ it 'registers an offence for arguments to a method' do
58
+ inspect_source(space, ['puts 1+2'])
59
+ expect(space.offences.map(&:message)).to eq(
60
+ ["Surrounding space missing for operator '+'."])
61
+ end
62
+
63
+ it 'accepts operator symbols' do
64
+ inspect_source(space, ['func(:-)'])
65
+ expect(space.offences.map(&:message)).to be_empty
66
+ end
67
+
68
+ it 'accepts ranges' do
69
+ inspect_source(space, ['a, b = (1..2), (1...3)'])
70
+ expect(space.offences.map(&:message)).to be_empty
71
+ end
72
+
73
+ it 'accepts scope operator' do
74
+ source = ['@io.class == Zlib::GzipWriter']
75
+ inspect_source(space, source)
76
+ expect(space.offences.map(&:message)).to be_empty
77
+ end
78
+
79
+ it 'accepts ::Kernel::raise' do
80
+ source = ['::Kernel::raise IllegalBlockError.new']
81
+ inspect_source(space, source)
82
+ expect(space.offences.map(&:message)).to be_empty
83
+ end
84
+
85
+ it 'accepts exclamation point negation' do
86
+ inspect_source(space, ['x = !a&&!b'])
87
+ expect(space.offences.map(&:message)).to eq(
88
+ ["Surrounding space missing for operator '&&'."])
89
+ end
90
+
91
+ it 'accepts exclamation point definition' do
92
+ inspect_source(space, [' def !',
93
+ ' !__getobj__',
94
+ ' end'])
95
+ expect(space.offences).to be_empty
96
+ expect(space.offences.map(&:message)).to be_empty
97
+ end
98
+
99
+ it 'accepts a unary' do
100
+ inspect_source(space,
101
+ [' def bm(label_width = 0, *labels, &blk)',
102
+ ' benchmark(CAPTION, label_width, FORMAT,',
103
+ ' *labels, &blk)',
104
+ ' end',
105
+ '',
106
+ ' def each &block',
107
+ ' end',
108
+ '',
109
+ ' def each *args',
110
+ ' end',
111
+ ''])
112
+ expect(space.offences.map(&:message)).to be_empty
113
+ end
114
+
115
+ it 'accepts splat operator' do
116
+ inspect_source(space, ['return *list if options'])
117
+ expect(space.offences.map(&:message)).to be_empty
118
+ end
119
+
120
+ it 'accepts def of operator' do
121
+ inspect_source(space, ['def +(other); end',
122
+ 'def self.===(other); end'])
123
+ expect(space.offences.map(&:message)).to be_empty
124
+ end
125
+
126
+ it 'accepts an operator at the end of a line' do
127
+ inspect_source(space,
128
+ ["['Favor unless over if for negative ' +",
129
+ " 'conditions.'] * 2"])
130
+ expect(space.offences.map(&:message)).to eq([])
131
+ end
132
+
133
+ it 'accepts an assignment with spaces' do
134
+ inspect_source(space, ['x = 0'])
135
+ expect(space.offences).to be_empty
136
+ end
137
+
138
+ it 'accepts an operator called with method syntax' do
139
+ inspect_source(space, ['Date.today.+(1).to_s'])
140
+ expect(space.offences).to be_empty
141
+ end
142
+
143
+ it 'registers an offence for operators without spaces' do
144
+ inspect_source(space,
145
+ ['x+= a+b-c*d/e%f^g|h&i||j',
146
+ 'y -=k&&l'])
147
+ expect(space.offences.map(&:message))
148
+ .to eq(["Surrounding space missing for operator '+='.",
149
+ "Surrounding space missing for operator '+'.",
150
+ "Surrounding space missing for operator '-'.",
151
+ "Surrounding space missing for operator '*'.",
152
+ "Surrounding space missing for operator '/'.",
153
+ "Surrounding space missing for operator '%'.",
154
+ "Surrounding space missing for operator '^'.",
155
+ "Surrounding space missing for operator '|'.",
156
+ "Surrounding space missing for operator '&'.",
157
+ "Surrounding space missing for operator '||'.",
158
+ "Surrounding space missing for operator '-='.",
159
+ "Surrounding space missing for operator '&&'."])
160
+ end
161
+
162
+ it 'accepts operators with spaces' do
163
+ inspect_source(space,
164
+ ['x += a + b - c * d / e % f ^ g | h & i || j',
165
+ 'y -= k && l'])
166
+ expect(space.offences.map(&:message)).to eq([])
167
+ end
168
+
169
+ it "accepts some operators that are exceptions & don't need spaces" do
170
+ inspect_source(space, ['(1..3)',
171
+ 'ActionController::Base',
172
+ 'each { |s, t| }'])
173
+ expect(space.offences.map(&:message)).to eq([])
174
+ end
175
+
176
+ it 'accepts an assignment followed by newline' do
177
+ inspect_source(space, ['x =', '0'])
178
+ expect(space.offences).to be_empty
179
+ end
180
+
181
+ it 'registers an offences for exponent operator with spaces' do
182
+ inspect_source(space, ['x = a * b ** 2'])
183
+ expect(space.offences.map(&:message)).to eq(
184
+ ['Space around operator ** detected.'])
185
+ end
186
+
187
+ it 'accepts exponent operator without spaces' do
188
+ inspect_source(space, ['x = a * b**2'])
189
+ expect(space.offences).to be_empty
190
+ end
191
+
192
+ it 'accepts unary operators without space' do
193
+ inspect_source(space, ['[].map(&:size)',
194
+ '-3',
195
+ 'x = +2'])
196
+ expect(space.offences.map(&:message)).to eq([])
197
+ end
198
+
199
+ it 'accepts argument default values without space' do
200
+ # These are handled by SpaceAroundEqualsInParameterDefault,
201
+ # so SpaceAroundOperators leaves them alone.
202
+ inspect_source(space,
203
+ ['def init(name=nil)',
204
+ 'end'])
205
+ expect(space.offences.map(&:message)).to be_empty
206
+ end
207
+
208
+ it 'accepts the construct class <<self with no space after <<' do
209
+ inspect_source(space, ['class <<self',
210
+ 'end'])
211
+ expect(space.offences.map(&:message)).to be_empty
212
+ end
213
+ end
214
+ end
215
+ end
216
+ 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 SpaceInsideBrackets do
9
+ let(:space) { SpaceInsideBrackets.new }
10
+
11
+ it 'registers an offence for an array literal with spaces inside' do
12
+ inspect_source(space, ['a = [1, 2 ]',
13
+ 'b = [ 1, 2]'])
14
+ expect(space.offences.map(&:message)).to eq(
15
+ ['Space inside square brackets detected.',
16
+ 'Space inside square brackets detected.'])
17
+ end
18
+
19
+ it 'accepts space inside strings within square brackets' do
20
+ inspect_source(space, ["['Encoding:',",
21
+ " ' Enabled: false']"])
22
+ expect(space.offences.map(&:message)).to be_empty
23
+ end
24
+
25
+ it 'accepts space inside square brackets if on its own row' do
26
+ inspect_source(space, ['a = [',
27
+ ' 1, 2',
28
+ ' ]'])
29
+ expect(space.offences.map(&:message)).to be_empty
30
+ end
31
+
32
+ it 'accepts square brackets as method name' do
33
+ inspect_source(space, ['def Vector.[](*array)',
34
+ 'end'])
35
+ expect(space.offences.map(&:message)).to be_empty
36
+ end
37
+
38
+ it 'accepts square brackets called with method call syntax' do
39
+ inspect_source(space, ['subject.[](0)'])
40
+ expect(space.offences.map(&:message)).to be_empty
41
+ end
42
+
43
+ it 'only reports a single space once' do
44
+ inspect_source(space, ['[ ]'])
45
+ expect(space.offences.map(&:message)).to eq(
46
+ ['Space inside square brackets detected.'])
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,99 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ module Rubocop
6
+ module Cop
7
+ module Style
8
+ describe SpaceInsideHashLiteralBraces do
9
+ let(:sihlb) { SpaceInsideHashLiteralBraces.new }
10
+ before do
11
+ SpaceInsideHashLiteralBraces.config = {
12
+ 'EnforcedStyleIsWithSpaces' => true
13
+ }
14
+ end
15
+
16
+ it 'registers an offence for hashes with no spaces by default' do
17
+ inspect_source(sihlb,
18
+ ['h = {a: 1, b: :two}',
19
+ 'h = {a => 1 }'])
20
+ expect(sihlb.offences.map(&:message)).to eq(
21
+ ['Space inside hash literal braces missing.'] * 3)
22
+ end
23
+
24
+ it 'registers an offence for hashes with no spaces if so configured' do
25
+ inspect_source(sihlb,
26
+ ['h = {a: 1, b: 2}',
27
+ 'h = {a => 1 }'])
28
+ expect(sihlb.offences.map(&:message)).to eq(
29
+ ['Space inside hash literal braces missing.'] * 3)
30
+ end
31
+
32
+ it 'registers an offence for hashes with spaces if so configured' do
33
+ SpaceInsideHashLiteralBraces.config['EnforcedStyleIsWithSpaces'] =
34
+ false
35
+ inspect_source(sihlb,
36
+ ['h = { a: 1, b: 2 }'])
37
+ expect(sihlb.offences.map(&:message)).to eq(
38
+ ['Space inside hash literal braces detected.'] * 2)
39
+ end
40
+
41
+ it 'accepts hashes with spaces by default' do
42
+ inspect_source(sihlb,
43
+ ['h = { a: 1, b: 2 }',
44
+ 'h = { a => 1 }'])
45
+ expect(sihlb.offences.map(&:message)).to be_empty
46
+ end
47
+
48
+ it 'accepts hashes with no spaces if so configured' do
49
+ SpaceInsideHashLiteralBraces.config['EnforcedStyleIsWithSpaces'] =
50
+ false
51
+ inspect_source(sihlb,
52
+ ['h = {a: 1, b: 2}',
53
+ 'h = {a => 1}'])
54
+ expect(sihlb.offences.map(&:message)).to be_empty
55
+ end
56
+
57
+ it 'accepts multiline hashes even if configured for no space' do
58
+ SpaceInsideHashLiteralBraces.config['EnforcedStyleIsWithSpaces'] =
59
+ false
60
+ inspect_source(sihlb,
61
+ ['h = {',
62
+ ' a: 1,',
63
+ ' b: 2,',
64
+ '}'])
65
+ expect(sihlb.offences).to be_empty
66
+ end
67
+
68
+ it 'accepts empty hashes without spaces by default' do
69
+ inspect_source(sihlb, ['h = {}'])
70
+ expect(sihlb.offences).to be_empty
71
+ end
72
+
73
+ it 'accepts empty hashes without spaces if configured false' do
74
+ SpaceInsideHashLiteralBraces.config['EnforcedStyleIsWithSpaces'] =
75
+ false
76
+ inspect_source(sihlb, ['h = {}'])
77
+ expect(sihlb.offences).to be_empty
78
+ end
79
+
80
+ it 'accepts empty hashes without spaces even if configured true' do
81
+ inspect_source(sihlb, ['h = {}'])
82
+ expect(sihlb.offences).to be_empty
83
+ end
84
+
85
+ it 'accepts hash literals with no braces' do
86
+ inspect_source(sihlb, ['x(a: b.c)'])
87
+ expect(sihlb.offences).to be_empty
88
+ end
89
+
90
+ it 'can handle interpolation in a braceless hash literal' do
91
+ # A tricky special case where the closing brace of the
92
+ # interpolation risks getting confused for a hash literal brace.
93
+ inspect_source(sihlb, ['f(get: "#{x}")'])
94
+ expect(sihlb.offences).to be_empty
95
+ end
96
+ end
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,33 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ module Rubocop
6
+ module Cop
7
+ module Style
8
+ describe SpaceInsideParens do
9
+ let(:space) { SpaceInsideParens.new }
10
+
11
+ it 'registers an offence for spaces inside parens' do
12
+ inspect_source(space, ['f( 3)',
13
+ 'g(3 )'])
14
+ expect(space.offences.map(&:message)).to eq(
15
+ ['Space inside parentheses detected.',
16
+ 'Space inside parentheses detected.'])
17
+ end
18
+
19
+ it 'accepts parentheses in block parameter list' do
20
+ inspect_source(space,
21
+ ['list.inject(Tms.new) { |sum, (label, item)|',
22
+ '}'])
23
+ expect(space.offences.map(&:message)).to be_empty
24
+ end
25
+
26
+ it 'accepts parentheses with no spaces' do
27
+ inspect_source(space, ['split("\n")'])
28
+ expect(space.offences.map(&:message)).to be_empty
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,62 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ module Rubocop
6
+ module Cop
7
+ module Style
8
+ describe StringLiterals do
9
+ let(:sl) { StringLiterals.new }
10
+
11
+ it 'registers offence for double quotes when single quotes suffice' do
12
+ inspect_source(sl, ['s = "abc"',
13
+ 'x = "a\\\\b"',
14
+ 'y ="\\\\b"',
15
+ 'z = "a\\\\"'])
16
+ expect(sl.offences.size).to eq(4)
17
+ end
18
+
19
+ it 'accepts double quotes when they are needed' do
20
+ src = ['a = "\n"',
21
+ 'b = "#{encode_severity}:' +
22
+ '#{sprintf("%3d", line_number)}: #{m}"',
23
+ 'c = "\'"',
24
+ 'd = "#@test"',
25
+ 'e = "#$test"',
26
+ 'f = "\e"',
27
+ 'g = "#@@test"']
28
+ inspect_source(sl, src)
29
+ expect(sl.offences).to be_empty
30
+ end
31
+
32
+ it 'accepts double quotes at the start of regexp literals' do
33
+ inspect_source(sl, ['s = /"((?:[^\\"]|\\.)*)"/'])
34
+ expect(sl.offences).to be_empty
35
+ end
36
+
37
+ it 'accepts double quotes with some other special symbols' do
38
+ # "Substitutions in double-quoted strings"
39
+ # http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html
40
+ src = ['g = "\xf9"',
41
+ 'copyright = "\u00A9"']
42
+ inspect_source(sl, src)
43
+ expect(sl.offences).to be_empty
44
+ end
45
+
46
+ it 'can handle double quotes within embedded expression' do
47
+ src = ['"#{"A"}"']
48
+ inspect_source(sl, src)
49
+ expect(sl.offences).to be_empty
50
+ end
51
+
52
+ it 'can handle a built-in constant parsed as string' do
53
+ # Parser will produce str nodes for constants such as __FILE__.
54
+ src = ['if __FILE__ == $PROGRAM_NAME',
55
+ 'end']
56
+ inspect_source(sl, src)
57
+ expect(sl.offences).to be_empty
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end