Sha256: ebc7f5cb279c2098a8ce57bb12277ad4c9f5504ab178f469291ff6977374dd6f

Contents?: true

Size: 1.85 KB

Versions: 1

Compression:

Stored size: 1.85 KB

Contents

require 'version'

#Dir[File.join(File.dirname(__FILE__), 'mongo_grid', '*.rb')].each do |extension|
#  require extension
#end

module ::MongoGrid
  attr_accessor :db_name, :db_url
  extend self

  def configure
    yield self
  end  

  def grid
    client = Mongo::Client.new([db_url], :database => db_name)
    client.database.fs
  end

  def remove(gid)
    id = BSON::ObjectId.from_string(gid)
    grid.delete(id)
  end

  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

  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

  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 
end

require 'mongoid'
require 'action_base'
require 'plug'

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mongo_grid-0.3.1 lib/mongo_grid.rb