मुझे लगता है कि आपका कोड काम कर सकता है यदि आपको एम-हिरेडिस का सही संस्करण मिल जाए तो वह बंदर पैच करने की कोशिश कर रहा है, यह ढीली निर्भरता के साथ एक समस्या है।
यहाँ एक पूरी तरह से काम करने वाला कोड है लेकिन एम-सिंक्रोनाइज़ की मास्टर शाखा पर आधारित है:
जेमफाइल:
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
और फिर इसे इसके साथ चलाएं:
$ bundle
$ ruby test.rb
मंकी पैचिंग रत्नों को पैच करने का एक स्वाभाविक रूप से त्रुटिपूर्ण तरीका है जब तक कि आप सुनिश्चित नहीं करते कि आपके द्वारा पैच किए गए रत्न का सटीक संस्करण उपयोग किया जाता है, जो कि कुछ ऐसा है जिसे एम-सिंक्रोनी को लागू करना चाहिए या कम से कम पता लगाना चाहिए।