clojure-liberator/liberator — pull request #185 by ordnungswidrig (2014-11-24 12:24:33+00:00)
Title: Wrap and merge functions when merging options

Experimental extension to enable the wrapping and merging of
functions defined as defaults:

````clojure
(defresource foo
{:exists? (...) } ;; some default
{:exists? (wrap (fn [f] (fn [ctx] ...)))} ;; f is the default above
;; do sth with f and ctx and return something
{...} ;; even more defaults
:exists? true ...) ;; or kws args at the end
````
See examples/clj/sandbox.clj for a potential application.

### TODO

find out how to handler different orders of wrapping. I.e. make an earlier definition wrap a later definition, or how to force it the other way round:

Option a)

`(defresource foo {:a f1} {:a (wrap f2)})`. Here f2 wraps f1

Option b)

maybe `(defresource foo {:a f1} (:a (wrapped f2)})`, so that f1 wraps f2