Susan Harkins (406) [Avatar] Offline
#1
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
#2
331889 (3) [Avatar] Offline
#3
Looks like bottom of p196 needs "@text." to precede "reverse":

class Banner
  def !
    @text.reverse
  end
end


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

Thanks,
Matt
331889 (3) [Avatar] Offline
#4
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
#5
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
#6
1.3.1
Nevermind. My Mistake
331889 (3) [Avatar] Offline
#7
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
#8
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
#9
i'm sorry
ogirginc (1) [Avatar] Offline
#10
Susan Harkins wrote:Current list is available at http://www.manning.com/black3/Black_TheWellGroundedRubyist_Err1.html

This page needs to be updated...
duanjingjing (6) [Avatar] Offline
#11
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
#12
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
#13
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:

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

def say_goodbye
</q>

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
#14
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
#15
At the very top of page 294, the code reads
>> a.select {|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.