From: Mark Hubbart Date: 2004-03-07T09:13:25+09:00 Subject: Re: Whitespace syntax error? Hi, It's not a bug, it's expected behavior. The problem is that when you are passing a block, it must begin on the same line as the function you are passing it to. It's almost like an argument. So, you you have three choices: - put the opening brace on the function call's line, as in the first example; - use do...end instead of braces (since braces were really intended for single-line code anyway (please don't flame me!!!!!)) - petition Matz? Ruby is not whitespace-neutral. It uses newlines as statement separators. --Mark On Mar 6, 2004, at 1:29 PM, Gregory Benjamin wrote: > I'm using: ruby 1.8.1 (2004-01-27) [i386-mswin32] > > When I run the following program it works fine: > #################################################### > require 'tk' > > root = TkRoot.new { title "Example 1" } > > TkLabel.new(root){ > text "Hello, World!" > pack { padx 15; pady 15; side 'left' } > } > > Tk.mainloop > #################################################### > But when I run this version: > #################################################### > require 'tk' > > root = TkRoot.new { title "Example 1" } > > TkLabel.new(root) > { > text "Hello, World!" > pack { padx 15; pady 15; side 'left' } > } > > Tk.mainloop > #################################################### > I get the following: > > hello.rbw:7: syntax error > text "Hello, World!" > ^ > hello.rbw:7: warning: unused literal ignored > hello.rbw:9: syntax error > #################################################### > The only difference between the two versions is the > insertion of a CR/LF between ")" and "{" on line 7. > I thought Ruby was whitespace neutral. What is wrong > here? > > I care about this because I like to line up my braces > as shown in the second example. > >