aboutsummaryrefslogtreecommitdiff
path: root/src/clojure/contrib/sql/internal
diff options
context:
space:
mode:
Diffstat (limited to 'src/clojure/contrib/sql/internal')
-rw-r--r--src/clojure/contrib/sql/internal/internal.clj45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/clojure/contrib/sql/internal/internal.clj b/src/clojure/contrib/sql/internal/internal.clj
new file mode 100644
index 00000000..e46e9108
--- /dev/null
+++ b/src/clojure/contrib/sql/internal/internal.clj
@@ -0,0 +1,45 @@
+;; 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. Throws an exception if there is
+ no curent connection."
+ []
+ (if-let connection (:connection *db*)
+ connection
+ (throw (Exception. "no current database connection"))))
+
+(defn properties
+ "Converts a Clojure map from keywords or symbols to values into a
+ java.util.Properties object that maps the names of the keywords or
+ symbols to the String representation of the values"
+ [m]
+ (let [p (java.util.Properties.)]
+ (when m
+ (loop [[key & keys] (keys m)
+ [val & vals] (vals m)]
+ (.setProperty p (name key) (str val))
+ (when keys
+ (recur keys vals))))
+ p))
+
+(defn the-str
+ "Returns the String represented by the String, Keyword, or Symbol x"
+ [x]
+ (if (instance? String x)
+ x
+ (name x)))