/ / нечетен списък с номера за Hash на много основен скрипт [затворен] - ruby, rubygems

нечетен списък с номера за хеш на много основен скрипт [затворен] - рубин, рубигем

Ето моят код (цялата му част):

require "rubygems"
require "ruby-box"

с инсталирани rubygems и ruby-box инсталиран като скъпоценен камък. Ето моята грешка:

Faraday: you may want to install system_timer for reliable timeouts
/Library/Ruby/Site/1.8/rubygems/core_ext/kernel_require.rb:45:in `gem_original_require": /Library/Ruby/Gems/1.8/gems/ruby-box-1.9.1/lib/ruby-box/item.rb:91: odd number list for Hash (SyntaxError)
access: "open"
^
/Library/Ruby/Gems/1.8/gems/ruby-box-1.9.1/lib/ruby-box/item.rb:91: syntax error, unexpected ":", expecting "}"
access: "open"
^
/Library/Ruby/Gems/1.8/gems/ruby-box-1.9.1/lib/ruby-box/item.rb:92: syntax error, unexpected "}", expecting kEND
}.merge(opts) if opts
^
/Library/Ruby/Gems/1.8/gems/ruby-box-1.9.1/lib/ruby-box/item.rb:102: odd number list for Hash
shared_link: opts
^
/Library/Ruby/Gems/1.8/gems/ruby-box-1.9.1/lib/ruby-box/item.rb:102: syntax error, unexpected ":", expecting "}"
shared_link: opts
^
from /Library/Ruby/Site/1.8/rubygems/core_ext/kernel_require.rb:45:in `require"
from /Library/Ruby/Gems/1.8/gems/ruby-box-1.9.1/lib/ruby-box.rb:4
from /Library/Ruby/Site/1.8/rubygems/core_ext/kernel_require.rb:110:in `gem_original_require"
from /Library/Ruby/Site/1.8/rubygems/core_ext/kernel_require.rb:110:in `require"
from box.rb:2

Отговори:

3 за отговор № 1

Изглежда, че използвате Ruby 1.8, но се опитвате да използвате хеш буквалния синтаксис, който беше добавен в Ruby 1.9:

{ foo: bar }

В Ruby 1.8 трябва да напишете:

{ :foo => bar }

Но ако едва започвате, препоръчвам ви просто да надстроите своята версия Ruby, а не да пренаписвате кода си.

Обърнете внимание, че къдравите скоби понякога се пропускат, ако хешът е аргументът на извикване на метод.