class ReeEnum::Value

def <=>(other)

def <=>(other)
  if other.is_a?(self.class)
    @number <=> other.number
  elsif other.is_a?(Symbol)
    @value == other
  elsif other.is_a?(Integer)
    @number == other
  else
    raise ArgumentError.new("unable to compare ReeEnum::Value with other classes")
  end
end

def ==(compare)

def ==(compare)
  if compare.is_a?(self.class)
    @value == compare.value
  else
    @value == compare || @number == compare
  end
end

def as_json(*args)

def as_json(*args)
  to_s
end

def initialize(enum_class, enum_name, value, number, label)

def initialize(enum_class, enum_name, value, number, label)
  @enum_class = enum_class
  @enum_name = enum_name
  @value = value
  @label = label
  @number = number
end

def inspect

def inspect
  "#{enum_class.name}##{@value.to_s}"
end

def label

def label
  @label
end

def to_i

def to_i
  @number
end

def to_s

def to_s
  @value.to_s
end

def to_sym

def to_sym
  @value
end