 (ns taoensso.carmine.commands
   "Define an appropriate function for EVERY Redis command. This is done by
   parsing the official Redis command reference (JSON) which includes up-to-date
-  doc-strings, argument specs, etc. This awesome approach was adapted from
+  docstrings, argument specs, etc. This awesome approach was adapted from
   labs-redis-clojure."
   {:author "Peter Taoussanis"}
   (:require [clojure.java.io   :as io]

        apply-params   (let [[p varp] (split-with #(not= '& %) request-params)]
                         (conj (vec p) (last varp)))]
    (if debug-mode?
      `(println ~fn-name ":" \" ~(args->params-doc-string args) \"
                "->" ~(str fn-params))
      `(defn ~(symbol fn-name) ~fn-doc-string ~fn-params
         (apply protocol/send-request! ~@apply-params)))))

(defn- get-command-reference

        has-more? (seq (filter #(or (:optional %) (:multiple %)) args))]
    (if has-more? (conj fixed-args '& 'args) fixed-args)))

(defn- args->params-docstring
  "Parses refspec argument map into Redis reference-doc-style explanatory
  string: \"BRPOP key [key ...] timeout\", etc."
  [args]
