Module: S3::Helpers::Versioning

Included in:
S3::Helpers
Defined in:
lib/sinatra-s3/helpers/versioning.rb

Instance Method Summary collapse

Instance Method Details

#manage_versioning(bucket) ⇒ Object

Raises:

  • (NotImplemented)


13
14
15
16
17
18
19
20
21
22
23
# File 'lib/sinatra-s3/helpers/versioning.rb', line 13

def manage_versioning(bucket)
	raise NotImplemented unless defined?(Git)
	only_can_write_acp bucket

	env['rack.input'].rewind
	data = env['rack.input'].read
	xml_request = REXML::Document.new(data).root

	bucket.git_init() if !bucket.versioning_enabled? && xml_request.elements['Status'].text == 'Enabled'
	bucket.git_destroy() if bucket.versioning_enabled? && xml_request.elements['Status'].text == 'Suspended'
end

#versioning_response_for(bit) ⇒ Object



5
6
7
8
9
10
11
# File 'lib/sinatra-s3/helpers/versioning.rb', line 5

def versioning_response_for(bit)
	xml do |x|
	  x.VersioningConfiguration :xmlns => "http://s3.amazonaws.com/doc/2006-03-01/" do
	    x.Versioning bit.versioning_enabled? ? 'Enabled' : 'Suspended' if File.exists?(File.join(bit.fullpath, '.git'))
	  end
	end
end