2013-11-12 2 views
0

Я переместил хостинг-провайдеров и переустановил рубинов и посредников.Сервер Middleman не запускается, regexp имеет недопустимый внутренний

Когда я бегу bundle exe middleman server я получаю:

/var/lib/gems/1.8/gems/haml-4.0.4/lib/haml/parser.rb:86 предупреждение: регулярное выражение имеет недействительный интервал /var/lib/gems/1.8/gems/middleman-s3_sync-3.0.21/lib/middleman-s3_sync.rb::в require': /var/lib/gems/1.8/gems/middleman-s3_sync-3.0.21/lib/middleman/s3_sync.rb:54: syntax error, unexpected ':', expecting ')' (SyntaxError) @progress_bar ||= ProgressBar.create(total: paths.length) ^ /var/lib/gems/1.8/gems/middleman-s3_sync-3.0.21/lib/middleman/s3_sync.rb:54: syntax error, unexpected ')', expecting kEND /var/lib/gems/1.8/gems/middleman-s3_sync-3.0.21/lib/middleman/s3_sync.rb:67: syntax error, unexpected '.', expecting kEND ... .reject { |p| File.directory?(p... ^ /var/lib/gems/1.8/gems/middleman-s3_sync-3.0.21/lib/middleman/s3_sync.rb:137: syntax error, unexpected $end, expecting kEND from /var/lib/gems/1.8/gems/middleman-s3_sync-3.0.21/lib/middleman-s3_sync.rb:2 from /var/lib/gems/1.8/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in требуется ' /var/lib/gems/1.8/gems/bundler-1.3 .5/lib/bundler/runtime.rb: 72: в require' from /var/lib/gems/1.8/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in каждый ' из /var/lib/gems/1.8/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in require' from /var/lib/gems/1.8/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in каждый' из /var/lib/gems/1.8/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in require' from /var/lib/gems/1.8/gems/bundler-1.3.5/lib/bundler.rb:132:in r equire ' из /var/lib/gems/1.8/gems/middleman-core-3.2.0/lib/middleman-core/load_paths.rb:38:in setup_load_paths' from /var/lib/gems/1.8/gems/middleman-core-3.2.0/bin/middleman:10 from /usr/local/bin/middleman:19:in загрузить' из/usr/local/bin/middleman: 19

Знание Ruby очень плохое, но когда я смотрю на код, я не вижу синтаксической ошибки. Я посмотрел код s3_sync git hub, и эта часть кода не изменилась за какое-то время. Я подозреваю, что это проблема с кодировкой, однако я немного застрял в попытке ее исправить. Любой свет, который вы можете пролить, будет очень полезен.

Дополнительная информация: Я пробовал Ruby 1.8 и 1.9.3. И это на Ubuntu 12.04.

+1

Похоже, что Middleman использует новый синтаксис хэша стиля JavaScript ('total: paths.length' vs': total => paths.length'), поэтому он не будет работать с Ruby 1.8, должно быть хорошо с 1.9.3, хотя , –

+0

Спасибо, почему бы не добавить ответ, чтобы я мог дать вам кредит на решение этого вопроса. –

+0

Я ухожу на день, поэтому я надеялся, что кто-то еще будет :) –

ответ

1

SyntaxError, кажется, жалуясь об этом внутри Middleman:

ProgressBar.create(total: paths.length) 

/var/lib/gems/1.8/ путь указывает на то, что вы используете Ruby, 1.8.X. Но JavaScript-стиль Hash обозначения:

total: paths.length 

не работает в версии 1.8, вы должны использовать :total => paths.length обозначения там. Похоже, вы не можете использовать эту версию Middleman с 1.8.7, либо обновляетесь до 1.9.3+, либо понижаете свой средний уровень до того, что работает со старыми Rubies.