To me, the if IS the equivalent of a ternary operator as it evaluates to a value which for various other languages it doesn’t.
so x = if false, do: 1, else: 2
is basically x = false? 1 : 2
Not sure why Ruby adopted it ( if you are coming from Ruby ) as it has assignable if statements. in C the ternary is useful as the code bloats with the equivalent if statements. Of course C programmers desperate for terseness went nuts and did many nested upon nested ternaries 🙂