I decided to do some of those Facebook puzzles in Ruby. I won’t post everything I do, because I would consider that cheating (after all, you can win prizes!).
However, considering this is a very simple script, and I’m doing it more for learning Ruby than to enter into Facebook’s puzzles, I will post this one.
This is the first puzzle, called Hoppity Hop:
private @file_exists = false def get_integer(filename) if File::exists?(filename) file = File.open(filename) line = file.gets.strip! file.close @file_exists = true return line.to_i else @file_exists = false return 0 #zero files present end end def get_string(num) if(num%3 == 0 && num%5 == 0) print "Hop\n" elsif num%3 == 0 print "Hoppity\n" elsif num%5 == 0 print "Hophop\n" else return #nothing end end def hip_hop(arg) num = get_integer(arg) if(num > 0 && @file_exists) for i in 1..num.to_i get_string(i) end else puts "File not found" end end public arg = ARGV.to_s # this is the name of the file if(/\D/ =~ arg) puts "Please enter a positive integer as the filename." else unless arg == nil hip_hop(arg) end end