Class: Promiscuous::Redis::Script

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

Instance Method Summary collapse

Constructor Details

#initialize(script) ⇒ Script

Returns a new instance of Script.



82
83
84
85
# File 'lib/promiscuous/redis.rb', line 82

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

Instance Method Details

#eval(redis, options = {}) ⇒ Object



87
88
89
90
91
92
93
94
95
# File 'lib/promiscuous/redis.rb', line 87

def eval(redis, options={})
  redis.evalsha(@sha, options)
rescue ::Redis::CommandError => e
  if e.message =~ /^NOSCRIPT/
    redis.script(:load, @script)
    retry
  end
  raise e
end

#to_sObject



97
98
99
# File 'lib/promiscuous/redis.rb', line 97

def to_s
  @script
end