Forum: Ruby Got some syntax error I can't spot. Can you (I hope)?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
31fdda5f38fc6df4e193cfb7445ddc5a?d=identicon&s=25 RichardOnRails (Guest)
on 2009-04-04 08:05
(Received via mailing list)
Hi all,

I pulled my problem code from my app into a test on
http://www.pastie.org/436616.

Lines 13-19 are the problem code in my app.

Lines preceding them I set up needed definitions and test individual
components of the problematic code.

The final lines display the error lines 13-19 produce.  Can you see
what the problem is?

Thanks in Advance,
Richard
4feed660d3728526797edeb4f0467384?d=identicon&s=25 Bill Kelly (Guest)
on 2009-04-04 08:22
(Received via mailing list)
From: "RichardOnRails" <RichardDummyMailbox58407@USComputerGurus.com>
>
> I pulled my problem code from my app into a test on http://www.pastie.org/436616.
>
> Lines 13-19 are the problem code in my app.
>
> Lines preceding them I set up needed definitions and test individual
> components of the problematic code.
>
> The final lines display the error lines 13-19 produce.  Can you see
> what the problem is?

Precedence problem with + and % apparently.  This works:

puts(("Considering saving the trade-group"   +
  "\tfor symbol \"%s\", "+
  "\tgroup size: %d, " +
  "\tand # groups saved thus far: " +
      "open(%d), " +
      "completed(%d)") %
      [savedSymbol, tradeGroup.size, openTrades.size,
completedTrades.size])


Regards,

Bill
Ae16cb4f6d78e485b04ce1e821592ae5?d=identicon&s=25 Martin DeMello (Guest)
on 2009-04-04 08:23
(Received via mailing list)
On Sat, Apr 4, 2009 at 11:34 AM, RichardOnRails
<RichardDummyMailbox58407@uscomputergurus.com> wrote:
> what the problem is?
It's a precedence thing - % has higher precedence than +. Try this:

# before
puts "Considering saving the trade-group"   +
  "\tfor symbol \"%s\", "+
  "\tgroup size: %d, " +
  "\tand # groups saved thus far: " +
      "open(%d), " +
      "completed(%d)" %
      [savedSymbol, tradeGroup.size, openTrades.size,
completedTrades.size]

# after

puts ("Considering saving the trade-group"   +
  "\tfor symbol \"%s\", "+
  "\tgroup size: %d, " +
  "\tand # groups saved thus far: " +
      "open(%d), " +
      "completed(%d)") %
      [savedSymbol, tradeGroup.size, openTrades.size,
completedTrades.size]

martin
31fdda5f38fc6df4e193cfb7445ddc5a?d=identicon&s=25 RichardOnRails (Guest)
on 2009-04-04 09:00
(Received via mailing list)
On Apr 4, 2:04 am, RichardOnRails
<RichardDummyMailbox58...@USComputerGurus.com> wrote:
> what the problem is?
>
> Thanks in Advance,
> Richard

My brain finally thawed.  I a movie decades ago,  a Dustin Hoffman
character was told the "plastic" was the key to success.  For my
current problem,  the key was "parentheses"!  I appended the
correction to the Pastie post.\

My apology for wasting your time with my stupidity.

Best wishes,
Richard
31fdda5f38fc6df4e193cfb7445ddc5a?d=identicon&s=25 RichardOnRails (Guest)
on 2009-04-04 17:26
(Received via mailing list)
On Apr 4, 2:20 am, Bill Kelly <bi...@cts.com> wrote:
>
>       "completed(%d)") %
>       [savedSymbol, tradeGroup.size, openTrades.size, completedTrades.size])
>
> Regards,
>
> Bill

Hi Bill,

Many thanks for your solution.  It looks like you posted your response
about 15 minutes after I posted my question.

I posted my Eureka moment about an hour after I posted my question,
though it seemed to me to have been much sooner than that,  so I never
checked to see whether anyone had posted a response.

So I don't know which to be happier about.  That my brain began
functioning again, of that this newsgroup is attended by such
wonderful people like you and Martin.

Again,  thank you and
Best wishes,

Richard
31fdda5f38fc6df4e193cfb7445ddc5a?d=identicon&s=25 RichardOnRails (Guest)
on 2009-04-04 17:30
(Received via mailing list)
On Apr 4, 2:21 am, Martin DeMello <martindeme...@gmail.com> wrote:
> > components of the problematic code.
>   "\tand # groups saved thus far: " +
>       "open(%d), " +
>
Hi Martin,

I posted an equivalent of the following post to Bill Kelly:

Many thanks for your solution.  It looks like you posted your response
about 20 minutes after I posted my question.

I posted my Eureka moment about an hour after I posted my question,
though it seemed to me to have been much sooner than that,  so I never
checked to see whether anyone had posted a response.

So I don't know which to be happier about.  That my brain began
functioning again, of that this newsgroup is attended by such
wonderful people like you and Bill.

Again,  thank you and
Best wishes,

Richard
87ef5d1e14b148eb596433bc17ffe690?d=identicon&s=25 Leo (Guest)
on 2009-04-04 18:39
(Received via mailing list)
> I pulled my problem code from my app into a test onhttp://www.pastie.org/436616.

You might want to take a look at ruby's heredoc syntax:

Instead of

    a = ("foo" + "(%d)" + " bar") % 123

you could also use:

    a = <<TEXT % 123
    foo(%d) bar
    TEXT
31fdda5f38fc6df4e193cfb7445ddc5a?d=identicon&s=25 RichardOnRails (Guest)
on 2009-04-05 06:32
(Received via mailing list)
On Apr 4, 12:34 pm, Leo <minil...@gmail.com> wrote:
>     a = <<TEXT % 123
>     foo(%d) bar
>     TEXT

Hi Leo,

Nice idea!  Saves typing (and mistyping!) all those quotes, pluses, \n
and \t.  Works great!

Many thanks and
Best wishes,
Richard
This topic is locked and can not be replied to.