From 7f153071e40b1242ad0aa46c81ec0e927b9fc890 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Fri, 9 Dec 2011 16:23:48 -0800 Subject: [PATCH] rename "Put" namespace to "NewFile" This should make documentation easier --- lib/mogilefs.rb | 1 - lib/mogilefs/http_file.rb | 4 ++-- lib/mogilefs/mogilefs.rb | 8 +++++++- lib/mogilefs/{put.rb => new_file.rb} | 19 ++++++------------- .../{new_file_common.rb => new_file/common.rb} | 2 +- lib/mogilefs/{put => new_file}/content_range.rb | 9 ++++----- lib/mogilefs/{put => new_file}/stream.rb | 9 ++++----- lib/mogilefs/{put => new_file}/tempfile.rb | 2 +- .../{new_file_writer.rb => new_file/writer.rb} | 2 +- test/test_mogstored_rack.rb | 4 ++-- 10 files changed, 28 insertions(+), 32 deletions(-) rename lib/mogilefs/{put.rb => new_file.rb} (50%) rename lib/mogilefs/{new_file_common.rb => new_file/common.rb} (98%) rename lib/mogilefs/{put => new_file}/content_range.rb (92%) rename lib/mogilefs/{put => new_file}/stream.rb (93%) rename lib/mogilefs/{put => new_file}/tempfile.rb (90%) rename lib/mogilefs/{new_file_writer.rb => new_file/writer.rb} (94%) diff --git a/lib/mogilefs.rb b/lib/mogilefs.rb index ad0d6fb..ba6ca95 100644 --- a/lib/mogilefs.rb +++ b/lib/mogilefs.rb @@ -76,6 +76,5 @@ require 'mogilefs/http_file' require 'mogilefs/http_reader' require 'mogilefs/client' require 'mogilefs/bigfile' -require 'mogilefs/put' require 'mogilefs/mogilefs' require 'mogilefs/version' # generated by ./GIT-VERSION-GEN diff --git a/lib/mogilefs/http_file.rb b/lib/mogilefs/http_file.rb index b2d5620..8784f68 100644 --- a/lib/mogilefs/http_file.rb +++ b/lib/mogilefs/http_file.rb @@ -1,7 +1,7 @@ # -*- encoding: binary -*- # here are internal implementation details, do not use them in your code require 'stringio' -require 'mogilefs/new_file_common' +require 'mogilefs/new_file' ## # HTTPFile wraps up the new file operations for storing files onto an HTTP @@ -11,7 +11,7 @@ require 'mogilefs/new_file_common' # create a new file using MogileFS::MogileFS.new_file. # class MogileFS::HTTPFile < StringIO - include MogileFS::NewFileCommon + include MogileFS::NewFile::Common ## # The big_io name in case we have file > 256M diff --git a/lib/mogilefs/mogilefs.rb b/lib/mogilefs/mogilefs.rb index c93d1a3..b192605 100644 --- a/lib/mogilefs/mogilefs.rb +++ b/lib/mogilefs/mogilefs.rb @@ -129,6 +129,12 @@ class MogileFS::MogileFS < MogileFS::Client # Consider using store_file instead of this method for large files. # This requires a block passed to it and operates like File.open. # This atomically replaces existing data stored as +key+ when + # + # +args+ may contain the following options: + # * :content_length => Integer + # * :largefile => [ :stream, :content_range, :tempfile ] + # (see # MogileFS::NewFile) + # * :content_md5 => String, Proc, or :trailer def new_file(key, args = nil, bytes = nil) # :yields: file raise MogileFS::ReadOnlyError if readonly? opts = { :key => key, :multi_dest => 1 } @@ -161,7 +167,7 @@ class MogileFS::MogileFS < MogileFS::Client case (dests[0][1] rescue nil) when %r{\Ahttp://} - http_file = MogileFS::Put[opts[:largefile]].new(dests, opts) + http_file = MogileFS::NewFile[opts[:largefile]].new(dests, opts) if block_given? yield http_file return http_file.commit # calls create_close diff --git a/lib/mogilefs/put.rb b/lib/mogilefs/new_file.rb similarity index 50% rename from lib/mogilefs/put.rb rename to lib/mogilefs/new_file.rb index 3f13df2..e99a023 100644 --- a/lib/mogilefs/put.rb +++ b/lib/mogilefs/new_file.rb @@ -1,7 +1,9 @@ # -*- encoding: binary -*- -module MogileFS::Put +module MogileFS::NewFile - def self.[](largefile) + # avoiding autoload for new code since it's going away in Ruby... + def self.[](largefile) # :nodoc: + require "mogilefs/new_file/#{largefile}" if Symbol === largefile case largefile when nil, false MogileFS::HTTPFile @@ -15,15 +17,6 @@ module MogileFS::Put 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 + +require 'mogilefs/new_file/common' diff --git a/lib/mogilefs/new_file_common.rb b/lib/mogilefs/new_file/common.rb similarity index 98% rename from lib/mogilefs/new_file_common.rb rename to lib/mogilefs/new_file/common.rb index 9db6aec..38d0fd3 100644 --- a/lib/mogilefs/new_file_common.rb +++ b/lib/mogilefs/new_file/common.rb @@ -5,7 +5,7 @@ require 'uri' require 'digest/md5' require 'mogilefs/chunker' -module MogileFS::NewFileCommon +module MogileFS::NewFile::Common # :stopdoc: class RetryableError < MogileFS::Error; end class EmptyResponseError < RetryableError; end diff --git a/lib/mogilefs/put/content_range.rb b/lib/mogilefs/new_file/content_range.rb similarity index 92% rename from lib/mogilefs/put/content_range.rb rename to lib/mogilefs/new_file/content_range.rb index e44a8e2..5893980 100644 --- a/lib/mogilefs/put/content_range.rb +++ b/lib/mogilefs/new_file/content_range.rb @@ -7,13 +7,12 @@ rescue LoadError 'net-http-persistent required for :largefile => :content_range', [] end -require 'mogilefs/new_file_common' -require 'mogilefs/new_file_writer' +require 'mogilefs/new_file/writer' # an IO-like object -class MogileFS::Put::ContentRange - include MogileFS::NewFileWriter - include MogileFS::NewFileCommon +class MogileFS::NewFile::ContentRange + include MogileFS::NewFile::Writer + include MogileFS::NewFile::Common NHP = Net::HTTP::Persistent.new('mogilefs') attr_reader :md5 diff --git a/lib/mogilefs/put/stream.rb b/lib/mogilefs/new_file/stream.rb similarity index 93% rename from lib/mogilefs/put/stream.rb rename to lib/mogilefs/new_file/stream.rb index 590a24f..b2253f0 100644 --- a/lib/mogilefs/put/stream.rb +++ b/lib/mogilefs/new_file/stream.rb @@ -1,15 +1,14 @@ # -*- encoding: binary -*- # here are internal implementation details, do not use them in your code -require 'mogilefs/new_file_common' -require 'mogilefs/new_file_writer' +require 'mogilefs/new_file/writer' -class MogileFS::Put::Stream +class MogileFS::NewFile::Stream attr_reader :to_io attr_reader :md5 - include MogileFS::NewFileWriter - include MogileFS::NewFileCommon + include MogileFS::NewFile::Writer + include MogileFS::NewFile::Common def initialize(dests, opts) @opts = opts diff --git a/lib/mogilefs/put/tempfile.rb b/lib/mogilefs/new_file/tempfile.rb similarity index 90% rename from lib/mogilefs/put/tempfile.rb rename to lib/mogilefs/new_file/tempfile.rb index 8082f95..ecec02e 100644 --- a/lib/mogilefs/put/tempfile.rb +++ b/lib/mogilefs/new_file/tempfile.rb @@ -3,7 +3,7 @@ require 'tempfile' require 'mogilefs/http_file' -class MogileFS::Put::Tempfile < Tempfile +class MogileFS::NewFile::Tempfile < Tempfile def initialize(*args) @mogilefs_httpfile_args = args super("mogilefs-client") diff --git a/lib/mogilefs/new_file_writer.rb b/lib/mogilefs/new_file/writer.rb similarity index 94% rename from lib/mogilefs/new_file_writer.rb rename to lib/mogilefs/new_file/writer.rb index 9b90df4..994545b 100644 --- a/lib/mogilefs/new_file_writer.rb +++ b/lib/mogilefs/new_file/writer.rb @@ -1,7 +1,7 @@ # -*- encoding: binary -*- # here are internal implementation details, do not use them in your code # -module MogileFS::NewFileWriter +module MogileFS::NewFile::Writer def puts(*args) args.each do |obj| write(obj) diff --git a/test/test_mogstored_rack.rb b/test/test_mogstored_rack.rb index ea45e46..de27c53 100644 --- a/test/test_mogstored_rack.rb +++ b/test/test_mogstored_rack.rb @@ -38,14 +38,14 @@ class TestMogstoredRack < Test::Unit::TestCase add_host_device_domain client = MogileFS::MogileFS.new :hosts => @hosts, :domain => @domain client.new_file("chunky", :largefile => :stream) do |io| - assert_instance_of MogileFS::Put::Stream, io + assert_instance_of MogileFS::NewFile::Stream, io assert_equal(5, io.write("HELLO")) assert_nil io.md5 end assert_equal "HELLO", client.get_file_data("chunky") io = client.new_file("puts", :largefile => :stream) - assert_instance_of MogileFS::Put::Stream, io + assert_instance_of MogileFS::NewFile::Stream, io assert_equal io, IO.select(nil, [io])[1][0], "IO.select-able" assert_nil(io.puts("PUTS!")) -- 2.11.4.GIT