Skip to content

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Q + node_redis
# Applies Q.nbind to all redis operations and returns a wrapped client
_ = require("underscore")._
Q = require "q"
nbindOps = (client) ->
functions = _.functions client
# All the ops are available as upper/lowercase functions, I exploit this
# to filter out the Redis operations from the other functions of the client
#
ops = functions.filter (f) -> f.toUpperCase() is f
lc = (op.toLowerCase() for op in ops)
ops = ops.concat(lc)
p = {}
for op in ops
p[op] = Q.nbind client[op], client
p["multi"] = p["MULTI"] = ->
m = client.multi.call client, arguments
m.exec = Q.nbind m.exec, m
m
p
nbind = (client) ->
client.q = nbindOps(client)
client
module.exports =
nbindOps: nbindOps
nbind: nbind
@topliceanu

Nice hack on figuring out which methods are redis commands :gem:

@goalsin

why not use nfcall ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.