aboutsummaryrefslogtreecommitdiff
path: root/src/clojure/contrib/with_ns.clj
diff options
context:
space:
mode:
authorStuart Sierra <mail@stuartsierra.com>2009-03-29 02:54:36 +0000
committerStuart Sierra <mail@stuartsierra.com>2009-03-29 02:54:36 +0000
commit54827c622ba1567e5e5fb97e520bf6b2e1e69ce4 (patch)
tree491aeb767e56b8c0f50fa727a1765a4d35d84dd9 /src/clojure/contrib/with_ns.clj
parent29e62a7570d9144e013743a2fa0deaa7b7dd1fed (diff)
with_ns.clj: added file, temporary namespace macro
Diffstat (limited to 'src/clojure/contrib/with_ns.clj')
-rw-r--r--src/clojure/contrib/with_ns.clj22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/clojure/contrib/with_ns.clj b/src/clojure/contrib/with_ns.clj
new file mode 100644
index 00000000..4b770cd5
--- /dev/null
+++ b/src/clojure/contrib/with_ns.clj
@@ -0,0 +1,22 @@
+;;; with_ns.clj -- temporary namespace macro
+
+;; by Stuart Sierra, http://stuartsierra.com/
+;; March 28, 2009
+
+;; Copyright (c) Stuart Sierra, 2009. 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 clojure.contrib.with-ns)
+
+(defmacro with-ns
+ "Evaluates body in another namespace. ns is either a namespace
+ object or a symbol. This makes it possible to define functions in
+ namespaces other than the current one."
+ [ns & body]
+ `(binding [*ns* (the-ns ~ns)] (eval '(do ~@body))))