From: matthew@... Date: 2016-06-26T06:42:32+00:00 Subject: [ruby-core:76148] [Ruby trunk Feature#12519] Expansion of modifier_if and modifier_unless Issue #12519 has been updated by Matthew Kerwin. I am against. It seems to rewrite the precedence of modifier if. I would expect it to evaluate like this: ~~~ruby false ? (variable = 1) : 2 ~~~ Also does it only apply to assignment? How about other method calls? What would happen in all of the following cases? ~~~ruby a = b = c = 1 if false else 2 [0][0] = 1 if false else 2 [0].[]= 0, 1 if false else 2 a, b = 0, 1 if false else 2 p 1 if false else 2 ~~~ It's too confusing. ---------------------------------------- Feature #12519: Expansion of modifier_if and modifier_unless https://bugs.ruby-lang.org/issues/12519#change-59354 * Author: Blaise Koch * Status: Open * Priority: Normal * Assignee: ---------------------------------------- Hi all. I propose a syntax change to allow the below to be valid ruby. `variable = 1 if false else 2` This is an extension of the current modifier_if below which accomplishes the same result. `variable = 1 if false variable = 2 if !false` keeping up with the other condition-statement keyword the below should be valid as well. `variable = 1 unless true else 2` And is an extension of `variable = 1 unless true variable = 2 unless !true` While it's true that ternary syntax accomplishes the same task, I feel that the proposed changes are both more readable and a more natural extension of the language. -- https://bugs.ruby-lang.org/ Unsubscribe: