module RedisLua

Constants

VERSION

Attributes

config_file_path[RW]
lua_script_path[RW]

Public Class Methods

call_script(name, *args) click to toggle source
# File lib/redis_lua.rb, line 43
def call_script(name, *args)
  sha1 = config[name]
  Redis.current.evalsha(sha1, *args)
end
config() click to toggle source
# File lib/redis_lua.rb, line 10
def config
  @config ||= load_config(config_file_path)
end
load_config(file_path) click to toggle source
# File lib/redis_lua.rb, line 14
def load_config(file_path)
  YAML.load(File.read(file_path))
end
load_script(name) click to toggle source
# File lib/redis_lua.rb, line 29
def load_script(name)
  script = read_script(name)
  sha1 = Digest::SHA1.hexdigest(script)
  if sha1 == config[name]
    Redis.current.script(:load, script)
  else
    raise "sha1 digest mismatch: #{key} #{sha1}"
  end
end
load_scripts() click to toggle source
# File lib/redis_lua.rb, line 23
def load_scripts
  config.each do |key, _|
    load_script(key)
  end
end
loaded_script?(name) click to toggle source
# File lib/redis_lua.rb, line 39
def loaded_script?(name)
  Redis.current.script(:exists, config[name])
end
read_script(name) click to toggle source
# File lib/redis_lua.rb, line 18
def read_script(name)
  file_path = Pathname.new(lua_script_path) + "#{name}.lua"
  File.read(file_path)
end