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 | ||
|---|---|---|
| Code | Expected | Actual |
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. |