Jeg tror, din kode kan fungere, hvis du finder den korrekte version af em-hiredis, den forsøger at abe patch, det er et problem med løse afhængigheder.
Her er en fuldt fungerende kode, men baseret på hovedgrenen af em-synchrony:
Gemfil:
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
og kør det derefter med:
$ bundle
$ ruby test.rb
Abe-patching er en iboende mangelfuld måde at lappe ædelstene på, medmindre du sikrer dig, at den nøjagtige version af den ædelsten, du har lappet, bliver brugt, hvilket er noget em-synkrony bør håndhæve eller i det mindste opdage.