technomancy / robert-hooke

Hooke your Clojure functions!
Other
358 stars 27 forks source link

clear-hooks to remove all hooks from a function? #1

Closed hugoduncan closed 12 years ago

hugoduncan commented 12 years ago

When recompiling hook functions, I found it useful to be able to wipe out the hooks associated with a function. remove-hook doesn't help much after a compile, as the function's identity has changed. This is the code I used, which is maybe not too efficient, but prevented duplication of the code guarded by the empty? predicate in remove-hook.

(defn clear-hooks
  "Remove hook function f from target-var."
  [target-var]
  (map
   (partial hooke/remove-hook target-var)
   @(:robert.hooke/hook (meta @target-var))))

I, for one, would find this functionality useful if included in hooke.

technomancy commented 12 years ago

Totally reasonable. I'll get this into the next release.