Myślę, że twój kod może działać, jeśli znajdziesz poprawną wersję em-hiredis, którą próbuje załatać, to jest jeden problem z luźnymi zależnościami.
Oto w pełni działający kod, ale oparty na głównej gałęzi em-synchrony:
Plik klejnotów:
source :rubygems
gem 'em-synchrony', :git => "git://github.com/igrigorik/em-synchrony.git"
gem 'em-hiredis', '~> 0.1.0'
test.rb:
require 'rubygems'
require 'bundler/setup'
require 'em-synchrony'
require 'em-synchrony/em-hiredis'
EventMachine.synchrony do
redis = EM::Hiredis.connect
redis.set('foo', 'bar')
puts redis.get('foo')
EM.stop
end
a następnie uruchom go za pomocą:
$ bundle
$ ruby test.rb
Łatanie małp jest z natury wadliwym sposobem łatania klejnotów, chyba że upewnisz się, że używana jest dokładna wersja klejnotu, który załatałeś, co jest czymś, co synchronizacja em powinna wymusić lub przynajmniej wykryć.