include Comparable : Comparable « Collections « Ruby






include Comparable

class CD
  include Comparable

  @@plays = 0

  attr_reader :name, :artist, :duration
  attr_writer :duration

  def initialize(name, artist, duration)
    @name     = name
    @artist   = artist
    @duration = duration
    @plays    = 0
  end
  def to_s
    "CD: #@name--#@artist (#@duration)"
  end

  def duration_in_minutes=(new_duration)
    @duration = (new_duration*60).to_i
  end

  def play
    @plays  += 1  
    @@plays += 1
    "This  CD: #@plays plays. Total #@@plays plays."
  end
  def inspect
    self.to_s
  end

  def <=>(other)
    self.duration <=> other.duration
  end
end

d = CD.new("A", "B", 1)
d.to_s

 








Related examples in the same category

1.Comparable module can provide the other basic comparison operators and between?.
2.Comparison operator
3.Custom class based range