aboutsummaryrefslogtreecommitdiff
path: root/src/clojure/contrib/sql/internal.clj
diff options
context:
space:
mode:
Diffstat (limited to 'src/clojure/contrib/sql/internal.clj')
-rw-r--r--src/clojure/contrib/sql/internal.clj43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/clojure/contrib/sql/internal.clj b/src/clojure/contrib/sql/internal.clj
new file mode 100644
index 00000000..6221d1e2
--- /dev/null
+++ b/src/clojure/contrib/sql/internal.clj
@@ -0,0 +1,43 @@
+;; Copyright (c) Stephen C. Gilardi. All rights reserved. The use and
+;; distribution terms for this software are covered by the Common Public
+;; License 1.0 (http://opensource.org/licenses/cpl.php) which can be found
+;; in the file CPL.TXT 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.
+;;
+;; internal definitions for clojure.contrib.sql
+;;
+;; scgilardi (gmail)
+;; Created 3 October 2008
+
+(ns clojure.contrib.sql.internal)
+
+(def *db* {:connection nil :level 0})
+
+(defn connection
+ "Returns the current database connection or throws an exception."
+ []
+ (or (:connection *db*)
+ (throw (Exception. "no current database connection"))))
+
+(defn the-str
+ "Returns the name or string representation of x"
+ [x]
+ (if (instance? clojure.lang.Named x)
+ (name x)
+ (str x)))
+
+(defn properties
+ "Converts a map from keywords or symbols to values into a
+ java.util.Properties object that maps the same keys to the values with
+ all represented as strings."
+ [m]
+ (let [p (java.util.Properties.)]
+ (when m
+ (loop [[key & keys] (keys m)
+ [val & vals] (vals m)]
+ (.setProperty p (the-str key) (the-str val))
+ (when keys
+ (recur keys vals))))
+ p))