This page contains automated test results for code from O'Reilly's Ruby Cookbook. If this code looks interesting or useful, you might want to buy the whole book.

Implementing Class and Singleton Methods
CodeExpectedActual
class Regexp
  def Regexp.is_valid?(str)
    begin
      compile(str)
      valid = true
    rescue RegexpError
      valid = false
    end
  end
end
Regexp.is_valid? "The horror!"
true true
Regexp.is_valid? "The)horror!"
false false
def Fixnum.random(min, max)
  raise ArgumentError, "min > max" if min > max
  return min + rand(max-min+1)
end
Fixnum.random(10, 20)
13 13
Fixnum.random(-5, 0)
-5 -5
Fixnum.random(10, 10)
10 10
Fixnum.random(20, 10)                             
ArgumentError: min > max
...
ArgumentError: min > max
	from (irb):14:in `random'
	from (irb):20
company_name = 'Homegrown Software'
def company_name.legalese
  return "#{self} is a registered trademark of ConglomCo International."
end
company_name.legalese
"Homegrown Software is a registered trademark of ConglomCo International." "Homegrown Software is a registered trademark of ConglomCo International."
'Some Other Company'.legalese
NoMethodError: undefined method `legalese' for "Some Other Company":String
...
NoMethodError: undefined method `legalese' for "Some Other Company":String
	from (irb):26
class Button
  #A stub method to be overridden by subclasses or individual Button objects
  def pushed
  end
end
buttonA = Button.new
def buttonA.pushed
  puts "You pushed me! I'm offended!"
end
buttonB = Button.new
def buttonB.pushed
  puts "You pushed me; that's okay."
end
Button.new.pushed
#
buttonA.pushed
You pushed me! I'm offended!
You pushed me! I'm offended!
buttonB.pushed
You pushed me; that's okay.
You pushed me; that's okay.