By Developers, For Developers

Historical errata for Everyday Scripting with Ruby

PDF PgPaper PgTypeDescriptionFixed onComments
20ERROR

In the first paragraph of section 2.2, second sentence, you have, “The comand-line interpreter is a program that lets you command the compiler …”. The word “compiler” should be “computer”.

24TYPO

In the second to the last sentence on the page, you have, “If you’re typing the command line …”. It should probably say, “If you’re typing at the command line …”.

38SUGGEST

When looking at the source for inventory.rb, it appears that it will work on Windows and MACOSX because their file systems are case preserving but case insensitive. It is not possible to have two or more files in the same directory whose names differ only by the case of the letters. UNIX based systems other than MACOSX have file systems that are case sensitive. It is possible to have two file names that differ only in case. I think there should be at least a footnote mentioning that it is possible for the inventory.rb program to mis-report the file names which would cause the array subtraction to get erronious results. Or perhaps you should have a UNIX version of inventory.rb that does not invoke downcase on the file name.

60SUGGEST

I am somewhat confused by the intent of adding downcase to differences.rb since inventory.rb has already downcase’d all the file names. And once again, I think that you should mention that this “improvement” which works on Windows and MACOSX does not work on UNIX.

72SUGGEST

In the test template in figure 7.3, you use the letter X to stand for something to be replaced and it occurs three times. My first thought when I saw that is that the letter X would be replaced by the same string in all three places. I know that you mention in the discussion that X is just a placeholder to indicate where you would want to substitute your own text, but, maybe it would be better to use a different letter in each place, like X, Y, and Z.

74TYPO

In the second paragraph after the running of churn.tests.rb, first sentence, you should have a space between “require” and “churn.rb”.

59TYPO

In exercise 4, in the second sentence after the irb output, you need a space between “any” and “deposit”.

85TYPO

In the svn_log method, the URL “svn://rubyforge.org//var/svn/churn_demo” should have only one “/” after rubyforge.org. The correct thing will happen but technically speaking, there should only be one “/” there. The same error is in the source in snapshots/churn.v7.rb and all later versions.

72SUGGEST

In bullet item number 4, you state that test methods start with “test_”. Another requirement is that the method must have no parameters or that all parameters must be optional. If that is not the case, the unit test code will raise an invalid_test exception.

85SUGGEST

In the box that talks about “What to Test”, you mention testing the case where the value to be rounded is 3.5. When dividing an integer by 5, it is impossible to have a result that ends in .5. The only way to get a value that ends in .5 is to pass a floating point number into asterisks_for. This seems to me to not be a good example to talk about testing rounding.

85TYPO

The method definition of svn_long is missing a ‘-’. It is printed as
timespan = “-revision ‘HEAD:{#{start_date}}’”
on this page and in the next section as
timespan = “—revision ‘HEAD:{#{start_date}}’”
the 2 dashes are needed.

90TYPO

The last sentence of the “Bugs in Tested Code” box says “I’m doing that on purpose—error handling is deferred to Chapter 21, When Scripts Run into Problems, beginning on page Chapter 21, When Scripts Run into Problems—but it’s certainly not unknown for people to do it by accident.”

Instead of a page number is says “Chapter 21, When Scripts Run into Problems” again after “on page”.

120TYPO

The formatting appears to have turned another — into -.

0TYPO

Download section on the website refers to “Scripting for Testers” instead of the actual title.

186ERROR

There is a problem with the downloadable code described in this section. Two of the tests in s4t-utils fail on Windows (native Windows) when run in a directory containing a space its path. The tests pass from the same directory, when I change my path to use the “short format” names, which contain no spaces.

15TYPO

> The third project visits to a website,

21TYPO

> The twiddle (~) means your home folder.

I like that you call it a “twiddle” but it’s formally known as a “tilde.”

32SUGGEST

“I encourage you to play around with these methods.”

Possibly confusing for those new to programming, because I don’t think the term “method” has been introduced yet at this point in the book, or if it has, not recently or memorably. My suggestion is to introduce or reintroduce the “method” here.

154TYPO

In the staement:
"There

19SUGGEST

Instead of suggesting WinZip as a zip program for Windows (shareware), I recommend suggesting the open source zip program from SourceForge called 7-Zip (7-zip.org).

35SUGGEST

For technical readers, Ruby treats all lower-cased “names” as variables and capitalized “names” as constants.

The reason why the interpreter is complaining on changing values for MyShip is because it’s a constant (note: capitalized name). Constants are meant to be initialized with a value and left alone. It is good practice to use lowercased alphanumeric words for variables and capitalized alphanumeric words for constants.

36TYPO

In the last paragraph of section 3.6, “…; puts would do the same for strings without them.)” when talking about how puts displays output from arrays should read “…; puts would do the same for arrays without them.)”

184ERROR

I tried to use the “make-s4t-project.rb” script and got an error when trying to execute the default-project.rb script from the site_ruby folder (after running setup.rb). I am using Mac OSX 10.4 with ruby 1.8.5 (2006-12-25 patchlevel 12) [i686-darwin8.8.1].

/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require’: no such file to load — s4t-utils/capturing-globals (LoadError)

85ERROR

It seems I always get a svn syntax error unless I take off the single quotes around ‘HEAD:{2005-01-26}’. This only returns a line of dashes from the repository though. I am very light on SVN, but I am wonder if the syntax is correct for my setup. I am running these scripts from the cmd line in Windows XP.

66TYPO

The printed text is: ‘The test will requirechurn.rb.’
The typo is there is no space between require and churn.
The test should be: ‘The test will require churn.rb.’

209ERROR

The solution to Exercise 3 in file exercise-3.rb in folder exercise-solutions/error-handling has an error. Note that you define your Reserver class as follows:

class Reserver
def reserve(machine_name)
machine = Machine.new(machine_name)
yield machine
puts “Reserved #{machine.name}.”
machine
rescue Exception => ex
puts “Test failure: #{ex.message}”
ensure
release(machine) if machine
end

def release(machine)
puts “Released #{machine.name}.”
end
end

You need to reverse the order of the following two lines of code:

yield machine
puts “Reserved #{machine.name}.”

It should be:

puts “Reserved #{machine.name}.”
yield machine

Otherwise, your output will never begin with:

Reserved Mycroft.

Nice exercise though.

260TYPO

Text is: “The number of messages in common is a little …”

I think it should be: “The number of elements in common is a little …”

17SUGGEST

Hi

I am trying to find a site/forum dedicated to the excercises in this book. A place where people can talk about their solutions and discuss the questions.

I"m even willing to setup a site for this, but can’t find a way to contact the author to discuss.

I can be reached at: theopensourceguy aatt gmail ddoott com

(I’m no Ruby expert and yet I feel this is a perfect way to become one)

23TYPO

In the footnote 3, first sentence: Change “…message send here …” to “…message sent here..”

261TYPO

In the solution to exercise number 5, the last paragraph states that for the first solution of the exercise, the changes ‘differences.rb’ will have to undergo so it can work in Unix would be made in the ‘compare_inventory_files’ method. But the way I see it, they would have to be made in the ‘inventory_from’ method since this is where the downcasing occurs and where we are entering the list of words that we want to exclude.

96ERROR

The bulleted list at the bottom of the page mixes up 1 and –1. The last sentence of the first bullet should read:

We’ll want another to come first in the sorted list, which will happen if the block returns 1.

The second bullet should read:

The value of 3 <=> 5 is –1, meaning that 5 comes after 3 in the built-in ordering.

The third bullet should read:

If the block returned that –1…

The last bullet should read:

So we negate the result of <=> to convert the –1 into 1…

117TYPO

Question 7 confuses a string and an array of strings. The question should read:

If you chose to have output’s return value be an array of strings (rather than a string), you’ll want to know about join…

66TYPO

“… let’s define month_before wrong: …”
should be
“… let’s define month_before wrongly: …”

117SUGGEST

#6768 is faulty — sorry about that, it was me who was confused. The question mentions join as it is meant to be used inside the output method.

283TYPO

Under the Exercise 9 header, in the first paragraph, the second sentence needs a space between “churn.rb” and “requires”. Currently it reads “churn.rbrequires the other two files”.

284TYPO

In the last paragraph before the “B.7” header at the bottom of the page, the test files suffix is written incorrectly as “test.rb”. It should read “tests.rb” as follows:

So as long as I follow the naming convention of ending all test files (and no others) with tests.rb…

76TYPO

in the second pice of testing code on the page:
def test_subversion_log_with_changes
there is an = among the — in the represenation of a line of dashes from an svn log (in the second printed line of the test definition.)

82TYPO

Last sentence of the highlight box called “Bigs in Tested Code”:
The text reads “…beginning on Chapter 21, …”
instead of
“…beginning on page 199 …” (if 199 is intended).

85TYPO

in “My Story of Shame” …
8th line:
reads “…using conference …”
should read “…using a conference…”

270TYPO

Line four of the first test set on the page, has ‘util’ instead of “util”.

270SUGGEST

P.S. to previous: Functionally there is no difference between ‘util’ and “util” in the context of the test but it looks odd and is not explained.

286TYPO

In the third paragraph (starts with “There’s a simple solution”), the second sentence should refer to Counter.count, not Counter.value. It currently reads:

Suppose every method that needs the count gets it through Counter.value.

110TYPO

page 110: line 8th from top of page (including blank line)
There is a single quote missing
irb(main):045:0 SubversionRepository.new(svn://blah.blah.blah’)
should read
irb(main):045:0 SubversionRepository.new(‘svn://blah.blah.blah’)

143TYPO

In the first sentence of the second paragraph under section 13.6 “Exercise Yourself”, the script “isbn-to-affinity-list.rb” is missing its file extension:

“…you may want to model your scripts after isbn-to-affinity-list and…”

281TYPO

In the last code snippet of exercise 7 the method “lines_ordered … _count” is missing
end
end

283SUGGEST

In the solution to Exercise 9, one of the class files referenced is formatter.rb. With the Ruby one-click installer v1.8.5-21, another formatter.rb is installed automatically on the path, making it so that calling a different file formatter.rb results in the code not working. In the one-click-installer v1.8.6-25, this is no longer a problem and the file can be named formatter.rb again. It might be good to add a footnote or something indicating this.

122TYPO

The first code example on page 122 appears to be missing its first line, which would be something like:
irb(main):029:0> class ReverseCredentialsClass

178TYPO

In the second to last paragraph in section 19.1, the last sentence (in parentheses) needs a space between “required” and “test/unit”:

“You’ve seen examples of this in tests that requiredtest/unit.”

It also may be worth considering if “required” should either be changed to the standard text font or changed to “require”.

186TYPO

In the first paragraph of the “Your Own Utility Library” sidebar, the last word of the first sentence should be singular (“cost”):

“One of the annoying things about the universe is that a net long-term benefit often has a net short-term costs.”

187TYPO

In the second paragraph under “rake increment-version”, the first sentence has two zeros (in different fonts) where only one is needed:

“A 00 in the first slot…”

27SUGGEST

ref. exercise 3.9.2.
When you say a file is unchanged you usually mean the contents of the file remain the same. Thus I’d recommend changing problem 3 to read: “and (the trickiest one) how many files are in both the new and the old inventories.”

189TYPO

In the first sentence of the last paragraph on the page, a space is needed between “included” and “S4tUtils”:

“…including them whenever you includedS4tUtils would lead…”

195ERROR

In figure 20.2, in the InnerModule definition, “def SomeClass” should be changed to “class SomeClass”. This corresponds to line 44 of module-facts/some-module.rb.

199TYPO

In the paragraph beginning “That’s a reasonable error message” (towards the bottom of the page), the second sentence needs a space between “open” and “no-such-file”:

“…leaving only the line that tries to openno-such-file.”

82SUGGEST

There don’t seem to have been any changes in the churn-demo subversion repertory recently, so when running churn.rb all the subsystems show zero asterisks and a count of zero. maybe you could cron some changes for us?

60TYPO

A successful build of churn will (as expected) right-justify the subsystems to 14 characters, but the ‘prompt-displays’ shown at figs 7.2 and similar are not correctly justified.

93SUGGEST

“We know that this line’s change count starts at character 14.”
A number other than 14 would be better as (when counting spaces) this could be confused with the right-justification amount for the subsystem name.
An output pasted from churn would be something like
" ui2(13)" - i.e 11 spaces before ui2.
Given any real churn output, the first irb example on the page will always yield => 16 when applied to it.

110SUGGEST

irb might not indent as shown here. if not, within an irb session, type:

conf.auto_indent_mode = true

or (better) add this line to your ~/.irbrc file

IRB.conf[:AUTO_INDENT] = true

see [TH01], p.190

81SUGGEST

As others have noted, the svn repository has not been updated in quite a while, making this a boring script to test.

I would make the suggestion that you have people hard-code the start date to Time.local(2006, 7, 11), since that’s a time when meaningful changes had been made.

Of course, this means that your suggested fix for Exercise 1 is invalid. I would recommend:

def header (inTime)
endTime = Time.local(inTime.split(‘’)[0], inTime.split(’’)[1], inTime.split(‘-’)[2])
endTime += 60 * 60 * 24 * 28
“Changes between #{inTime} and #{svn_date(endTime)}”
end

151TYPO

ri File.glob should be ri Dir.glob

60SUGGEST

You say that subversion is not required to work on this project…yet you will get different results than the book and you won’t be sure if what you did was right or wrong. Why not just put the svn output in a text file so everyone can play?

90TYPO

The sidebar box is crowding the main copy.

139ERROR

scrape_author does not work with string “field-author-exact”, but “field-author” appears to work.

136SUGGEST

The irb example about mid-page suggests text.scan(/Customer.*also/)

Surprise! Amazon now capitalizes ‘Also’.

I suggest adding ‘i’ after the regexp.
text.scan(/Customer.*also/i)

77TYPO

In the string being assigned to the variable “root” the svn path should only have one “/” before “var”

109TYPO

The snv path being assigned to the “root” variable has an extra forward slash (“/”)before the word “var”

145TYPO

In the last sentence “File.glob” should be “Dir.glob”

258TYPO

I am not really sure but I think that you meant if you refer to the example “4 new files; 2 deleted files; 13 files in common” instead of “13 new files; 2 deleted files; 5 files in common”

46TYPO

…new_inventory = File.open(ARGV[1]).readlines… should read … new_inventory = File.open(ARGV[1].readlines

89SUGGEST

In these code examples, the line

svn log #{timespan} #{root}/#{subsystem}

appears to be surrounded by single-quotes. But they are actually back-ticks. If someone (like me) is following along with the printed examples & uses the single-quotes the script won’t work.

Looking at the downloadable code revealed the problem. But the presence of back-tics should be obvious looking at the printed code in the book as well.

89TYPO

In my system (OS X 10.4, SVN 1.3.1) the line:

timespan = “-revision ‘HEAD:{#{start_date}}’”

does not work. Revision must be preceeded by two dashes. The line should read:

timespan = “—revision ‘HEAD:{#{start_date}}’”

25SUGGEST

For us real neophytes, it would be helpful if the text said “open your text editor” when applicable, at least for the first few chapters until it becomes ingrained. The first instance would be under 3.7 on page 25. The book does a good job warning about the difference between typing at the prompt and at irb, but the idea that there is a third “typing venue” is rather glossed over.

260TYPO

The printout solution to Exercise 3, using the study files provided and running exercise-1.rb should read: 4 new files; 2 deleted files; 13 files in common.

40ERROR

Following the code example, the following sentence appears: “The new message is defined at #1.” Doesn’t this code example define a “method,” not a message? If it does in fact define a message, then the references to method on the rest of this page should be changed to match. (I think; correct me if I’m wrong.)

85TYPO

In this def, at the second line, it should be —revision and not -revision:

def svn_log(subsystem, start_date)
timespan = “-revision ‘HEAD:{#{start_date}}’”
root = “svn://rubyforge.org//var/svn/churn-demo”
‘svn log #{timespan} #{root}/#{subsystem}‘
end

Thanx for your great books!

86TYPO

Actually, on page 69, where you make reference to in the last part of page 86, the line : start_date = month_before(Time.now) is at number (3), not number 2.

Thanx for your great book!

138ERROR

Amazon seems to have added some style sheets here. I had to modify the regex to include “span” like so: /<b.?><span\\sid.?>(.?)</span\\s>/

I suppose one could also use a greedy operator to find the second “>” before the group.

76ERROR

Paragraph : “Suppose that I later change month_before and
break it. Then both the direct test_header_format and […]”

I disagree that the ‘direct’ test fails; the ‘bootstrap’ test_header_format
and the test_month_before_is_28_days will both fail.

117TYPO

The argument string on the following line is missing it’s opening quote:

irb(main):045:0> SubversionRepository.new(svn://blah.blah.blah’)

92ERROR

Sentence “The special character + says that the preceding character must be repeated one or more times to match:”
Should read, “The special character + says that the preceding character MAY be repeated one or more times to match:”

(As it is currently stated, the example’abc’ should not match since the b is not repeated)

181ERROR

I don’t know if this is an error. I’m not able to use setup.rb. After I have run setup.rb I’m still not able to call clash-check.rb from an arbitrary folder. I’m on Mac OS X. I don’t seem to have any site_local folder which is unfortunate since it is mentioned repeatedly. Files seems to installed in /System/Library/Ruby.framework… In Mac OS X Leopard ruby has been framwork’ized could this have something to do with my problems?

93TYPO

in paragraph 1:
“I had the task of using conference attendee spreadsheet” — ‘a’ or ‘the’ conference spreadsheet

89ERROR

timespan = “-revision ‘HEAD:{#{start_date}}’”
not only require 2 dashes, but enclosing the revision range in single quotes gives a syntax error from svn.

58TYPO

The code
“‘new-inventory.txt’)”
is blue when it should be orange-red.

38SUGGEST

.readlines is no longer used in the code examples, but there is no explanation why it was dropped.

90TYPO

“I’m doing that on purpose - …” that sentence needs to be cleaned up.

32TYPO

The last sentence on page 32 refers to “the sidebar on page 111” for more info on ri. In my edition, the sidebar is on page 112.

38TYPO

old-inventory.txt is not sorted alphabetically, financial-records.xls is listed after old-inventory.txt

allSUGGEST

I now realize that most of the examples as published are no longer current. It would have been helpful to note this on the website and alerting folks before they purchase this book.

100ERROR

It’s written twice that dot matches any character. This is not true, since it doesn’t match newline. Compare the two following:

~>irb
irb(main):001:0> /a.b/ =~ “a\
b”
=> nil
irb(main):002:0> /a.b/m =~ “a\
b”
=> 0

I use the single-line mode flag (i.e. ‘m’) in the second case. This feature is sometimes called dot-matches-newline or dot-all.

75ERROR

Half way through the page, the churn-tests.rb example that shows how to select specific tests has a technical error.

prompt> ruby churn-tests.rb —name=/asterisks/
should be
prompt> ruby churn-tests.rb —name /asterisks/
- just leave out the ‘=’ after —name

82TYPO

In the grayed out “Bugs in Tested Code” section, three lines from the bottom, the sentence states
“beginning on page Chapter 21, When Scripts…”
instead this sentence should have a page number instead of restating the chapter and the chapters title.

40ERROR

At the end of the last sentence of the explanation accompanying the fourth example from the bottom of the page “…message arguments are always in parentheses.)” is not true. “a.delete_at 0” works just fine.

66ERROR

I use Ruby 1.9.3 and when I try to run churn-tests.rb I get the error:

C:\\Ruby193\\code\\churn>ruby churn-tests.rb
C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require’: cannot load such file — churn (LoadError)
from C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require’ from churn-tests.rb:7:in `


C:\\Ruby193\\code\\churn>

Is it because I use a different version of Ruby?

74SUGGEST

When running the test scripts in the Churn example it should be noted that users running with Ruby >=1.9.2 cannot use the require on the current dir so running

$ ruby churn-tests.rb

will result in an error

churn not found.

Users need to use either

require_relative

or some other method of loading files from the same directory as the running script.

260TYPO

“Here is the number of new and deleted messages:”

In the exercise you refer to the contents of the array as files or elements. Never as messages. But in the solution you repeatedly refer to “messages”, which is confusing.

Further, the exercise asked for: “how many files were unchanged”, NOT how many elements in common they two lists have.

My solution was: puts old_inventory.length - deleted_files.length

I ended up with the 13, the same result as “files in common” (as other errata reporters found, as the numbers in the text are completely wrong), but my way makes more sense to me, as it more directly answers the original question.

90ERROR

The autor didn’t mention that we would need subvertion installed. After getting the last version of that SVN (subvertion) I changed a bit the code to force it to work, I took out the single quotes around HEAD{#{start_date}} and instead of Time.now, I put Time.local(2005, 7, 30) (without those changes we couldn’t follow along the book).

def month_before(a_time)
a_time - 28 * 24 * 60 * 60
end

def svn_date(a_time)
a_time.strftime(“%Y%m%d”)
end

def header(an_svn_date)
“Changes since #{an_svn_date}:”
end

def subsystem_line(subsystem_name, change_count)
asterisks = asterisks_for(change_count)
“#{subsystem_name.rjust(14)} #{asterisks} (#{change_count})”
end

def asterisks_for(an_integer)
(an_integer / 5.0).round
end

def change_count_for(name, start_date)
extract_change_count_from(svn_log(name, start_date))
end

def extract_change_count_from(log_text)
lines = log_text.split(“\
”)
dashed_lines = lines.find_all do | line |
line.include?(‘————’)
end
dashed_lines.length - 1
end

def svn_log(subsystem, start_date)
timespan = “—revision HEAD:{#{start_date}}”
root = “svn://rubyforge.org/var/svn/churn-demo”

`svn log #{timespan} #{root}/#{subsystem}`
end

if $0 == FILE
subsystem_names = [‘audit’, ‘fulfillment’, ‘persistence’,
‘ui’, ‘util’, ‘inventory’]
start_date = svn_date(month_before(Time.local(2005, 7, 30)))

puts header(start_date)
subsystem_names.each do | name |
puts subsystem_line(name, change_count_for(name, start_date))
end
end

besides that: Great book!! Thanks!!

84TYPO

The penultimate line of code in extract_change_count_from [ i.e., “dashed_lines.length - 1”] is marked with a (4), yet this (4) doesn’t appear to be referenced later in the book.

148TYPO

“I suggest you require affinity-list.rb”

Should this be affinity-trip.rb?

60ERROR

svn: Network connection closed unexpectedly

tl;dr - root = “ht tp://churn-demo.rubyforge.org/svn”
(delete the space between ht and tp)

when running:

prompt> svn log —revision ‘HEAD:{2005-07-30}’ svn://rubyforge.org/var/svn/churn-demo/inventory

or even just running the command: svn log svn://rubyforge.org/var/svn/churn-demo

So running churn.rb would result in:

salman@saleheen:~/everyday_scripting/churn$ ruby churn.rb
Changes between 2005-07-07 and 2005-08-04:
svn: Network connection closed unexpectedly
svn: Network connection closed unexpectedly
svn: Network connection closed unexpectedly
svn: Network connection closed unexpectedly
svn: Network connection closed unexpectedly
svn: Network connection closed unexpectedly
util (–1 changes) *
ui (–1 changes) *
persistence (–1 changes) *
inventory (–1 changes) *
fulfillment (–1 changes) *
audit (–1 changes) *

According to the rubyforge FAQ:

Anonymous cvs/svn checkouts and exports keep failing

Sometimes you’ll see a svn: Connection closed unexpectedly error message when you try to export or check out a Subversion repository using anonymous Subversion - e.g., svn co svn://rubyforge.org/var/svn/rspec/trunk/rspec rspec. Or with CVS, the message will be something like cvs [checkout aborted]: end of file from server (consult above messages if any). This is probably happening because we throttle anonymous connections based on server load (using xinetd). You may instead want to use HTTP for anonymous Subversion checkouts instead -e.g., svn co ht tp://rspec.rubyforge.org/svn/trunk/rspec rspec.

(ht tp://rubyforge.org/docman/view.php/5/460/faq.html#anon_svn_failure)

Now if you run the command with the corrected http vs svn address you would get correct output:

$ svn log —revision ‘HEAD:{2005-05-05}’ ht tp://churn-demo.rubyforge.org/svn/audit
————————————————————————————————————
r10 | marick | 2006-08-08 19:36:28 –0500 (Tue, 08 Aug 2006) | 1 line


r9 | marick | 2006-08-08 19:35:36 –0500 (Tue, 08 Aug 2006) | 1 line


r7 | marick | 2006-08-08 19:32:47 –0500 (Tue, 08 Aug 2006) | 1 line


r3 | marick | 2006-08-07 23:22:26 –0500 (Mon, 07 Aug 2006) | 1 line

reversal story
————————————————————————————————————
r1 | marick | 2006-08-07 14:21:47 –0500 (Mon, 07 Aug 2006) | 1 line

first touches
————————————————————————————————————

Thus, in order to correct the output of churn, change your svn_log definition to have this definition of root:
root = “ht tp://churn-demo.rubyforge.org/svn”

40TYPO

In the example a = [‘zero’ , ‘un’ ,‘dos’ , ‘tre’ ] should say ‘tres’ is 3 in Spanish.

a = [‘zero’ , ‘un’ ,‘dos’ , ‘tres’ ]

85ERROR

In the las line of svn_log says ‘svn log #{timespan} #{root}/#{subsystem}‘
The correct form is with “svn log #{timespan} #{root}/#{subsystem}” becose you use #{} for print values.

94SUGGEST

With my poor English, it is unclear what operation is evaluated first, apparently contradicts a page later. Something that should be reviewed for a future edition.

156ERROR

The site www.testing.com don’t exist any more =(

27TYPO

In exercise 3.9.3 do you mean the first paragraph to say “the number of files added in new-inventory.txt”

32ERROR

My downloaded tgz code doesn’t have the file “new-inventory.txt”, so in order to File.open it, I first create it with File.new - but as a new file obviously doesn’t have the content mentioned in File.open.readlines

Categories: