module RSpec::Core::Backports

def self.coerce_to(obj, cls, meth)

(from Rubinius)
is not of the right class.
Raises a TypeError if the coercion fails or the returned value
Helper method to coerce a value into a specific class.
def self.coerce_to(obj, cls, meth)
  return obj if obj.kind_of?(cls)
  begin
    ret = obj.__send__(meth)
  rescue Exception => e
    raise TypeError, "Coercion error: #{obj.inspect}.#{meth} => #{cls} failed:\n" \
                     "(#{e.message})"
  end
  raise TypeError, "Coercion error: obj.#{meth} did NOT return a #{cls} (was #{ret.class})" unless ret.kind_of? cls
  ret
end

def self.coerce_to_int(obj)

Other tags:
    Private: -
def self.coerce_to_int(obj)
  coerce_to(obj, Integer, :to_int)
end