class Object

def try!(*a, &b)

does not implemented the tried method.
Same as #try, but will raise a NoMethodError exception if the receiving is not nil and
def try!(*a, &b)
  if a.empty? && block_given?
    yield self
  else
    public_send(*a, &b)
  end
end