factor out deps. formatting code.
This commit is contained in:
parent
bf57261f19
commit
b024d8d707
@ -1,16 +1,61 @@
|
|||||||
require "mongoid"
|
|
||||||
require "mime/types"
|
|
||||||
require "digest/md5"
|
|
||||||
require "cgi"
|
|
||||||
|
|
||||||
class GridFS
|
|
||||||
##
|
##
|
||||||
#
|
#
|
||||||
|
class GridFS
|
||||||
|
const_set :Version, '1.1.0'
|
||||||
|
|
||||||
class << GridFS
|
class << GridFS
|
||||||
def version
|
def version
|
||||||
"1.0.0"
|
const_get :Version
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def dependencies
|
||||||
|
{
|
||||||
|
'mongoid' => [ 'mongoid' , ' >= 3.0.1' ] ,
|
||||||
|
'mime/types' => [ 'mime-types' , ' >= 1.19' ] ,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
def libdir(*args, &block)
|
||||||
|
@libdir ||= File.expand_path(__FILE__).sub(/\.rb$/,'')
|
||||||
|
args.empty? ? @libdir : File.join(@libdir, *args)
|
||||||
|
ensure
|
||||||
|
if block
|
||||||
|
begin
|
||||||
|
$LOAD_PATH.unshift(@libdir)
|
||||||
|
block.call()
|
||||||
|
ensure
|
||||||
|
$LOAD_PATH.shift()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def load(*libs)
|
||||||
|
libs = libs.join(' ').scan(/[^\s+]+/)
|
||||||
|
libdir{ libs.each{|lib| Kernel.load(lib) } }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
begin
|
||||||
|
require 'rubygems'
|
||||||
|
rescue LoadError
|
||||||
|
nil
|
||||||
|
end
|
||||||
|
|
||||||
|
if defined?(gem)
|
||||||
|
dependencies.each do |lib, dependency|
|
||||||
|
gem(*dependency)
|
||||||
|
require(lib)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
require "digest/md5"
|
||||||
|
require "cgi"
|
||||||
|
end
|
||||||
|
|
||||||
|
##
|
||||||
|
#
|
||||||
|
class GridFS
|
||||||
|
class << GridFS
|
||||||
attr_accessor :namespace
|
attr_accessor :namespace
|
||||||
attr_accessor :file_model
|
attr_accessor :file_model
|
||||||
attr_accessor :chunk_model
|
attr_accessor :chunk_model
|
||||||
@ -44,8 +89,8 @@ class GridFS
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
#
|
#
|
||||||
def GridFS.namespace_for(prefix)
|
def GridFS.namespace_for(prefix)
|
||||||
prefix = prefix.to_s.downcase
|
prefix = prefix.to_s.downcase
|
||||||
const = "::GridFS::#{ prefix.to_s.camelize }"
|
const = "::GridFS::#{ prefix.to_s.camelize }"
|
||||||
@ -53,8 +98,8 @@ class GridFS
|
|||||||
const_defined?(namespace) ? const_get(namespace) : build_namespace_for(namespace)
|
const_defined?(namespace) ? const_get(namespace) : build_namespace_for(namespace)
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
#
|
#
|
||||||
def GridFS.build_namespace_for(prefix)
|
def GridFS.build_namespace_for(prefix)
|
||||||
prefix = prefix.to_s.downcase
|
prefix = prefix.to_s.downcase
|
||||||
const = prefix.camelize
|
const = prefix.camelize
|
||||||
@ -216,8 +261,8 @@ class GridFS
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
#
|
#
|
||||||
def GridFS.build_file_model_for(namespace)
|
def GridFS.build_file_model_for(namespace)
|
||||||
prefix = namespace.name.split(/::/).last.downcase
|
prefix = namespace.name.split(/::/).last.downcase
|
||||||
file_model_name = "#{ namespace.name }::File"
|
file_model_name = "#{ namespace.name }::File"
|
||||||
@ -319,8 +364,8 @@ class GridFS
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
#
|
#
|
||||||
def GridFS.build_chunk_model_for(namespace)
|
def GridFS.build_chunk_model_for(namespace)
|
||||||
prefix = namespace.name.split(/::/).last.downcase
|
prefix = namespace.name.split(/::/).last.downcase
|
||||||
file_model_name = "#{ namespace.name }::File"
|
file_model_name = "#{ namespace.name }::File"
|
||||||
@ -358,8 +403,8 @@ class GridFS
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
#
|
#
|
||||||
def GridFS.reading(arg, &block)
|
def GridFS.reading(arg, &block)
|
||||||
if arg.respond_to?(:read)
|
if arg.respond_to?(:read)
|
||||||
rewind(arg) do |io|
|
rewind(arg) do |io|
|
||||||
@ -412,8 +457,10 @@ class GridFS
|
|||||||
basename = ::File.basename(pathname.to_s)
|
basename = ::File.basename(pathname.to_s)
|
||||||
CGI.unescape(basename).gsub(%r/[^0-9a-zA-Z_@)(~.-]/, '_').gsub(%r/_+/,'_')
|
CGI.unescape(basename).gsub(%r/[^0-9a-zA-Z_@)(~.-]/, '_').gsub(%r/_+/,'_')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
GridFs = GridFS
|
##
|
||||||
|
#
|
||||||
|
GridFs = GridFS
|
||||||
|
|
||||||
GridFS.init!
|
GridFS.init!
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
Gem::Specification::new do |spec|
|
Gem::Specification::new do |spec|
|
||||||
spec.name = "mongoid-grid_fs"
|
spec.name = "mongoid-grid_fs"
|
||||||
spec.version = "1.0.0"
|
spec.version = "1.1.0"
|
||||||
spec.platform = Gem::Platform::RUBY
|
spec.platform = Gem::Platform::RUBY
|
||||||
spec.summary = "mongoid-grid_fs"
|
spec.summary = "mongoid-grid_fs"
|
||||||
spec.description = "a mongoid 3/moped compatible implementation of the grid_fs specification"
|
spec.description = "a mongoid 3/moped compatible implementation of the grid_fs specification"
|
||||||
@ -26,6 +26,10 @@ Gem::Specification::new do |spec|
|
|||||||
spec.test_files = nil
|
spec.test_files = nil
|
||||||
|
|
||||||
|
|
||||||
|
spec.add_dependency(*["mongoid", " >= 3.0.1"])
|
||||||
|
|
||||||
|
spec.add_dependency(*["mime-types", " >= 1.19"])
|
||||||
|
|
||||||
|
|
||||||
spec.extensions.push(*[])
|
spec.extensions.push(*[])
|
||||||
|
|
||||||
|
Binary file not shown.
@ -142,6 +142,8 @@ Testing GridFs do
|
|||||||
|
|
||||||
protected
|
protected
|
||||||
def object_id_re
|
def object_id_re
|
||||||
%r| \w{#{ BSON::ObjectId.new.to_s.size }} |iomx
|
object_id = defined?(Moped) ? Moped::BSON::ObjectId.new : BSON::ObjectId.new
|
||||||
|
|
||||||
|
%r| \w{#{ object_id.to_s.size }} |iomx
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user