Errata for Best of Ruby Quiz
We try to keep our books accurate, but sometimes mistakes creep
in. This page lists the errors submitted by our astute readers.
If you've found a new error, please
submit it.
The latest version of the book is P1.1,
released about 7 years ago.
If you've bought a PDF of the book and would like to upgrade
it to this version (for free), visit your
home page.
| PDF |
Paper |
Description |
Found in |
Fixed in |
| 2rand |
2rand |
#47532: +z$8frZdyL%68pSU/:>w<:E3.lG-!XIB--vvqKGQyCZkkJ
|
P1.1
10-Sep-11
|
|
| 62 |
|
#24428: if the solution "erb_madlibs.rb" should also work with placeholders which run over multiple lines like in example "Gift_Giving.madlib", the reg expression "/\(\(\s*(.+?)\s*\)\)/" should have at least a multiline option e.g. "/\(\(\s*(.+?)\s*\)\)/m"--Dietmar #24428: if the solution "erb_madlibs.rb" should also work with placeholders which run over multiple lines like in example "Gift_Giving.madlib", the re ...more...
|
P1.1
09-Apr-06
|
|
| 67 |
|
#24429: "... . Otherwise, the sub( ) call will fail, and $1 will be unaltered. ... "
As I can see $1 will get Nil and the assignment of the user input to h[$1] won't be relevant for further hash calls in the gsub block.--Dietmar #24429: "... . Otherwise, the sub( ) call will fail, and $1 will be unaltered. ... "
As I can see $1 will get Nil and the assignment of the user inpu ...more...
|
P1.1
09-Apr-06
|
|
|
72 |
#36368: A very minor issue concerning the usage conditions for erb_madlib.rb.
I suggest checking that the file extension name for the madlib input file is .madlib by adding a File.extname(ARGV[0]) == ".madlib" to the usage unless conditions.
Currently, if the file is, say, Lunch Hungers.madlip, and that file exists, when the story prints out, the title at the top of the screen will be Lunch Hungers.madlip instead of just Lunch Hungers (the File.basename(ARGV.first, '.madlib') condition fails). --Paul Fioravanti #36368: A very minor issue concerning the usage conditions for erb_madlib.rb.
I suggest checking that the file extension name for the madlib input ...more...
|
P1.1
10-Dec-08
|
|
| 116-7 |
|
#24300: In the "unusual construct", "method({key => value})", the braces are unnecessary; the named-argument style "method(key => value)" should be used.--Dave Burt
|
P1.1
16-Mar-06
|
|
| 138-9 |
|
#24301: There are three lines in my code where I "throw" exceptions instead of using "raise" or "fail". It will cause an error, just not the intended one. That's a mistake you can easily make coming from Java.--Dave Burt #24301: There are three lines in my code where I "throw" exceptions instead of using "raise" or "fail". It will cause an error, just not the intended ...more...
|
P1.1
16-Mar-06
|
|
| 169 |
|
#24434: Method Cipher.normalize is incorrect.
The easiest way to verify this is to add the following test to tc_cipher's test_normalize.
assert_equal( "WELCO METOR UBYQU IZXXX",
Cipher.normalize("Welcome to ruby quiz.") )
This will cause a failure:
test_normalize(TestCipher) [./tc_cipher.rb:34]:
<"WELCO METOR UBYQU IZXXX"> expected but was
<"WELCO METOR UBYQU">.
The problem is with line two of Cipher.normalize:
text += ("X" * (text.length % 5))
This code adds only (text.length%5) number of "X"s, which is not enough if text.length is 1 or 2. You could fix this by correctly computing the number of X's necessary to pad out to a multiple of 5, or take my more brute force approach of replacing this line with the following:
text += "XXXX"
Since 4 is the maximum number of X's that could be needed, and the extras will harmlessly be thrown out by the following line:
text.scan(/.{5}/).join(" ")
Hope that is helpful (and not too pendantic).
-CS
--chuck sonic (chuck.sonic@gmail.com) #24434: Method Cipher.normalize is incorrect.
The easiest way to verify this is to add the following test to tc_cipher's test_normalize.
ass ...more...
|
P1.1
10-Apr-06
|
|
| 215 |
|
#24318: In the 3rd paragraph of the comment above "class Maze":
If 1 one is set, then p has a north
# wall; if bit 2 is set, then p has a west wall.
The original version was (from http://www.rubyquiz.com/quiz31.html):
If bit one is set then p has a north wall, if
# bit two is set then p has a west wall.
The corrected version probably should be:
If bit 1 is set, then p has a north
# wall; if bit 2 is set, then p has a west wall.
--Dominik Bathon #24318: In the 3rd paragraph of the comment above "class Maze":
If 1 one is set, then p has a north
# wall; if bit 2 is set, then p has a west wal ...more...
|
P1.1
17-Mar-06
|
|
| 2003 |
zWYdv |
#50114: Ah ok. There's no easy way to pull this off, so I'm going to mark this as reviewed/resolved for now. But I'll make a mtanel note to keep it in mind if and when we revisit how pagination works.If anyone else is looking for this, please do comment here!--nrOxlfCedPlWm #50114: Ah ok. There's no easy way to pull this off, so I'm going to mark this as reviewed/resolved for now. But I'll make a mtanel note to keep it ...more...
|
P1.1
01-Nov-12
|
|
| 2003 |
CDOOG |
#46815: ybzT7Q I'm not easily impressed. . . but that's impressing me! :)--eeCOkwUIALEtNPrfpJ
|
P1.1
08-Apr-11
|
|