On Feb 28, 2006, at 10:53 AM, Jeffrey Schwab wrote:

> James Edward Gray II wrote:
>
>> def commify( number )
>>   number.to_s.reverse.gsub!(/(\d\d\d)(?=\d)(?!\d*\.)/, '\1,').reverse
>> end
>
> That's nice, except that gsub! returns nil if no substitutions are  
> performed, e.g. if the number has fewer than 4 digits.  This can  
> result in an exception like:
>
>   main.rb:3:in `commify':
>     undefined method `reverse' for nil:NilClass(NoMethodError)
>
> Of course, you could just break the chain across multiple lines:
>
>   def commify(number)
>     s = number.to_s
>     s.reverse!
>     s.gsub!(/(\d\d\d)(?=\d)(?!\d*\.)/, '\1,')
>     s.reverse!
>   end

Good catch.  I originally had it in multiple lines and I forgot to  
remove the ! when I shortened it for this post.

Thanks.

James Edward Gray II