Susan Harkins (406) [Avatar] Offline
Please share post-publication errors here. We'll compile and publish a comprehensive list for everyone's convenience. Thank you!

Susan Harkins
Errata Editor
Susan Harkins (406) [Avatar] Offline
331889 (3) [Avatar] Offline
Looks like bottom of p196 needs "@text." to precede "reverse":

class Banner
  def !

Otherwise "reverse" has nothing to act on and !banner on p197 gives an error.

331889 (3) [Avatar] Offline
I don't know if it's a version thing but defining a method that returns false is evaluating to nil (p. 208 says should evaluate to a symbol matching method name, a truthy value).

>> if (def m; return false; end)
>> puts "Method definition is true!"
>> else
?> puts "Method definition is false!"
>> end
Method definition is false!
=> nil

$ irb --version
irb 0.9.6(09/06/30)
$ ruby --version
ruby 2.0.0p643 (2015-02-25 revision 49749) [x86_64-darwin14.1.0]
341041 (2) [Avatar] Offline
Post Publication Errata - Chapter 4 - Page 109 - My Error
This section was a bit confusing to me. I typed what I thought was an error that might not be after a few more readings. It needs clarity regarding the 'gears' instance variable in both classes though
361815 (1) [Avatar] Offline
Nevermind. My Mistake
331889 (3) [Avatar] Offline
Simple typo p. 323.

...for this kind of compression or optimizationEven if an enumerable...

needs a period and a space after 'optimization'.

393530 (1) [Avatar] Offline
On page 21 paragraph 3

require "/home/users/dblack/book/code/loadee.rb"

should be

require "/home/users/dblack/book/code/loadee"

because the author specifically indicates the intent to use "the more abstract syntax of the feature at the end of the path:"
393582 (1) [Avatar] Offline
i'm sorry
ogirginc (1) [Avatar] Offline
Susan Harkins wrote:Current list is available at

This page needs to be updated...
duanjingjing (6) [Avatar] Offline
In the Figure 4.1 on page 102, the module M is included in class D. However, the Listing 4.6 on page 100 has module M included in class C. They don't match!
465989 (1) [Avatar] Offline
In the 2nd edition, page 80, in Table 6.1, row 1, column 3, I believe that "Raise" should be all lowercase "raise." The capitalized version results in "NameError: uninitialized constant Raise"
524672 (4) [Avatar] Offline
p.293 "The dominance of the array"

results of the 'drop_while' line includes "blue" but it should have been dropped as "red" was (since size < 5)

p.320 last line NOTES array is missing "g#" (trivial, but hey...)

Errata list itself:

Page 55:
In the long code sample, delete everything after the following line:

def say_goodbye

this appears to be the wrong instruction in order to make sense of the printed text. Looks like you should delete the five lines above def say_goodbye

631898 (2) [Avatar] Offline
524672 wrote:p.293 "The dominance of the array"

results of the 'drop_while' line includes "blue" but it should have been dropped as "red" was (since size < 5)

I thought this as well when I first read it, but running the code shows that that output is correct. drop_while stops dropping elements the first time it sees one that fails the condition. That would be "orange", so that element and all the rest are included in the result regardless of length.
631898 (2) [Avatar] Offline
At the very top of page 294, the code reads
>> {|item| item > 100 }
=> []

The "100" should be "10" as per the description that follows:
The second operation also returns an array, this time of all the elements in the original array that are greater than 10. There aren’t any, so an empty array is returned.