Virtual Attributes In Ruby
class Song
def initialize(name, artist, duration)
@name = name
@artist = artist
@duration = duration
end
def to_s
"song: #{@name} -- #{@artist} (#{@duration})"
end
def durationInMinutes
@duration / 60.0
end
def durationInMinutes=(value)
@duration = (value * 60).to_i
end
end
song = Song.new "aaa", "bbb", 240
p song.instance_variables >> [:@name, :@artist, :@duration]
p song.to_s >> "song: aaa -- bbb (240)"
song.durationInMinutes = 10
p song.instance_variables >> [:@name, :@artist, :@duration]
p song.to_s >> "song: aaa -- bbb (600)"
No comments :
Post a Comment