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