class Date::Infinity

:nodoc:

def +@() self.class.new(+d) end

def +@() self.class.new(+d) end

def -@() self.class.new(-d) end

def -@() self.class.new(-d) end

def <=>(other)

def <=>(other)
  case other
  when Infinity; return d <=> other.d
  when Numeric; return d
  else
    begin
      l, r = other.coerce(self)
      return l <=> r
    rescue NoMethodError
    end
  end
  nil
end

def abs() self.class.new end

def abs() self.class.new end

def coerce(other)

def coerce(other)
  case other
  when Numeric; return -d, d
  else
    super
  end
end

def d() @d end

def d() @d end

def finite?() false end

def finite?() false end

def infinite?() d.nonzero? end

def infinite?() d.nonzero? end

def initialize(d=1) @d = d <=> 0 end

def initialize(d=1) @d = d <=> 0 end

def nan?() d.zero? end

def nan?() d.zero? end

def to_f

def to_f
  return 0 if @d == 0
  if @d > 0
    Float::INFINITY
  else
    -Float::INFINITY
  end
end

def zero?() false end

def zero?() false end