Class: Qless::LuaScript

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

Constant Summary collapse

LUA_SCRIPT_DIR =
File.expand_path("../qless-core/", __FILE__)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, redis) ⇒ LuaScript

Returns a new instance of LuaScript.



7
8
9
10
11
# File 'lib/qless/lua_script.rb', line 7

def initialize(name, redis)
  @name  = name
  @redis = redis
  @sha   = Digest::SHA1.hexdigest(script_contents)
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



13
14
15
# File 'lib/qless/lua_script.rb', line 13

def name
  @name
end

#redisObject (readonly)

Returns the value of attribute redis.



13
14
15
# File 'lib/qless/lua_script.rb', line 13

def redis
  @redis
end

#shaObject (readonly)

Returns the value of attribute sha.



13
14
15
# File 'lib/qless/lua_script.rb', line 13

def sha
  @sha
end

Instance Method Details

#call(keys, argv) ⇒ Object



19
20
21
22
23
24
# File 'lib/qless/lua_script.rb', line 19

def call(keys, argv)
  _call(keys, argv)
rescue
  reload
  _call(keys, argv)
end

#reloadObject



15
16
17
# File 'lib/qless/lua_script.rb', line 15

def reload()
  @sha = @redis.script(:load, script_contents)
end