def method_missing(command, *args, &block)
handling = COMMANDS[command.to_s] ||
COMMANDS[ALIASES[command.to_s]]
if handling.nil?
return @redis.send(command, *args, &block)
end
(before, after) = handling
case before
when :first
args[0] = add_namespace(args[0]) if args[0]
when :all
args = add_namespace(args)
when :exclude_first
first = args.shift
args = add_namespace(args)
args.unshift(first) if first
when :exclude_last
last = args.pop
args = add_namespace(args)
args.push(last) if last
when :alternate
args.each_with_index { |a, i| args[i] = add_namespace(a) if i.even? }
when :sort
args[0] = add_namespace(args[0]) if args[0]
[:by, :get, :store].each do |key|
args[1][key] = add_namespace(args[1][key]) if args[1][key]
end if args[1].is_a?(Hash)
end
result = @redis.send(command, *args, &block)
result = rem_namespace(result) if after == :all
result
end