I am lost why this simple code is running well with irb and not in my app (syntax error)

running irb in the console, I can transform easily an array into an
hash

options = [[“name”, “aName”], [“integration_id”, “604fe14d”], [“api_secret”,
“b0a7088d”], [“site_id”, 99], [“secure_base_url”,
https://www.mydomain.com:443/api/secure”], [“base_url”,
http://www.mydomain.com/api”]]

options.inject({}) {|h,(k,v)| h[k]=v ; h}
{“name”=>“aName”, “integration_id”=>“604fe14d”,
“api_secret”=>“b0a7088d”, “site_id”=>41, “secure_base_url”=>“https://
www.mydomain.com:443/api/secure”, “base_url”=>“http://www.mydomain.com/
api”}

but running it in my code

def initialize(remote_server, options=nil)

@parameters = options.inject({}) {|h,(k,v)| h[k]=v; h }

end

running my app…
syntax error, unexpected $end, expecting ‘}’
@parameters = options.inject({}) {|h,(k,v)| h[k]=v

it doesn’t accept the semi-column !!

On Thu, Feb 24, 2011 at 6:27 PM, Erwin [email protected] wrote:

“api_secret”=>“b0a7088d”, “site_id”=>41, “secure_base_url”=>"https://

why not try placing it in different lines.
@parameters = options.inject({}) do |h,(k,v)|
h[k]=v
h
end

if it still gives the error, try splitting the second argument inside
the
block instead of using (k,v)

running my app…

To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.

On 24 February 2011 10:27, Erwin [email protected] wrote:

@parameters = options.inject({}) {|h,(k,v)| h[k]=v

it doesn’t accept the semi-column !!

It syntax checks ok for me. I pasted it into one of my files and it
is fine. Ruby 1.8.7. Are you sure it is not a problem in the
surrounding code somewhere. Is it ok if you replace it with a simple
line of code, or initially comment it out? Alternatively perhaps
there is an non-printing character on that line that is confusing the
parser. Try re-typing it completely.

Colin

thanks , I finally ended by doing that … and it runs well

I forgot to mention I write in Ruby 1.9.2… but whatever
I should have the same error running irb …
I replaced this line with a do block and it’s running fine … Did
Einstein said : “Ruby don’t play dice” ?

Quoting E. [email protected]:

I forgot to mention I write in Ruby 1.9.2… but whatever
I should have the same error running irb …
I replaced this line with a do block and it’s running fine … Did
Einstein said : “Ruby don’t play dice” ?

Ah, but God did give electrons a bit of freewill. Ruby interpreters may
take
similar libertes :wink:

Jeffrey

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs