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.
| Writing an Inherited Class | ||
|---|---|---|
| Code | Expected | Actual |
class String
def scramble
(split //).sort_by { rand }.join
end
end
"I once was a normal string.".scramble |
"i arg cn lnws.Ioateosma n r" | "i arg cn lnws.Ioateosma n r" |
class UnpredictableString < String
def scramble
(split //).sort_by { rand }.join
end
def inspect
scramble.inspect
end
end
str = UnpredictableString.new("It was a dark and stormy night.") |
" hsar gsIo atr tkd naaniwdt.ym" | " hsar gsIo atr tkd naaniwdt.ym" |
str |
"ts dtnwIktsr oydnhgi .mara aa" | "ts dtnwIktsr oydnhgi .mara aa" |
class Array
def sum(start_at=0)
inject(start_at) { |sum, x| sum + x }
end
end
[79, 14, 2].sum |
95 | 95 |
['so', 'fa'].sum('') |
"sofa" | "sofa" |
[79, 'so'].sum |
TypeError: String can't be coerced into Fixnum ... |
TypeError: String can't be coerced into Fixnum from (irb):19:in `+' from (irb):19:in `sum' from (irb):24:in `inject' from (irb):19:in `sum' from (irb):24 |
class NumericArray < Array
def sum
inject(0) { |sum, x| sum + x }
end
end |
nil | |