module Stal

Constants

LUA
SHA

Public Class Methods

solve(c, expr) click to toggle source

Evaluate expression `expr` in the Redis client `c`.

# File lib/stal.rb, line 11
def self.solve(c, expr)
  begin
    c.call!("EVALSHA", SHA, 0, JSON.dump(expr))
  rescue RuntimeError
    if $!.message["NOSCRIPT"]
      c.call!("SCRIPT", "LOAD", File.read(LUA))
      c.call!("EVALSHA", SHA, 0, JSON.dump(expr))
    else
      raise $!
    end
  end
end