I get an error when running code snippet A, but if I change it to B, there's no error. I'm not familiar enough with Ruby to know why this is. Could someone explain this? ----- A ----- def ReturnString ( ) return "abc" end File.open ( "junk.txt" , "w" ) do | f | f.write ( ReturnString ( ) + "\n" ) end ----- B ----- def ReturnString ( ) return "abc" end File.open ( "junk.txt" , "w" ) do | f | s = ReturnString ( ) f.write ( s + "\n" ) end If it makes any difference, I'm running Ruby under Windows. Mike S.
on 2007-05-02 06:28
on 2007-05-02 07:05
On Tuesday 01 May 2007 22:27, Mike S. wrote: > f.write ( ReturnString ( ) + "\n" ) > end You can't have that space between ReturnString and the parenthesis (you sure like lots of spaces, eh?). Here's one way of doing it that should work: def return_string 'abc' end File.open('junk.txt', 'w') do |f| f.puts return_string end
on 2007-05-02 07:26
On 5/2/07, Jesse M. <email@example.com> wrote: > 'abc' > http://www.jessemerriman.com/ > > Jesse explained the problem. I ran your code and there were no errors in one version but there were warnings about the spaces before parentheses. It is a good idea to heed warnings and try to make them go away. Harry