Sha256: b224805de56d402022257c1120db6a99a991e895857e8f7bc91325e5a252f0dd
Contents?: true
Size: 1.12 KB
Versions: 3
Compression:
Stored size: 1.12 KB
Contents
require_relative "redic/client" class Redic attr :url attr :client def initialize(url = "redis://127.0.0.1:6379", timeout = 10_000_000) @url = url @client = Redic::Client.new(url, timeout) @buffer = Hash.new { |h, k| h[k] = [] } end def buffer @buffer[Thread.current.object_id] end def reset @buffer.delete(Thread.current.object_id) end def clear @buffer.clear end def configure(url, timeout = 10_000_000) if @url != url @url = url @client.configure(url, timeout) end end def call(*args) @client.connect do @client.write(args) @client.read end end def call!(*args) reply = call(*args) if RuntimeError === reply raise reply end return reply end def queue(*args) buffer << args end def commit @client.connect do buffer.each do |args| @client.write(args) end buffer.map do @client.read end end ensure reset end def timeout @client.timeout end def timeout=(timeout) @client.timeout = timeout end def quit @client.quit end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
redic-1.5.3 | lib/redic.rb |
redic-1.5.2 | lib/redic.rb |
redic-1.5.1 | lib/redic.rb |