Не знаю почему такую панику вызвала ошибка гема xmpp4r-simple в ruby 1.9.2 у матерых пользователей Хабра.
Собственно сама ошибка выглядит так:
1 2 3 4 5 6 7 8 9 10 11 12 | /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:58:in `require': /usr/localrvm/gems/ruby-1.9.2-p180/gems/xmpp4r-simple-0.8.8 /lib/xmpp4r-simple.rb:441: syntax error, unexpected ':', expecting keyword_then or ',' or ';' or '\n' (SyntaxError) when nil: new_presence.show || :online ^ /usr/local/rvm/gems/ruby-1.9.2-p180/gems/xmpp4r-simple-0.8.8/lib/xmpp4r-simple.rb:442: syntax error, unexpected keyword_when, expecting keyword_end when :unavailable: :unavailable ^ /usr/local/rvm/gems/ruby-1.9.2-p180/gems/xmpp4r-simple-0.8.8/lib/xmpp4r-simple.rb:443: syntax error, unexpected keyword_else, expecting keyword_end /usr/local/rvm/gems/ruby-1.9.2-p180/gems/xmpp4r-simple-0.8.8/lib/xmpp4r-simple.rb:490: syntax error, unexpected keyword_end, expecting $end from /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:58:in `rescue in require' from /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require' from xmpp.rb:3:in `<main>' |
Странно, что никому в голову не пришло проверить ту самую злополучную 441 строку в /usr/local/rvm/gems/ruby-1.9.2-p180/gems/xmpp4r-simple-0.8.8/lib/xmpp4r-simple.rb
.
441 442 443 444 445 446 | presence = case new_presence.type when nil: new_presence.show || :online when :unavailable: :unavailable else nil end |
Ruby 1.9 не понимает case-when, где после условия идет двоеточие. Все что нужно, чтобы исправить этот баг и запустить xmpp4r-simple на Ruby 1.9.x это убрать :
и перенести действие за условием на следующую строку.
441 442 443 444 445 446 447 448 | presence = case new_presence.type when nil new_presence.show || :online when :unavailable :unavailable else nil end |
И теперь, по крайней мере у меня, xmpp4r-simple завелся как литой.
сэнкс за инфу …
Огромное спасибо! десяток джемов перепробовал, пока искал решение
[...] она еще проще чем предыдущая. Открываем тот самый [...]
Автор xmpp4r-simple исправил ошибку и выложил новый gem xmpp4r-simple-19 специально для 1.9 версии Ruby.
Спасибо за инфу
[...] А если кому-то серьезно надоел e-mail в Devise и он хочет сделать отправку в жабу, то прочитать вам пригодиться гем xmpp4r-simple, ошибки которого были замечены тут и тут. [...]
Если при установке на Ruby 2 вылетает ошибка с rcov, то надо сначала установить не через Gemfile гем bio-bigbio, после чего забандлить. Это решение я нашел тут: https://github.com/pjotrp/bigbio/issues/2