-1

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.

patschiboy
  • 1,091
  • 8
  • 21

2 Answers2

8

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.

Eugene G
  • 456
  • 4
  • 11
  • 2
    To clarify why, `Math.sqrt(1+3) * 4` is `8.0` (`Math.sqrt(1+3)) * 4`); but `Math.sqrt (1 + 3) * 4` is `4.0` (`Math.sqrt((1 + 3) * 4)`). When you write `pdf.bounding_box (x, y)`. However, `,` is not an operator in Ruby, so `(1, 3)` (when not in one of special contexts such as function invocation) is a `SyntaxError`. – Amadan Aug 03 '15 at 04:05
4

It's because of the space between bounding_box and the brackets.

Andrew Grimm
  • 78,473
  • 57
  • 200
  • 338