Sha256: 3a2998c67d35b93ede160a568601d125e6723821d9d23b0b53633d32a43d1cc2
Contents?: true
Size: 870 Bytes
Versions: 1
Compression:
Stored size: 870 Bytes
Contents
require 'digest/sha1' module Wolverine class InvalidScriptError < StandardError ; end class Script attr_reader :content, :digest def initialize file @file = file @content = load_lua file @digest = Digest::SHA1.hexdigest @content end def call redis, *args begin run_evalsha redis, *args rescue => e e.message =~ /NOSCRIPT/ ? run_eval(redis, *args) : raise end rescue => e if e.message =~ /ERR Error (compiling|running) script/ raise InvalidScriptError, "#{e.message} (in #{@file.inspect})" else raise end end private def run_evalsha redis, *args redis.evalsha digest, args.size, *args end def run_eval redis, *args redis.eval content, args.size, *args end def load_lua file File.read file end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
wolverine-0.1.2 | lib/wolverine/script.rb |