Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
150 views
in Technique[技术] by (71.8m points)

Where is the syntax error in this Ruby snippet?

Pulling my hair out...

Prawn::Document.generate(@targetfile) do |pdf|

  pdf.bounding_box ([80, 510] , :width => 400) do

    pdf.text("hello")

  end

end

gives a syntax error, unexpected ',', expecting ')' for the "comma" just before :width => 400

I tried this with both Ruby 1.9.3 and 2.1 - both give the same error. The only other thing I changed was that I upgraded the prawn version from 1.0 to 2.0 - according to the manual using prawn like this should still be ok though.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

agree with andrew's answer above. When using a function call in ruby, you can either have a space with no parenthesis, or parenthesis and no space, but not both. so:

pdf.bounding_box([80, 510] , :width => 400) is ok

pdf.bounding_box [80, 510] , :width => 400 is also ok

But you can't do a space and a parenthesis. Now in your case, since you want to chain the result of this to a do/end block, you will have to use the parenthesis, so option 1 is the only way to go.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...