# File lib/ohm.rb, line 1394
    def script(file, *args)
      begin
        cache = LUA_CACHE[redis.url]

        if cache.key?(file)
          sha = cache[file]
        else
          src = File.read(file)
          sha = redis.call("SCRIPT", "LOAD", src)

          cache[file] = sha
        end

        redis.call!("EVALSHA", sha, *args)

      rescue RuntimeError

        case $!.message
        when ErrorPatterns::NOSCRIPT
          LUA_CACHE[redis.url].clear
          retry
        when ErrorPatterns::DUPLICATE
          raise UniqueIndexViolation, $1
        else
          raise $!
        end
      end
    end