diff options
Diffstat (limited to 'lib/mogilefs/put.rb')
-rw-r--r-- | lib/mogilefs/put.rb | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/mogilefs/put.rb b/lib/mogilefs/put.rb new file mode 100644 index 0000000..3f13df2 --- /dev/null +++ b/lib/mogilefs/put.rb @@ -0,0 +1,29 @@ +# -*- encoding: binary -*- +module MogileFS::Put + + def self.[](largefile) + case largefile + when nil, false + MogileFS::HTTPFile + when :stream + Stream + when :content_range + ContentRange + when :tempfile + Tempfile + else + raise ArgumentError, "largefile: #{largefile.inspect} not understood" + end + end + + def self.const_missing(name) + case name + when :Stream, :ContentRange, :Tempfile + file = name.to_s.gsub(/([a-z])([A-Z])/, '\1_\2').downcase + require "mogilefs/put/#{file}" + const_get(name) + else + super(name) + end + end +end |