From ced9b501539e1dcd5b5618a2e1d266e05f4cf23b Mon Sep 17 00:00:00 2001 From: "Michael S. Klishin" Date: Sat, 31 Dec 2011 14:57:17 +0400 Subject: [PATCH] Make monger.gridfs.IOFactory implementation for String to work the same way as clojure.java.io/IOFactory one does It treats string arguments as local filesystem paths --- src/monger/gridfs.clj | 5 +++-- test/monger/test/gridfs.clj | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/monger/gridfs.clj b/src/monger/gridfs.clj index 991ae44..bfb1d73 100644 --- a/src/monger/gridfs.clj +++ b/src/monger/gridfs.clj @@ -4,7 +4,8 @@ [clojure.java.io :as io]) (:use [monger.conversion]) (:import [com.mongodb DBObject] - [com.mongodb.gridfs GridFS GridFSInputFile])) + [com.mongodb.gridfs GridFS GridFSInputFile] + [java.io InputStream])) ;; ;; Implementation @@ -55,7 +56,7 @@ (extend-protocol GridFSInputFileFactory String (make-input-file [^String input] - (.createFile ^GridFS monger.core/*mongodb-gridfs* (.getBytes input)))) + (.createFile ^GridFS monger.core/*mongodb-gridfs* ^InputStream (io/make-input-stream input { :encoding "UTF-8" })))) diff --git a/test/monger/test/gridfs.clj b/test/monger/test/gridfs.clj index cda1f0a..668ab33 100644 --- a/test/monger/test/gridfs.clj +++ b/test/monger/test/gridfs.clj @@ -24,8 +24,8 @@ -(deftest test-storing-strings-to-gridfs - (let [input "A string"] +(deftest test-storing-files-to-gridfs-using-relative-fs-paths + (let [input "./test/resources/mongo/js/mapfun1.js"] (is (= 0 (count (gridfs/all-files)))) (gridfs/store (gridfs/make-input-file input) (.setFilename "monger.test.gridfs.file1") @@ -37,6 +37,6 @@ (let [input (.getBytes "A string")] (is (= 0 (count (gridfs/all-files)))) (store (make-input-file input) - (.setFilename "monger.test.gridfs.file1") + (.setFilename "monger.test.gridfs.file2") (.setContentType "application/octet-stream")) (is (= 1 (count (gridfs/all-files))))))