Nick,

> number = gets

after this line, try to

p number

to see what does it contain. It contains

"4\n"

So,  there is an ugly "\n" (carriage return) at the end. Let's remove that!

number = gets.chop
p number

now we have

"4"

That's better.
However, this was not the problem, your program will run also without 
this fix :-) The problem is that

(number.to_i + 1)

is a FixNum - you need to turn that into a String. So the correct 
solution reads:

'That is a good number, but ' + (number.to_i + 1).to_s + ' is better!'

HTH,
Peter

__
http://www.rubyrailways.com