I\'m going through a phase of trying to avoid temporary variables and over-use of conditional where I can use a more fluid style of coding. I\'ve taken a great liking to us
def best_nice_method something_complex(a, b, c).tap |obj| break obj.one_more_method_call if a_predicate_check? end end
The magic is break in tap returns another value.
break
tap
new
ruby 2.5 has yield_self which exactly you want. https://stackoverflow.com/a/47890832/683157
yield_self