I know that there is nothing in Ruby that is similar to the
try is not the same as optional since it does not wrap the original object in a new type and return that type, thus making the series of method calls chainable.
try return nil not Optional(nil).
To see how one would go about implementing the optional type in ruby, take a look at a little gem called nil_be_gone I have just open sourced, that gives you an Optional that you can wrap objects with. It implements method_missing to check whether the value of the Optional is nil and if so simply return another Optional wrapped nil value, otherwise it calls the method on the object and wraps it again.
nil_be_gone implements bind as and_then which allows you to chain operations on Optional types, it's return methods which retrieves the value from Optional is value and the unit operation which wraps an object in the monad is defined by self.from_value.