class Stevenson::Deployer::S3
Attributes
deployment_bucket_name[R]
deployment_key[R]
Public Class Methods
new(options)
click to toggle source
Calls superclass method
Stevenson::Deployer::Base::new
# File lib/stevenson/deployers/s3.rb, line 10 def initialize(options) @deployment_bucket_name, @deployment_key, @deployment_access_key, @deployment_access_secret = options["s3"] super end
Public Instance Methods
deploy!(directory)
click to toggle source
# File lib/stevenson/deployers/s3.rb, line 15 def deploy!(directory) entries_for(directory).each do |file_path, file_name| s3_bucket.files.create( key: File.join(deployment_key, file_name), body: File.read(file_path), public: true, ) if File.file?(file_path) end end
entries_for(directory)
click to toggle source
# File lib/stevenson/deployers/s3.rb, line 25 def entries_for(directory) if File.file?(directory) [ [directory, File.basename(directory)] ] else Dir.glob("#{directory}/**/*").collect { |f| [f, f.partition(directory).last] } end end
Private Instance Methods
fog()
click to toggle source
# File lib/stevenson/deployers/s3.rb, line 37 def fog @_fog ||= Fog::Storage.new( provider: 'AWS', aws_access_key_id: @deployment_access_key || ENV["AWS_ACCESS_KEY_ID"], aws_secret_access_key: @deployment_access_secret || ENV["AWS_SECRET_ACCESS_KEY"], ) end
s3_bucket()
click to toggle source
# File lib/stevenson/deployers/s3.rb, line 45 def s3_bucket @_s3_bucket = fog.directories.new(key: deployment_bucket_name) end