
Journal Journal: 99 bottles of beer, in ruby
I recently came across this website about 99 bottles of beer in many different programming languages:
http://www.99-bottles-of-beer.net/
which seems to have the most complete list (621 versions, albeit some dups).
However, I recently started to learn ruby this month, and I didn't like the ruby example at that site, so I thought I'd write my own. Here it is for all it's fun.
class Wall
attr_reader:beers, :s
def initialize
@beers = 99
@s = "s"
end
def getAbeer
puts "#{beers} bottle#{s} of beer on the wall."
puts "#{beers} bottle#{s} of beer."
puts "Take one down, pass it around,"
@beers = @beers - 1
s = "s" unless @beers == 1
puts "#{beers} bottle#{s} of beer on the wall.\n\n"
@s = s
end
def noMoreBeer
return @beers == 0
end
end
wall = Wall.new
wall.getAbeer until wall.noMoreBeer
So, how did I do? I think mine is 99 times better than the one at that site. Yes, I know my version is not the most efficient because it has excess assignments. But it is clean and easy to read, without the clutter of if/then/endif statements. Besides, you want it to be slow and inefficient, the beer lasts longer