Project

General

Profile

Actions

Feature #12995

closed

Conditional expression taking a receiver outside the condition

Added by sawa (Tsuyoshi Sawada) over 5 years ago. Updated over 5 years ago.

Status:
Rejected
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:78448]

Description

Since a conditional expression has a return value, we can continue a method chain after a conditional expression like this:

if hoge
  foo1.foo2.foo3
else
  bar1.bar2
end
.baz1.baz2.baz3.baz4
case hoge
when hoge1
  foo1.foo2.foo3
when hoge2
  bar1.bar2
end
.baz1.baz2.baz3.baz4

It is convenient if we can have a condition after or in the middle of a chain. I would like to do this:

baz1.baz2.baz3.baz4.
if hoge
  foo1.foo2.foo3
else
  bar1.bar2
end
baz1.baz2.baz3.baz4
if hoge
  .foo1.foo2.foo3
else
  .bar1.bar2
end
baz1.baz2.baz3.baz4.
case hoge
when hoge1
  foo1.foo2.foo3
when hoge2
  bar1.bar2
end
baz1.baz2.baz3.baz4
case hoge
when hoge1
  .foo1.foo2.foo3
when hoge2
  .bar1.bar2
end
Actions

Also available in: Atom PDF