Class: DiscourseRedis::EvalHelper

Inherits:
Object
  • Object
show all
Defined in:
lib/discourse_redis.rb

Instance Method Summary collapse

Constructor Details

#initialize(script) ⇒ EvalHelper

Returns a new instance of EvalHelper.



267
268
269
270
# File 'lib/discourse_redis.rb', line 267

def initialize(script)
  @script = script
  @sha1 = Digest::SHA1.hexdigest(script)
end

Instance Method Details

#eval(redis, *args, **kwargs) ⇒ Object



272
273
274
275
276
277
278
279
280
# File 'lib/discourse_redis.rb', line 272

def eval(redis, *args, **kwargs)
  redis.evalsha @sha1, *args, **kwargs
rescue ::Redis::CommandError => e
  if e.to_s =~ /\ANOSCRIPT/
    redis.eval @script, *args, **kwargs
  else
    raise
  end
end