On 6/30/07, Ian Whitlock <iw1junk / comcast.net> wrote: > Robert Dober wrote: > > > def remove_nl_and_kw file_name, key_word="ruby" > > File.readlines(file_name). > > map{|line| line.chomp}. > > gsub(key_word, "_" << key_word << "_"). > > join > > > > end > > > > If you had the newlines removed because keywords might spwan lines you > > have to put join in front of gsub, but that might become a performance > > nightmare for larger files as you will be calling gsub on *huge* > > strings. > > Robert, > > Nice tight illustrative code, but it needs a newbie correction. If join > is to be at the end, then you need Well spotted, thx for correcting it :), will teach me to copy lines around. > > def remove_nl_and_kw( file_name, key_word="ruby") > File.readlines(file_name). > map{|line| line.chomp.gsub(key_word, "_" << key_word << "_")}. that's it very nice > join > end > > Now I have another newbie question. When is the file closed? > end of readlines? that's it, as a matter of fact this is one of my favorite properties of the class methods #IO.read, #IO.readlines and #IO.open with a block. of program? > > Thanks for patience. > Ian Thank *you* Robert -- I always knew that one day Smalltalk would replace Java. I just didn't know it would be called Ruby -- Kent Beck