;; Copyright (c) James Reeves. All rights reserved. ;; The use and distribution terms for this software are covered by the Eclipse ;; Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) which ;; can be found in the file epl-v10.html at the root of this distribution. By ;; using this software in any fashion, you are agreeing to be bound by the ;; terms of this license. You must not remove this notice, or any other, from ;; this software. (ns compojure.ns-utils) (defn immigrate "Create a public var in this namespace for each public var in the namespaces named by ns-names. The created vars have the same name, value, and metadata as the original except that their :ns metadata value is this namespace." [& ns-names] (doseq [ns ns-names] (require ns) (doseq [[sym var] (ns-publics ns)] (let [sym (with-meta sym (assoc (meta var) :ns *ns*))] (if (.isBound var) (intern *ns* sym (var-get var)) (intern *ns* sym))))))