i find myself doing this quite a lot to protect against nil when the return of some_method returns nil.
a = a.some_method.present? ? a.some_method : 
a = 
a ||= a.some_method
a = 
The usual pattern is:
result = method(args) || default_value
|| operator is short-circuiting. If the left-hand-side is false, it will not bother to evaluate the right hand side. In Ruby,
nil is considered false. Hence if
nil is returned (or
|| evaluates the right-hand-side and returns that as the result.
Note the order of the left and right sides is important.