My two cents:

Adding spec inside the original namespace is more readable, provide 
documentation just in place, and the user do not need to require a separate 
namespace to get spec of your API, I will prefer it.

For users stay in < clojure 1.9.0, I use this macro in my code:

(defmacro opt-require
  "Optional requires rqr-clause and if it succeed do the body"
  {:style/indent 1}
  [rqr-clause & body]
  (when
      (try
        (require rqr-clause)
        true
        (catch Exception _
          false))
    `(do ~@body)))


(opt-require [clojure.spec.alpha :as s]
 (s/def ::my-spec int?))





On Saturday, September 15, 2018 at 1:00:30 AM UTC+8, Howard M. Lewis Ship 
wrote:
>
> I'm thinking of releasing a tiny library (really, just one macro), and I 
> want to document/validate using spec.
>
> What's the accepted approach for bundling the macro with its spec:
>
> - Just add the spec right in the namespace with the macro 
> - Have a second optional namespace that provides the spec for the macro
> - Something I haven't thought of
>
> -- 
> Howard M. Lewis Ship
>
> Senior Mobile Developer at Walmart Labs
>
> Creator of Apache Tapestry
>
> (971) 678-5210
> http://howardlewisship.com
> @hlship
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to