Commit 03560dc1 by Mike Burns

Merge branch 'fog_patches' of https://github.com/kickstarter/paperclip

parents db11fca8 be08b80e
......@@ -45,6 +45,7 @@ module Paperclip
@fog_credentials = @options[:fog_credentials]
@fog_host = @options[:fog_host]
@fog_public = @options[:fog_public]
@fog_file = @options[:fog_file] || {}
@url = ':fog_public_url'
Paperclip.interpolates(:fog_public_url) do |attachment, style|
......@@ -64,11 +65,19 @@ module Paperclip
def flush_writes
for style, file in @queued_for_write do
log("saving #{path(style)}")
directory.files.create(
retried = false
begin
directory.files.create(@fog_file.merge(
:body => file,
:key => path(style),
:public => @fog_public
)
))
rescue Excon::Errors::NotFound
raise if retried
retried = true
directory.save
retry
end
end
@queued_for_write = {}
end
......@@ -115,12 +124,7 @@ module Paperclip
end
def directory
@directory ||= begin
connection.directories.get(@fog_directory) || connection.directories.create(
:key => @fog_directory,
:public => @fog_public
)
end
@directory ||= connection.directories.new(:key => @fog_directory)
end
end
......
......@@ -16,15 +16,21 @@ class FogTest < Test::Unit::TestCase
}
@connection = Fog::Storage.new(@credentials)
@connection.directories.create(
:key => @fog_directory
)
rebuild_model(
@options = {
:fog_directory => @fog_directory,
:fog_credentials => @credentials,
:fog_host => nil,
:fog_public => true,
:fog_file => {:cache_control => 1234},
:path => ":attachment/:basename.:extension",
:storage => :fog
)
}
rebuild_model(@options)
end
should "be extended by the Fog module" do
......@@ -46,16 +52,17 @@ class FogTest < Test::Unit::TestCase
end
context "without a bucket" do
should "succeed" do
setup do
@connection.directories.get(@fog_directory).destroy
end
should "create the bucket" do
assert @dummy.save
assert @connection.directories.get(@fog_directory)
end
end
context "with a bucket" do
setup do
@connection.directories.create(:key => @fog_directory)
end
should "succeed" do
assert @dummy.save
end
......@@ -63,14 +70,7 @@ class FogTest < Test::Unit::TestCase
context "without a fog_host" do
setup do
rebuild_model(
:fog_directory => @fog_directory,
:fog_credentials => @credentials,
:fog_host => nil,
:fog_public => true,
:path => ":attachment/:basename.:extension",
:storage => :fog
)
rebuild_model(@options.merge(:fog_host => nil))
@dummy = Dummy.new
@dummy.avatar = StringIO.new('.')
@dummy.save
......@@ -83,14 +83,7 @@ class FogTest < Test::Unit::TestCase
context "with a fog_host" do
setup do
rebuild_model(
:fog_directory => @fog_directory,
:fog_credentials => @credentials,
:fog_host => 'http://example.com',
:fog_public => true,
:path => ":attachment/:basename.:extension",
:storage => :fog
)
rebuild_model(@options.merge(:fog_host => 'http://example.com'))
@dummy = Dummy.new
@dummy.avatar = StringIO.new('.')
@dummy.save
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment