Follow Slashdot blog updates by subscribing to our blog RSS feed


Forgot your password?
Check out the new SourceForge HTML5 internet speed test! No Flash necessary and runs on all devices. ×

Journal Journal: 99 bottles of beer, in ruby

I recently came across this website about 99 bottles of beer in many different programming languages:
  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"
  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
  def noMoreBeer
    return @beers == 0
wall =
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 :)

Journal Journal: Mod points

Wow. Today I got mod points, for the first time since I joined Slashdot, many years ago.

Oddly, I don't even remember when I joined. I know I didn't post enough, but I sure read alot. However, I never received mod points until after I started posting, and I started doing more of that recently.

Wow. Did I say that already :)

Slashdot Top Deals

Money is the root of all evil, and man needs roots.