Your class with constructor, to string, setter, getter and inspect : Class Defintion « Class « Ruby






Your class with constructor, to string, setter, getter and inspect



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 name
    @name
  end

  def artist
    @artist
  end

  def duration
    @duration
  end

  def duration=(new_duration)
    @duration = new_duration
  end

  def duration_in_minutes
    @duration/60.0   # force floating point
  end

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

  def play
    @plays  += 1   # same as @plays = @plays + 1
    @@plays += 1
    "This  CD: #@plays plays. Total #@@plays plays."
  end

  def record
    "Recording..."
  end

  def inspect
    self.to_s
  end

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

 








Related examples in the same category

1.To create a class in Ruby, you simply use the class statement.
2.A class is defined with the class keyword, followed by an end.
3.names of classes in Ruby start with a capital letter
4.class template
5.A class is itself an object.
6.A simple class that's been documented using comments.
7.Your own class with inspect method
8.To embed a module in a class, you use the include statement in the class: include modulename
9.Class with symboles
10.Class variable as condition variable