rubocop 0.29.1 → 0.30.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rubocop might be problematic. Click here for more details.

Files changed (341) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +73 -1
  3. data/README.md +11 -2
  4. data/config/default.yml +194 -6
  5. data/config/disabled.yml +25 -1
  6. data/config/enabled.yml +74 -12
  7. data/lib/rubocop.rb +19 -2
  8. data/lib/rubocop/config.rb +23 -3
  9. data/lib/rubocop/config_loader.rb +9 -1
  10. data/lib/rubocop/cop/autocorrect_logic.rb +26 -0
  11. data/lib/rubocop/cop/cop.rb +33 -17
  12. data/lib/rubocop/cop/lint/assignment_in_condition.rb +16 -4
  13. data/lib/rubocop/cop/lint/block_alignment.rb +5 -14
  14. data/lib/rubocop/cop/lint/literal_in_interpolation.rb +1 -1
  15. data/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +61 -0
  16. data/lib/rubocop/cop/lint/void.rb +11 -3
  17. data/lib/rubocop/cop/mixin/on_normal_if_unless.rb +17 -0
  18. data/lib/rubocop/cop/performance/detect.rb +72 -0
  19. data/lib/rubocop/cop/performance/flat_map.rb +64 -0
  20. data/lib/rubocop/cop/performance/reverse_each.rb +43 -0
  21. data/lib/rubocop/cop/performance/sample.rb +58 -0
  22. data/lib/rubocop/cop/performance/size.rb +64 -0
  23. data/lib/rubocop/cop/rails/date.rb +121 -0
  24. data/lib/rubocop/cop/rails/find_by.rb +52 -0
  25. data/lib/rubocop/cop/rails/find_each.rb +41 -0
  26. data/lib/rubocop/cop/rails/time_zone.rb +93 -0
  27. data/lib/rubocop/cop/style/auto_resource_cleanup.rb +45 -0
  28. data/lib/rubocop/cop/style/block_delimiters.rb +186 -0
  29. data/lib/rubocop/cop/style/closing_parenthesis_indentation.rb +76 -0
  30. data/lib/rubocop/cop/style/command_literal.rb +120 -0
  31. data/lib/rubocop/cop/style/copyright.rb +87 -0
  32. data/lib/rubocop/cop/style/documentation.rb +32 -0
  33. data/lib/rubocop/cop/style/empty_else.rb +85 -16
  34. data/lib/rubocop/cop/style/encoding.rb +14 -2
  35. data/lib/rubocop/cop/style/end_of_line.rb +5 -0
  36. data/lib/rubocop/cop/style/hash_syntax.rb +86 -23
  37. data/lib/rubocop/cop/style/if_unless_modifier.rb +15 -0
  38. data/lib/rubocop/cop/style/indentation_consistency.rb +13 -6
  39. data/lib/rubocop/cop/style/indentation_width.rb +34 -10
  40. data/lib/rubocop/cop/style/lambda.rb +32 -17
  41. data/lib/rubocop/cop/style/line_end_concatenation.rb +4 -0
  42. data/lib/rubocop/cop/style/missing_else.rb +72 -0
  43. data/lib/rubocop/cop/style/regexp_literal.rb +89 -58
  44. data/lib/rubocop/cop/style/space_around_operators.rb +13 -2
  45. data/lib/rubocop/cop/style/space_before_block_braces.rb +3 -3
  46. data/lib/rubocop/cop/style/space_inside_block_braces.rb +9 -5
  47. data/lib/rubocop/cop/style/symbol_literal.rb +36 -0
  48. data/lib/rubocop/cop/style/trailing_blank_lines.rb +7 -0
  49. data/lib/rubocop/cop/style/trailing_comma.rb +21 -7
  50. data/lib/rubocop/cop/style/trivial_accessors.rb +17 -3
  51. data/lib/rubocop/cop/style/unneeded_capital_w.rb +4 -6
  52. data/lib/rubocop/cop/style/while_until_modifier.rb +10 -0
  53. data/lib/rubocop/cop/util.rb +24 -19
  54. data/lib/rubocop/cop/variable_force.rb +14 -0
  55. data/lib/rubocop/cop/variable_force/reference.rb +10 -4
  56. data/lib/rubocop/formatter/html_formatter.rb +10 -4
  57. data/lib/rubocop/formatter/text_util.rb +5 -7
  58. data/lib/rubocop/options.rb +47 -45
  59. data/lib/rubocop/path_util.rb +12 -8
  60. data/lib/rubocop/processed_source.rb +12 -1
  61. data/lib/rubocop/rake_task.rb +2 -2
  62. data/lib/rubocop/version.rb +1 -1
  63. data/relnotes/v0.30.0.md +145 -0
  64. data/rubocop.gemspec +15 -3
  65. metadata +22 -545
  66. data/.gitignore +0 -54
  67. data/.rspec +0 -1
  68. data/.rubocop.yml +0 -11
  69. data/.rubocop_todo.yml +0 -28
  70. data/.travis.yml +0 -22
  71. data/Gemfile +0 -15
  72. data/Rakefile +0 -41
  73. data/lib/rubocop/cop/style/blocks.rb +0 -80
  74. data/lib/rubocop/cop/style/unneeded_percent_x.rb +0 -25
  75. data/logo/rubocop-final-logo.eps +0 -0
  76. data/spec/.rubocop.yml +0 -5
  77. data/spec/fixtures/html_formatter/expected.html +0 -495
  78. data/spec/fixtures/html_formatter/project/app/controllers/application_controller.rb +0 -5
  79. data/spec/fixtures/html_formatter/project/app/controllers/books_controller.rb +0 -74
  80. data/spec/fixtures/html_formatter/project/app/models/book.rb +0 -5
  81. data/spec/isolated_environment_spec.rb +0 -24
  82. data/spec/project_spec.rb +0 -119
  83. data/spec/rubocop/cli_spec.rb +0 -2740
  84. data/spec/rubocop/comment_config_spec.rb +0 -105
  85. data/spec/rubocop/config_loader_spec.rb +0 -377
  86. data/spec/rubocop/config_spec.rb +0 -235
  87. data/spec/rubocop/config_store_spec.rb +0 -53
  88. data/spec/rubocop/cop/commissioner_spec.rb +0 -85
  89. data/spec/rubocop/cop/cop_spec.rb +0 -135
  90. data/spec/rubocop/cop/corrector_spec.rb +0 -59
  91. data/spec/rubocop/cop/force_spec.rb +0 -29
  92. data/spec/rubocop/cop/lint/ambiguous_operator_spec.rb +0 -113
  93. data/spec/rubocop/cop/lint/ambiguous_regexp_literal_spec.rb +0 -35
  94. data/spec/rubocop/cop/lint/assignment_in_condition_spec.rb +0 -130
  95. data/spec/rubocop/cop/lint/block_alignment_spec.rb +0 -533
  96. data/spec/rubocop/cop/lint/condition_position_spec.rb +0 -51
  97. data/spec/rubocop/cop/lint/debugger_spec.rb +0 -73
  98. data/spec/rubocop/cop/lint/def_end_alignment_spec.rb +0 -108
  99. data/spec/rubocop/cop/lint/deprecated_class_methods_spec.rb +0 -38
  100. data/spec/rubocop/cop/lint/duplicate_methods_spec.rb +0 -189
  101. data/spec/rubocop/cop/lint/else_layout_spec.rb +0 -65
  102. data/spec/rubocop/cop/lint/empty_ensure_spec.rb +0 -27
  103. data/spec/rubocop/cop/lint/empty_interpolation_spec.rb +0 -18
  104. data/spec/rubocop/cop/lint/end_alignment_spec.rb +0 -91
  105. data/spec/rubocop/cop/lint/end_in_method_spec.rb +0 -29
  106. data/spec/rubocop/cop/lint/ensure_return_spec.rb +0 -39
  107. data/spec/rubocop/cop/lint/eval_spec.rb +0 -33
  108. data/spec/rubocop/cop/lint/handle_exceptions_spec.rb +0 -30
  109. data/spec/rubocop/cop/lint/invalid_character_literal_spec.rb +0 -33
  110. data/spec/rubocop/cop/lint/literal_in_condition_spec.rb +0 -172
  111. data/spec/rubocop/cop/lint/literal_in_interpolation_spec.rb +0 -31
  112. data/spec/rubocop/cop/lint/loop_spec.rb +0 -27
  113. data/spec/rubocop/cop/lint/parentheses_as_grouped_expression_spec.rb +0 -57
  114. data/spec/rubocop/cop/lint/require_parentheses_spec.rb +0 -82
  115. data/spec/rubocop/cop/lint/rescue_exception_spec.rb +0 -123
  116. data/spec/rubocop/cop/lint/shadowing_outer_local_variable_spec.rb +0 -237
  117. data/spec/rubocop/cop/lint/space_before_first_arg_spec.rb +0 -66
  118. data/spec/rubocop/cop/lint/string_conversion_in_interpolation_spec.rb +0 -51
  119. data/spec/rubocop/cop/lint/syntax_spec.rb +0 -34
  120. data/spec/rubocop/cop/lint/underscore_prefixed_variable_name_spec.rb +0 -179
  121. data/spec/rubocop/cop/lint/unreachable_code_spec.rb +0 -63
  122. data/spec/rubocop/cop/lint/unused_block_argument_spec.rb +0 -231
  123. data/spec/rubocop/cop/lint/unused_method_argument_spec.rb +0 -278
  124. data/spec/rubocop/cop/lint/useless_access_modifier_spec.rb +0 -192
  125. data/spec/rubocop/cop/lint/useless_assignment_spec.rb +0 -1778
  126. data/spec/rubocop/cop/lint/useless_comparison_spec.rb +0 -30
  127. data/spec/rubocop/cop/lint/useless_else_without_rescue_spec.rb +0 -48
  128. data/spec/rubocop/cop/lint/useless_setter_call_spec.rb +0 -211
  129. data/spec/rubocop/cop/lint/void_spec.rb +0 -64
  130. data/spec/rubocop/cop/metrics/abc_size_spec.rb +0 -109
  131. data/spec/rubocop/cop/metrics/block_nesting_spec.rb +0 -156
  132. data/spec/rubocop/cop/metrics/class_length_spec.rb +0 -131
  133. data/spec/rubocop/cop/metrics/cyclomatic_complexity_spec.rb +0 -204
  134. data/spec/rubocop/cop/metrics/line_length_spec.rb +0 -136
  135. data/spec/rubocop/cop/metrics/method_length_spec.rb +0 -147
  136. data/spec/rubocop/cop/metrics/parameter_lists_spec.rb +0 -44
  137. data/spec/rubocop/cop/metrics/perceived_complexity_spec.rb +0 -222
  138. data/spec/rubocop/cop/offense_spec.rb +0 -133
  139. data/spec/rubocop/cop/rails/action_filter_spec.rb +0 -64
  140. data/spec/rubocop/cop/rails/default_scope_spec.rb +0 -37
  141. data/spec/rubocop/cop/rails/delegate_spec.rb +0 -177
  142. data/spec/rubocop/cop/rails/has_and_belongs_to_many_spec.rb +0 -13
  143. data/spec/rubocop/cop/rails/output_spec.rb +0 -37
  144. data/spec/rubocop/cop/rails/read_write_attribute_spec.rb +0 -130
  145. data/spec/rubocop/cop/rails/scope_args_spec.rb +0 -25
  146. data/spec/rubocop/cop/rails/validation_spec.rb +0 -28
  147. data/spec/rubocop/cop/severity_spec.rb +0 -113
  148. data/spec/rubocop/cop/style/access_modifier_indentation_spec.rb +0 -421
  149. data/spec/rubocop/cop/style/accessor_method_name_spec.rb +0 -81
  150. data/spec/rubocop/cop/style/alias_spec.rb +0 -59
  151. data/spec/rubocop/cop/style/align_array_spec.rb +0 -123
  152. data/spec/rubocop/cop/style/align_hash_spec.rb +0 -411
  153. data/spec/rubocop/cop/style/align_parameters_spec.rb +0 -431
  154. data/spec/rubocop/cop/style/and_or_spec.rb +0 -235
  155. data/spec/rubocop/cop/style/array_join_spec.rb +0 -29
  156. data/spec/rubocop/cop/style/ascii_comments_spec.rb +0 -21
  157. data/spec/rubocop/cop/style/ascii_identifiers_spec.rb +0 -36
  158. data/spec/rubocop/cop/style/attr_spec.rb +0 -29
  159. data/spec/rubocop/cop/style/bare_percent_literals_spec.rb +0 -132
  160. data/spec/rubocop/cop/style/begin_block_spec.rb +0 -13
  161. data/spec/rubocop/cop/style/block_comments_spec.rb +0 -45
  162. data/spec/rubocop/cop/style/block_end_newline_spec.rb +0 -61
  163. data/spec/rubocop/cop/style/blocks_spec.rb +0 -121
  164. data/spec/rubocop/cop/style/braces_around_hash_parameters_spec.rb +0 -288
  165. data/spec/rubocop/cop/style/case_equality_spec.rb +0 -13
  166. data/spec/rubocop/cop/style/case_indentation_spec.rb +0 -293
  167. data/spec/rubocop/cop/style/character_literal_spec.rb +0 -37
  168. data/spec/rubocop/cop/style/class_and_module_camel_case_spec.rb +0 -40
  169. data/spec/rubocop/cop/style/class_and_module_children_spec.rb +0 -133
  170. data/spec/rubocop/cop/style/class_check_spec.rb +0 -41
  171. data/spec/rubocop/cop/style/class_methods_spec.rb +0 -80
  172. data/spec/rubocop/cop/style/class_vars_spec.rb +0 -19
  173. data/spec/rubocop/cop/style/collection_methods_spec.rb +0 -48
  174. data/spec/rubocop/cop/style/colon_method_call_spec.rb +0 -65
  175. data/spec/rubocop/cop/style/comment_annotation_spec.rb +0 -86
  176. data/spec/rubocop/cop/style/comment_indentation_spec.rb +0 -179
  177. data/spec/rubocop/cop/style/constant_name_spec.rb +0 -65
  178. data/spec/rubocop/cop/style/def_with_parentheses_spec.rb +0 -43
  179. data/spec/rubocop/cop/style/deprecated_hash_methods_spec.rb +0 -45
  180. data/spec/rubocop/cop/style/documentation_spec.rb +0 -146
  181. data/spec/rubocop/cop/style/dot_position_spec.rb +0 -132
  182. data/spec/rubocop/cop/style/double_negation_spec.rb +0 -22
  183. data/spec/rubocop/cop/style/each_with_object_spec.rb +0 -73
  184. data/spec/rubocop/cop/style/else_alignment_spec.rb +0 -506
  185. data/spec/rubocop/cop/style/empty_else_spec.rb +0 -100
  186. data/spec/rubocop/cop/style/empty_line_between_defs_spec.rb +0 -135
  187. data/spec/rubocop/cop/style/empty_lines_around_access_modifier_spec.rb +0 -178
  188. data/spec/rubocop/cop/style/empty_lines_around_block_body_spec.rb +0 -103
  189. data/spec/rubocop/cop/style/empty_lines_around_class_body_spec.rb +0 -135
  190. data/spec/rubocop/cop/style/empty_lines_around_method_body_spec.rb +0 -90
  191. data/spec/rubocop/cop/style/empty_lines_around_module_body_spec.rb +0 -79
  192. data/spec/rubocop/cop/style/empty_lines_spec.rb +0 -51
  193. data/spec/rubocop/cop/style/empty_literal_spec.rb +0 -117
  194. data/spec/rubocop/cop/style/encoding_spec.rb +0 -139
  195. data/spec/rubocop/cop/style/end_block_spec.rb +0 -13
  196. data/spec/rubocop/cop/style/end_of_line_spec.rb +0 -65
  197. data/spec/rubocop/cop/style/even_odd_spec.rb +0 -164
  198. data/spec/rubocop/cop/style/extra_spacing_spec.rb +0 -68
  199. data/spec/rubocop/cop/style/file_name_spec.rb +0 -84
  200. data/spec/rubocop/cop/style/first_parameter_indentation_spec.rb +0 -304
  201. data/spec/rubocop/cop/style/flip_flop_spec.rb +0 -23
  202. data/spec/rubocop/cop/style/for_spec.rb +0 -105
  203. data/spec/rubocop/cop/style/format_string_spec.rb +0 -184
  204. data/spec/rubocop/cop/style/global_vars_spec.rb +0 -34
  205. data/spec/rubocop/cop/style/guard_clause_spec.rb +0 -172
  206. data/spec/rubocop/cop/style/hash_syntax_spec.rb +0 -137
  207. data/spec/rubocop/cop/style/if_unless_modifier_spec.rb +0 -146
  208. data/spec/rubocop/cop/style/if_with_semicolon_spec.rb +0 -24
  209. data/spec/rubocop/cop/style/indent_array_spec.rb +0 -173
  210. data/spec/rubocop/cop/style/indent_hash_spec.rb +0 -367
  211. data/spec/rubocop/cop/style/indentation_consistency_spec.rb +0 -509
  212. data/spec/rubocop/cop/style/indentation_width_spec.rb +0 -885
  213. data/spec/rubocop/cop/style/infinite_loop_spec.rb +0 -48
  214. data/spec/rubocop/cop/style/inline_comment_spec.rb +0 -13
  215. data/spec/rubocop/cop/style/lambda_call_spec.rb +0 -65
  216. data/spec/rubocop/cop/style/lambda_spec.rb +0 -76
  217. data/spec/rubocop/cop/style/leading_comment_space_spec.rb +0 -64
  218. data/spec/rubocop/cop/style/line_end_concatenation_spec.rb +0 -184
  219. data/spec/rubocop/cop/style/method_call_parentheses_spec.rb +0 -59
  220. data/spec/rubocop/cop/style/method_called_on_do_end_block_spec.rb +0 -60
  221. data/spec/rubocop/cop/style/method_def_parentheses_spec.rb +0 -108
  222. data/spec/rubocop/cop/style/method_name_spec.rb +0 -125
  223. data/spec/rubocop/cop/style/module_function_spec.rb +0 -24
  224. data/spec/rubocop/cop/style/multiline_block_chain_spec.rb +0 -78
  225. data/spec/rubocop/cop/style/multiline_block_layout_spec.rb +0 -199
  226. data/spec/rubocop/cop/style/multiline_if_then_spec.rb +0 -134
  227. data/spec/rubocop/cop/style/multiline_operation_indentation_spec.rb +0 -464
  228. data/spec/rubocop/cop/style/multiline_ternary_operator_spec.rb +0 -18
  229. data/spec/rubocop/cop/style/negated_if_spec.rb +0 -102
  230. data/spec/rubocop/cop/style/negated_while_spec.rb +0 -64
  231. data/spec/rubocop/cop/style/nested_ternary_operator_spec.rb +0 -21
  232. data/spec/rubocop/cop/style/next_spec.rb +0 -301
  233. data/spec/rubocop/cop/style/nil_comparison_spec.rb +0 -29
  234. data/spec/rubocop/cop/style/non_nil_check_spec.rb +0 -132
  235. data/spec/rubocop/cop/style/not_spec.rb +0 -28
  236. data/spec/rubocop/cop/style/numeric_literals_spec.rb +0 -80
  237. data/spec/rubocop/cop/style/one_line_conditional_spec.rb +0 -13
  238. data/spec/rubocop/cop/style/op_method_spec.rb +0 -85
  239. data/spec/rubocop/cop/style/parentheses_around_condition_spec.rb +0 -161
  240. data/spec/rubocop/cop/style/percent_literal_delimiters_spec.rb +0 -316
  241. data/spec/rubocop/cop/style/percent_q_literals_spec.rb +0 -122
  242. data/spec/rubocop/cop/style/perl_backrefs_spec.rb +0 -22
  243. data/spec/rubocop/cop/style/predicate_name_spec.rb +0 -57
  244. data/spec/rubocop/cop/style/proc_spec.rb +0 -27
  245. data/spec/rubocop/cop/style/raise_args_spec.rb +0 -87
  246. data/spec/rubocop/cop/style/redundant_begin_spec.rb +0 -121
  247. data/spec/rubocop/cop/style/redundant_exception_spec.rb +0 -59
  248. data/spec/rubocop/cop/style/redundant_return_spec.rb +0 -171
  249. data/spec/rubocop/cop/style/redundant_self_spec.rb +0 -186
  250. data/spec/rubocop/cop/style/regexp_literal_spec.rb +0 -188
  251. data/spec/rubocop/cop/style/rescue_modifier_spec.rb +0 -116
  252. data/spec/rubocop/cop/style/self_assignment_spec.rb +0 -49
  253. data/spec/rubocop/cop/style/semicolon_spec.rb +0 -114
  254. data/spec/rubocop/cop/style/signal_exception_spec.rb +0 -289
  255. data/spec/rubocop/cop/style/single_line_block_params_spec.rb +0 -82
  256. data/spec/rubocop/cop/style/single_line_methods_spec.rb +0 -94
  257. data/spec/rubocop/cop/style/single_space_before_first_arg_spec.rb +0 -63
  258. data/spec/rubocop/cop/style/space_after_colon_spec.rb +0 -55
  259. data/spec/rubocop/cop/style/space_after_comma_spec.rb +0 -30
  260. data/spec/rubocop/cop/style/space_after_control_keyword_spec.rb +0 -84
  261. data/spec/rubocop/cop/style/space_after_method_name_spec.rb +0 -70
  262. data/spec/rubocop/cop/style/space_after_not_spec.rb +0 -22
  263. data/spec/rubocop/cop/style/space_after_semicolon_spec.rb +0 -23
  264. data/spec/rubocop/cop/style/space_around_block_parameters_spec.rb +0 -155
  265. data/spec/rubocop/cop/style/space_around_equals_in_parameter_default_spec.rb +0 -95
  266. data/spec/rubocop/cop/style/space_around_operators_spec.rb +0 -330
  267. data/spec/rubocop/cop/style/space_before_block_braces_spec.rb +0 -73
  268. data/spec/rubocop/cop/style/space_before_comma_spec.rb +0 -42
  269. data/spec/rubocop/cop/style/space_before_comment_spec.rb +0 -34
  270. data/spec/rubocop/cop/style/space_before_modifier_keyword_spec.rb +0 -70
  271. data/spec/rubocop/cop/style/space_before_semicolon_spec.rb +0 -28
  272. data/spec/rubocop/cop/style/space_inside_block_braces_spec.rb +0 -317
  273. data/spec/rubocop/cop/style/space_inside_brackets_spec.rb +0 -83
  274. data/spec/rubocop/cop/style/space_inside_hash_literal_braces_spec.rb +0 -147
  275. data/spec/rubocop/cop/style/space_inside_parens_spec.rb +0 -44
  276. data/spec/rubocop/cop/style/space_inside_range_literal_spec.rb +0 -64
  277. data/spec/rubocop/cop/style/special_global_vars_spec.rb +0 -62
  278. data/spec/rubocop/cop/style/string_literals_in_interpolation_spec.rb +0 -99
  279. data/spec/rubocop/cop/style/string_literals_spec.rb +0 -228
  280. data/spec/rubocop/cop/style/struct_inheritance_spec.rb +0 -44
  281. data/spec/rubocop/cop/style/symbol_array_spec.rb +0 -37
  282. data/spec/rubocop/cop/style/symbol_proc_spec.rb +0 -100
  283. data/spec/rubocop/cop/style/tab_spec.rb +0 -47
  284. data/spec/rubocop/cop/style/trailing_blank_lines_spec.rb +0 -83
  285. data/spec/rubocop/cop/style/trailing_comma_spec.rb +0 -390
  286. data/spec/rubocop/cop/style/trailing_whitespace_spec.rb +0 -31
  287. data/spec/rubocop/cop/style/trivial_accessors_spec.rb +0 -558
  288. data/spec/rubocop/cop/style/unless_else_spec.rb +0 -23
  289. data/spec/rubocop/cop/style/unneeded_capital_w_spec.rb +0 -90
  290. data/spec/rubocop/cop/style/unneeded_percent_q_spec.rb +0 -127
  291. data/spec/rubocop/cop/style/unneeded_percent_x_spec.rb +0 -34
  292. data/spec/rubocop/cop/style/variable_interpolation_spec.rb +0 -76
  293. data/spec/rubocop/cop/style/variable_name_spec.rb +0 -107
  294. data/spec/rubocop/cop/style/when_then_spec.rb +0 -42
  295. data/spec/rubocop/cop/style/while_until_do_spec.rb +0 -55
  296. data/spec/rubocop/cop/style/while_until_modifier_spec.rb +0 -93
  297. data/spec/rubocop/cop/style/word_array_spec.rb +0 -117
  298. data/spec/rubocop/cop/team_spec.rb +0 -190
  299. data/spec/rubocop/cop/util_spec.rb +0 -102
  300. data/spec/rubocop/cop/variable_force/assignment_spec.rb +0 -200
  301. data/spec/rubocop/cop/variable_force/locatable_spec.rb +0 -699
  302. data/spec/rubocop/cop/variable_force/reference_spec.rb +0 -19
  303. data/spec/rubocop/cop/variable_force/scope_spec.rb +0 -319
  304. data/spec/rubocop/cop/variable_force/variable_spec.rb +0 -59
  305. data/spec/rubocop/cop/variable_force/variable_table_spec.rb +0 -276
  306. data/spec/rubocop/cop/variable_force_spec.rb +0 -26
  307. data/spec/rubocop/formatter/base_formatter_spec.rb +0 -191
  308. data/spec/rubocop/formatter/clang_style_formatter_spec.rb +0 -114
  309. data/spec/rubocop/formatter/colorizable_spec.rb +0 -107
  310. data/spec/rubocop/formatter/disabled_config_formatter_spec.rb +0 -50
  311. data/spec/rubocop/formatter/disabled_lines_formatter_spec.rb +0 -67
  312. data/spec/rubocop/formatter/emacs_style_formatter_spec.rb +0 -63
  313. data/spec/rubocop/formatter/file_list_formatter_spec.rb +0 -33
  314. data/spec/rubocop/formatter/formatter_set_spec.rb +0 -141
  315. data/spec/rubocop/formatter/fuubar_style_formatter_spec.rb +0 -129
  316. data/spec/rubocop/formatter/html_formatter_spec.rb +0 -48
  317. data/spec/rubocop/formatter/json_formatter_spec.rb +0 -152
  318. data/spec/rubocop/formatter/offense_count_formatter_spec.rb +0 -75
  319. data/spec/rubocop/formatter/progress_formatter_spec.rb +0 -182
  320. data/spec/rubocop/formatter/simple_text_formatter_spec.rb +0 -135
  321. data/spec/rubocop/formatter/text_util_spec.rb +0 -55
  322. data/spec/rubocop/options_spec.rb +0 -181
  323. data/spec/rubocop/path_util_spec.rb +0 -77
  324. data/spec/rubocop/processed_source_spec.rb +0 -184
  325. data/spec/rubocop/rake_task_spec.rb +0 -122
  326. data/spec/rubocop/runner_spec.rb +0 -99
  327. data/spec/rubocop/string_util_spec.rb +0 -46
  328. data/spec/rubocop/target_finder_spec.rb +0 -245
  329. data/spec/rubocop/token_spec.rb +0 -29
  330. data/spec/spec_helper.rb +0 -39
  331. data/spec/support/cop_helper.rb +0 -75
  332. data/spec/support/cops/class_must_be_a_module_cop.rb +0 -19
  333. data/spec/support/cops/module_must_be_a_class_cop.rb +0 -19
  334. data/spec/support/coverage.rb +0 -15
  335. data/spec/support/custom_matchers.rb +0 -58
  336. data/spec/support/file_helper.rb +0 -23
  337. data/spec/support/jruby_workaround.rb +0 -15
  338. data/spec/support/mri_syntax_checker.rb +0 -73
  339. data/spec/support/shared_contexts.rb +0 -53
  340. data/spec/support/shared_examples.rb +0 -55
  341. data/spec/support/statement_modifier_helper.rb +0 -41
@@ -1,102 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::Util do
6
- describe '#line_range' do
7
- let(:source) do
8
- <<-END
9
- foo = 1
10
- bar = 2
11
- class Test
12
- def some_method
13
- do_something
14
- end
15
- end
16
- baz = 8
17
- END
18
- end
19
-
20
- let(:ast) do
21
- processed_source = parse_source(source)
22
- processed_source.ast
23
- end
24
-
25
- let(:node) { ast.each_node.find(&:class_type?) }
26
-
27
- context 'when Source::Range object is passed' do
28
- it 'returns line range of that' do
29
- line_range = described_class.line_range(node.loc.expression)
30
- expect(line_range).to eq(3..7)
31
- end
32
- end
33
-
34
- context 'when AST::Node object is passed' do
35
- it 'returns line range of the expression' do
36
- line_range = described_class.line_range(node)
37
- expect(line_range).to eq(3..7)
38
- end
39
- end
40
- end
41
-
42
- describe 'source indicated by #range_with_surrounding_comma' do
43
- let(:input_range) { OpenStruct.new(begin_pos: 7, end_pos: 12) }
44
- let(:buffer) { OpenStruct.new(source: 'raise ,Error,') }
45
-
46
- subject do
47
- r = described_class.range_with_surrounding_comma(input_range,
48
- side, buffer)
49
- buffer.source[r.begin_pos...r.end_pos]
50
- end
51
-
52
- context 'when side is :both' do
53
- let(:side) { :both }
54
- it { should eq(',Error,') }
55
- end
56
-
57
- context 'when side is :left' do
58
- let(:side) { :left }
59
- it { should eq(',Error') }
60
- end
61
-
62
- context 'when side is :right' do
63
- let(:side) { :right }
64
- it { should eq('Error,') }
65
- end
66
- end
67
-
68
- describe 'source indicated by #range_with_surrounding_space' do
69
- let(:input_range) { OpenStruct.new(begin_pos: 5, end_pos: 9) }
70
- let(:buffer) { OpenStruct.new(source: 'f { a(2) }') }
71
- subject do
72
- r = described_class.range_with_surrounding_space(input_range, side,
73
- buffer)
74
- buffer.source[r.begin_pos...r.end_pos]
75
- end
76
-
77
- context 'when side is :both' do
78
- let(:side) { :both }
79
- it { should eq(' a(2) ') }
80
- end
81
-
82
- context 'when side is :left' do
83
- let(:side) { :left }
84
- it { should eq(' a(2)') }
85
- end
86
-
87
- context 'when side is :right' do
88
- let(:side) { :right }
89
- it { should eq('a(2) ') }
90
- end
91
- end
92
-
93
- # Test compatibility with Range#size in Ruby 2.0.
94
- describe '#numeric_range_size', ruby: 2 do
95
- [1..1, 1...1, 1..2, 1...2, 1..3, 1...3, 1..-1, 1...-1].each do |range|
96
- context "with range #{range}" do
97
- subject { described_class.numeric_range_size(range) }
98
- it { should eq(range.size) }
99
- end
100
- end
101
- end
102
- end
@@ -1,200 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::VariableForce::Assignment do
6
- include AST::Sexp
7
-
8
- let(:ast) do
9
- processed_source = RuboCop::ProcessedSource.new(source)
10
- processed_source.ast
11
- end
12
-
13
- let(:source) do
14
- <<-END
15
- class SomeClass
16
- def some_method(flag)
17
- puts 'Hello World!'
18
-
19
- if flag > 0
20
- foo = 1
21
- end
22
- end
23
- end
24
- END
25
- end
26
-
27
- let(:def_node) { ast.each_node.find(&:def_type?) }
28
-
29
- let(:lvasgn_node) { ast.each_node.find(&:lvasgn_type?) }
30
-
31
- let(:name) { lvasgn_node.children.first }
32
- let(:scope) { RuboCop::Cop::VariableForce::Scope.new(def_node) }
33
- let(:variable) do
34
- RuboCop::Cop::VariableForce::Variable.new(name, lvasgn_node, scope)
35
- end
36
- let(:assignment) { described_class.new(lvasgn_node, variable) }
37
-
38
- describe '.new' do
39
- let(:variable) { double('variable') }
40
-
41
- context 'when an assignment node is passed' do
42
- it 'does not raise error' do
43
- node = s(:lvasgn, :foo)
44
- expect { described_class.new(node, variable) }.not_to raise_error
45
- end
46
- end
47
-
48
- context 'when an argument declaration node is passed' do
49
- it 'raises error' do
50
- node = s(:arg, :foo)
51
- expect { described_class.new(node, variable) }
52
- .to raise_error(ArgumentError)
53
- end
54
- end
55
-
56
- context 'when any other type node is passed' do
57
- it 'raises error' do
58
- node = s(:def)
59
- expect { described_class.new(node, variable) }
60
- .to raise_error(ArgumentError)
61
- end
62
- end
63
- end
64
-
65
- describe '#name' do
66
- it 'returns the variable name' do
67
- expect(assignment.name).to eq(:foo)
68
- end
69
- end
70
-
71
- describe '#meta_assignment_node' do
72
- context 'when it is += operator assignment' do
73
- let(:source) do
74
- <<-END
75
- def some_method
76
- foo += 1
77
- end
78
- END
79
- end
80
-
81
- it 'returns op_asgn node' do
82
- expect(assignment.meta_assignment_node.type).to eq(:op_asgn)
83
- end
84
- end
85
-
86
- context 'when it is ||= operator assignment' do
87
- let(:source) do
88
- <<-END
89
- def some_method
90
- foo ||= 1
91
- end
92
- END
93
- end
94
-
95
- it 'returns or_asgn node' do
96
- expect(assignment.meta_assignment_node.type).to eq(:or_asgn)
97
- end
98
- end
99
-
100
- context 'when it is &&= operator assignment' do
101
- let(:source) do
102
- <<-END
103
- def some_method
104
- foo &&= 1
105
- end
106
- END
107
- end
108
-
109
- it 'returns and_asgn node' do
110
- expect(assignment.meta_assignment_node.type).to eq(:and_asgn)
111
- end
112
- end
113
-
114
- context 'when it is multiple assignment' do
115
- let(:source) do
116
- <<-END
117
- def some_method
118
- foo, bar = [1, 2]
119
- end
120
- END
121
- end
122
-
123
- it 'returns masgn node' do
124
- expect(assignment.meta_assignment_node.type).to eq(:masgn)
125
- end
126
- end
127
- end
128
-
129
- describe '#operator' do
130
- context 'when it is normal assignment' do
131
- let(:source) do
132
- <<-END
133
- def some_method
134
- foo = 1
135
- end
136
- END
137
- end
138
-
139
- it 'returns =' do
140
- expect(assignment.operator).to eq('=')
141
- end
142
- end
143
-
144
- context 'when it is += operator assignment' do
145
- let(:source) do
146
- <<-END
147
- def some_method
148
- foo += 1
149
- end
150
- END
151
- end
152
-
153
- it 'returns +=' do
154
- expect(assignment.operator).to eq('+=')
155
- end
156
- end
157
-
158
- context 'when it is ||= operator assignment' do
159
- let(:source) do
160
- <<-END
161
- def some_method
162
- foo ||= 1
163
- end
164
- END
165
- end
166
-
167
- it 'returns ||=' do
168
- expect(assignment.operator).to eq('||=')
169
- end
170
- end
171
-
172
- context 'when it is &&= operator assignment' do
173
- let(:source) do
174
- <<-END
175
- def some_method
176
- foo &&= 1
177
- end
178
- END
179
- end
180
-
181
- it 'returns &&=' do
182
- expect(assignment.operator).to eq('&&=')
183
- end
184
- end
185
-
186
- context 'when it is multiple assignment' do
187
- let(:source) do
188
- <<-END
189
- def some_method
190
- foo, bar = [1, 2]
191
- end
192
- END
193
- end
194
-
195
- it 'returns =' do
196
- expect(assignment.operator).to eq('=')
197
- end
198
- end
199
- end
200
- end
@@ -1,699 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe RuboCop::Cop::VariableForce::Locatable do
6
- include AST::Sexp
7
-
8
- class LocatableObject
9
- include RuboCop::Cop::VariableForce::Locatable
10
-
11
- attr_reader :node, :scope
12
-
13
- def initialize(node, scope)
14
- @node = node
15
- @scope = scope
16
- end
17
- end
18
-
19
- let(:ast) do
20
- processed_source = RuboCop::ProcessedSource.new(source)
21
- processed_source.ast
22
- end
23
-
24
- let(:def_node) { ast.each_node.find(&:def_type?) }
25
- let(:lvasgn_node) { ast.each_node.find(&:lvasgn_type?) }
26
-
27
- let(:scope) { RuboCop::Cop::VariableForce::Scope.new(def_node) }
28
- let(:assignment) { LocatableObject.new(lvasgn_node, scope) }
29
-
30
- describe '#branch_point_node' do
31
- context 'when it is not in branch' do
32
- let(:source) do
33
- <<-END
34
- def some_method(flag)
35
- foo = 1
36
- end
37
- END
38
- end
39
-
40
- it 'returns nil' do
41
- expect(assignment.branch_point_node).to be_nil
42
- end
43
- end
44
-
45
- context 'when it is inside of if' do
46
- let(:source) do
47
- <<-END
48
- def some_method(flag)
49
- if flag
50
- foo = 1
51
- end
52
- end
53
- END
54
- end
55
-
56
- it 'returns the if node' do
57
- expect(assignment.branch_point_node.type).to eq(:if)
58
- end
59
- end
60
-
61
- context 'when it is inside of else of if' do
62
- let(:source) do
63
- <<-END
64
- def some_method(flag)
65
- if flag
66
- else
67
- foo = 1
68
- end
69
- end
70
- END
71
- end
72
-
73
- it 'returns the if node' do
74
- expect(assignment.branch_point_node.type).to eq(:if)
75
- end
76
- end
77
-
78
- context 'when it is inside of if condition' do
79
- let(:source) do
80
- <<-END
81
- def some_method(flag)
82
- if foo = 1
83
- do_something
84
- end
85
- end
86
- END
87
- end
88
-
89
- it 'returns nil' do
90
- expect(assignment.branch_point_node).to be_nil
91
- end
92
- end
93
-
94
- context 'when multiple if are nested' do
95
- context 'and it is inside of inner if' do
96
- let(:source) do
97
- <<-END
98
- def some_method(a, b)
99
- if a
100
- if b
101
- foo = 1
102
- end
103
- end
104
- end
105
- END
106
- end
107
-
108
- it 'returns inner if node' do
109
- if_node = assignment.branch_point_node
110
- expect(if_node.type).to eq(:if)
111
- condition_node = if_node.children.first
112
- expect(condition_node).to eq(s(:lvar, :b))
113
- end
114
- end
115
-
116
- context 'and it is inside of inner if condition' do
117
- let(:source) do
118
- <<-END
119
- def some_method(a, b)
120
- if a
121
- if foo = 1
122
- do_something
123
- end
124
- end
125
- end
126
- END
127
- end
128
-
129
- it 'returns the next outer if node' do
130
- if_node = assignment.branch_point_node
131
- expect(if_node.type).to eq(:if)
132
- condition_node = if_node.children.first
133
- expect(condition_node).to eq(s(:lvar, :a))
134
- end
135
- end
136
- end
137
-
138
- context 'when it is inside of when of case' do
139
- let(:source) do
140
- <<-END
141
- def some_method(flag)
142
- case flag
143
- when 1
144
- foo = 1
145
- end
146
- end
147
- END
148
- end
149
-
150
- it 'returns the case node' do
151
- expect(assignment.branch_point_node.type).to eq(:case)
152
- end
153
- end
154
-
155
- context 'when it is on the left side of &&' do
156
- let(:source) do
157
- <<-END
158
- def some_method
159
- (foo = 1) && do_something
160
- end
161
- END
162
- end
163
-
164
- it 'returns nil' do
165
- expect(assignment.branch_point_node).to be_nil
166
- end
167
- end
168
-
169
- context 'when it is on the right side of &&' do
170
- let(:source) do
171
- <<-END
172
- def some_method
173
- do_something && (foo = 1)
174
- end
175
- END
176
- end
177
-
178
- it 'returns the and node' do
179
- expect(assignment.branch_point_node.type).to eq(:and)
180
- end
181
- end
182
-
183
- context 'when it is on the left side of ||' do
184
- let(:source) do
185
- <<-END
186
- def some_method
187
- (foo = 1) || do_something
188
- end
189
- END
190
- end
191
-
192
- it 'returns nil' do
193
- expect(assignment.branch_point_node).to be_nil
194
- end
195
- end
196
-
197
- context 'when it is on the right side of ||' do
198
- let(:source) do
199
- <<-END
200
- def some_method
201
- do_something || (foo = 1)
202
- end
203
- END
204
- end
205
-
206
- it 'returns the or node' do
207
- expect(assignment.branch_point_node.type).to eq(:or)
208
- end
209
- end
210
-
211
- context 'when multiple && are chained' do
212
- context 'and it is on the right side of the right &&' do
213
- let(:source) do
214
- <<-END
215
- def some_method
216
- do_something && do_anything && (foo = 1)
217
- end
218
- END
219
- end
220
-
221
- it 'returns the right and node' do
222
- and_node = assignment.branch_point_node
223
- expect(and_node.type).to eq(:and)
224
- right_side_node = and_node.children[1]
225
- expect(right_side_node.type).to eq(:begin)
226
- end
227
- end
228
-
229
- context 'and it is on the right side of the left &&' do
230
- let(:source) do
231
- <<-END
232
- def some_method
233
- do_something && (foo = 1) && do_anything
234
- end
235
- END
236
- end
237
-
238
- it 'returns the left and node' do
239
- and_node = assignment.branch_point_node
240
- expect(and_node.type).to eq(:and)
241
- right_side_node = and_node.children[1]
242
- expect(right_side_node.type).to eq(:begin)
243
- end
244
- end
245
- end
246
-
247
- context 'when it is inside of begin with rescue' do
248
- let(:source) do
249
- <<-END
250
- def some_method(flag)
251
- begin
252
- foo = 1
253
- rescue
254
- do_something
255
- end
256
- end
257
- END
258
- end
259
-
260
- it 'returns the rescue node' do
261
- expect(assignment.branch_point_node.type).to eq(:rescue)
262
- end
263
- end
264
-
265
- context 'when it is inside of rescue' do
266
- let(:source) do
267
- <<-END
268
- def some_method(flag)
269
- begin
270
- do_something
271
- rescue
272
- foo = 1
273
- end
274
- end
275
- END
276
- end
277
-
278
- it 'returns the rescue node' do
279
- expect(assignment.branch_point_node.type).to eq(:rescue)
280
- end
281
- end
282
-
283
- context 'when it is inside of begin with ensure' do
284
- let(:source) do
285
- <<-END
286
- def some_method(flag)
287
- begin
288
- foo = 1
289
- ensure
290
- do_something
291
- end
292
- end
293
- END
294
- end
295
-
296
- it 'returns the ensure node' do
297
- expect(assignment.branch_point_node.type).to eq(:ensure)
298
- end
299
- end
300
-
301
- context 'when it is inside of ensure' do
302
- let(:source) do
303
- <<-END
304
- def some_method(flag)
305
- begin
306
- do_something
307
- ensure
308
- foo = 1
309
- end
310
- end
311
- END
312
- end
313
-
314
- it 'returns nil' do
315
- expect(assignment.branch_point_node).to be_nil
316
- end
317
- end
318
-
319
- context 'when it is inside of begin without rescue' do
320
- let(:source) do
321
- <<-END
322
- def some_method(flag)
323
- begin
324
- foo = 1
325
- end
326
- end
327
- END
328
- end
329
-
330
- it 'returns nil' do
331
- expect(assignment.branch_point_node).to be_nil
332
- end
333
- end
334
- end
335
-
336
- describe '#branch_body_node' do
337
- context 'when it is not in branch' do
338
- let(:source) do
339
- <<-END
340
- def some_method(flag)
341
- foo = 1
342
- end
343
- END
344
- end
345
-
346
- it 'returns nil' do
347
- expect(assignment.branch_body_node).to be_nil
348
- end
349
- end
350
-
351
- context 'when it is inside body of if' do
352
- let(:source) do
353
- <<-END
354
- def some_method(flag)
355
- if flag
356
- foo = 1
357
- puts foo
358
- end
359
- end
360
- END
361
- end
362
-
363
- it 'returns the body node' do
364
- expect(assignment.branch_body_node.type).to eq(:begin)
365
- end
366
- end
367
-
368
- context 'when it is inside body of else of if' do
369
- let(:source) do
370
- <<-END
371
- def some_method(flag)
372
- if flag
373
- do_something
374
- else
375
- foo = 1
376
- puts foo
377
- end
378
- end
379
- END
380
- end
381
-
382
- it 'returns the body node' do
383
- expect(assignment.branch_body_node.type).to eq(:begin)
384
- end
385
- end
386
-
387
- context 'when it is on the right side of &&' do
388
- let(:source) do
389
- <<-END
390
- def some_method
391
- do_something && (foo = 1)
392
- end
393
- END
394
- end
395
-
396
- it 'returns the right side node' do
397
- expect(assignment.branch_body_node.type).to eq(:begin)
398
- end
399
- end
400
-
401
- context 'when it is on the right side of ||' do
402
- let(:source) do
403
- <<-END
404
- def some_method
405
- do_something || (foo = 1)
406
- end
407
- END
408
- end
409
-
410
- it 'returns the right side node' do
411
- expect(assignment.branch_body_node.type).to eq(:begin)
412
- end
413
- end
414
-
415
- context 'when it is inside of begin with rescue' do
416
- let(:source) do
417
- <<-END
418
- def some_method(flag)
419
- begin
420
- foo = 1
421
- rescue
422
- do_something
423
- end
424
- end
425
- END
426
- end
427
-
428
- it 'returns the body node' do
429
- expect(assignment.branch_body_node.type).to eq(:lvasgn)
430
- end
431
- end
432
-
433
- context 'when it is inside of rescue' do
434
- let(:source) do
435
- <<-END
436
- def some_method(flag)
437
- begin
438
- do_something
439
- rescue
440
- foo = 1
441
- end
442
- end
443
- END
444
- end
445
-
446
- it 'returns the resbody node' do
447
- expect(assignment.branch_body_node.type).to eq(:resbody)
448
- end
449
- end
450
-
451
- context 'when it is inside of begin with ensure' do
452
- let(:source) do
453
- <<-END
454
- def some_method(flag)
455
- begin
456
- foo = 1
457
- ensure
458
- do_something
459
- end
460
- end
461
- END
462
- end
463
-
464
- it 'returns the body node' do
465
- expect(assignment.branch_body_node.type).to eq(:lvasgn)
466
- end
467
- end
468
- end
469
-
470
- describe '#branch_id' do
471
- context 'when it is not in branch' do
472
- let(:source) do
473
- <<-END
474
- def some_method(flag)
475
- foo = 1
476
- end
477
- END
478
- end
479
-
480
- it 'returns nil' do
481
- expect(assignment.branch_id).to be_nil
482
- end
483
- end
484
-
485
- context 'when it is inside body of if' do
486
- let(:source) do
487
- <<-END
488
- def some_method(flag)
489
- if flag
490
- foo = 1
491
- puts foo
492
- end
493
- end
494
- END
495
- end
496
-
497
- it 'returns BRANCHNODEID_if_true' do
498
- expect(assignment.branch_id).to match(/^\d+_if_true/)
499
- end
500
- end
501
-
502
- context 'when it is inside body of else of if' do
503
- let(:source) do
504
- <<-END
505
- def some_method(flag)
506
- if flag
507
- do_something
508
- else
509
- foo = 1
510
- puts foo
511
- end
512
- end
513
- END
514
- end
515
-
516
- it 'returns BRANCHNODEID_if_false' do
517
- expect(assignment.branch_id).to match(/^\d+_if_false/)
518
- end
519
- end
520
-
521
- context 'when it is inside body of when of case' do
522
- let(:source) do
523
- <<-END
524
- def some_method(flag)
525
- case flag
526
- when first
527
- do_something
528
- when second
529
- foo = 1
530
- puts foo
531
- else
532
- do_something
533
- end
534
- end
535
- END
536
- end
537
-
538
- it 'returns BRANCHNODEID_case_whenINDEX' do
539
- expect(assignment.branch_id).to match(/^\d+_case_when1/)
540
- end
541
- end
542
-
543
- context 'when it is inside body of when of case' do
544
- let(:source) do
545
- <<-END
546
- def some_method(flag)
547
- case flag
548
- when first
549
- do_something
550
- when second
551
- do_something
552
- else
553
- foo = 1
554
- puts foo
555
- end
556
- end
557
- END
558
- end
559
-
560
- it 'returns BRANCHNODEID_case_else' do
561
- expect(assignment.branch_id).to match(/^\d+_case_else/)
562
- end
563
- end
564
-
565
- context 'when it is on the left side of &&' do
566
- let(:source) do
567
- <<-END
568
- def some_method
569
- (foo = 1) && do_something
570
- end
571
- END
572
- end
573
-
574
- it 'returns nil' do
575
- expect(assignment.branch_id).to be_nil
576
- end
577
- end
578
-
579
- context 'when it is on the right side of &&' do
580
- let(:source) do
581
- <<-END
582
- def some_method
583
- do_something && (foo = 1)
584
- end
585
- END
586
- end
587
-
588
- it 'returns BRANCHNODEID_and_right' do
589
- expect(assignment.branch_id).to match(/^\d+_and_right/)
590
- end
591
- end
592
-
593
- context 'when it is on the left side of ||' do
594
- let(:source) do
595
- <<-END
596
- def some_method
597
- (foo = 1) || do_something
598
- end
599
- END
600
- end
601
-
602
- it 'returns nil' do
603
- expect(assignment.branch_id).to be_nil
604
- end
605
- end
606
-
607
- context 'when it is on the right side of ||' do
608
- let(:source) do
609
- <<-END
610
- def some_method
611
- do_something || (foo = 1)
612
- end
613
- END
614
- end
615
-
616
- it 'returns BRANCHNODEID_or_right' do
617
- expect(assignment.branch_id).to match(/^\d+_or_right/)
618
- end
619
- end
620
-
621
- context 'when it is inside of begin with rescue' do
622
- let(:source) do
623
- <<-END
624
- def some_method(flag)
625
- begin
626
- foo = 1
627
- rescue
628
- do_something
629
- end
630
- end
631
- END
632
- end
633
-
634
- it 'returns BRANCHNODEID_rescue_main' do
635
- expect(assignment.branch_id).to match(/^\d+_rescue_main/)
636
- end
637
- end
638
-
639
- context 'when it is inside of rescue' do
640
- let(:source) do
641
- <<-END
642
- def some_method(flag)
643
- begin
644
- do_something
645
- rescue FirstError
646
- do_something
647
- rescue SecondError
648
- foo = 1
649
- end
650
- end
651
- END
652
- end
653
-
654
- it 'returns BRANCHNODEID_rescue_rescueINDEX' do
655
- expect(assignment.branch_id).to match(/^\d+_rescue_rescue1/)
656
- end
657
- end
658
-
659
- context 'when it is inside of else of rescue' do
660
- let(:source) do
661
- <<-END
662
- def some_method(flag)
663
- begin
664
- do_something
665
- rescue FirstError
666
- do_something
667
- rescue SecondError
668
- do_something
669
- else
670
- foo = 1
671
- end
672
- end
673
- END
674
- end
675
-
676
- it 'returns BRANCHNODEID_rescue_else' do
677
- expect(assignment.branch_id).to match(/^\d+_rescue_else/)
678
- end
679
- end
680
-
681
- context 'when it is inside of begin with ensure' do
682
- let(:source) do
683
- <<-END
684
- def some_method(flag)
685
- begin
686
- foo = 1
687
- ensure
688
- do_something
689
- end
690
- end
691
- END
692
- end
693
-
694
- it 'returns BRANCHNODEID_ensure_main' do
695
- expect(assignment.branch_id).to match(/^\d+_ensure_main/)
696
- end
697
- end
698
- end
699
- end