mloughran / em-hiredis

Eventmachine redis client
MIT License
221 stars 63 forks source link

Make em-hiredis compatible with ruby 2.7 #59

Open ndomenec opened 2 years ago

ndomenec commented 2 years ago

When trying to update a project to ruby 2.7 I ended up getting a few broken specs because of em-hiredis

Failure/Error:
   self.eval(lua, keys.size, *keys, *args)
     .callback(&df.method(:succeed)).errback(&df.method(:fail))
 ArgumentError:
   wrong number of arguments (given 5, expected 1..4)
  # /.../.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/bundler/gems/em-hiredis-c9eac4b938a1/lib/em-hiredis/client.rb:39:in `eval'

It appears that Kernel#eval is overriding the gem's eval method for some reason, so directly using method_missing with eval as an argument makes it work with ruby 2.7

All specs are working fine with the new fix