Module: MongoGrid
Constant Summary collapse
- VERSION =
"0.3.4"
Instance Attribute Summary collapse
-
#db_name ⇒ Object
Returns the value of attribute db_name.
-
#db_url ⇒ Object
Returns the value of attribute db_url.
Instance Method Summary collapse
- #configure {|_self| ... } ⇒ Object
- #fsize(length) ⇒ Object
- #grid ⇒ Object
- #remove(gid) ⇒ Object
- #savetogrid(fpath, fname = "poster.jpg", content_type = 'image/jpeg') ⇒ Object
- #uploadtogrid(upload, opts = {}) ⇒ Object
Instance Attribute Details
#db_name ⇒ Object
Returns the value of attribute db_name.
8 9 10 |
# File 'lib/mongo_grid.rb', line 8 def db_name @db_name end |
#db_url ⇒ Object
Returns the value of attribute db_url.
8 9 10 |
# File 'lib/mongo_grid.rb', line 8 def db_url @db_url end |
Instance Method Details
#configure {|_self| ... } ⇒ Object
11 12 13 |
# File 'lib/mongo_grid.rb', line 11 def configure yield self end |
#fsize(length) ⇒ Object
25 26 27 28 29 30 31 32 33 34 |
# File 'lib/mongo_grid.rb', line 25 def fsize(length) case length when 0..(1024**2) (length.to_f/1024.to_f).round(1).to_s+"K" when (1024**2)...(1024**3) (length.to_f/(1024**2).to_f).round(1).to_s+"M" when (1024**3)...(1024**4) (length.to_f/(1024**3).to_f).round(1).to_s+"G" end end |
#grid ⇒ Object
15 16 17 18 |
# File 'lib/mongo_grid.rb', line 15 def grid client = Mongo::Client.new([db_url], :database => db_name) client.database.fs end |
#remove(gid) ⇒ Object
20 21 22 23 |
# File 'lib/mongo_grid.rb', line 20 def remove(gid) id = BSON::ObjectId.from_string(gid) grid.delete(id) end |
#savetogrid(fpath, fname = "poster.jpg", content_type = 'image/jpeg') ⇒ Object
55 56 57 58 59 60 61 62 63 64 |
# File 'lib/mongo_grid.rb', line 55 def savetogrid(fpath,fname="poster.jpg",content_type='image/jpeg') data = File.open(fpath) length=File.size(fpath) gfile = ::Mongo::Grid::File.new(data,filename: fname, metadata: {content_type: content_type,length: length}) gid = grid.insert_one(gfile) file_size = fsize(length) hsh = {:grid_id=>gid.to_s,:filename=>fname, :content_type=>content_type,:file_size=>file_size} end |
#uploadtogrid(upload, opts = {}) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/mongo_grid.rb', line 36 def uploadtogrid(upload,opts={}) filename=upload.original_filename content_type=upload.content_type #if /jpg|jpeg|png/ =~ content_type # if opts[:width] # %x[resize -fixed -w #{opts[:width]} #{upload.tempfile.path}] # else # %x[resize -fixed #{upload.tempfile.path}] # end #end data = File.open(upload.tempfile.path) length=File.size(upload.tempfile.path) gfile = ::Mongo::Grid::File.new(data,filename: filename, metadata: {content_type: content_type,length: length}) gid = grid.insert_one(gfile) file_size = fsize(length) hsh = {:grid_id=>gid.to_s,:filename=>filename, :content_type=>content_type,:file_size=>file_size} end |