class AppFlight::Plugins::S3::Client

Public Class Methods

new(access_key_id, secret_access_key, region) click to toggle source
# File lib/appflight/plugins/s3.rb, line 10
def initialize(access_key_id, secret_access_key, region)
  @s3 = AWS::S3.new(:access_key_id => access_key_id,
                    :secret_access_key => secret_access_key,
                    :region => region)
  @h = HighLine.new
end

Public Instance Methods

prepare_buckets(options) click to toggle source
# File lib/appflight/plugins/s3.rb, line 17
def prepare_buckets(options)
  @s3.buckets.create(options[:bucket]) if options[:create]
  @bucket = @s3.buckets[options[:bucket]]
end
upload(key, fd) click to toggle source
# File lib/appflight/plugins/s3.rb, line 46
def upload(key, fd)
  begin
    @bucket.objects.create(key, fd, :acl => 'public_read')
    puts "\t#{@h.color('upload', :green)}\t#{key}"
  rescue => exception
    say_error "Error while uploading to S3: #{exception}"
  end
end
upload_files(files = [], options) click to toggle source
# File lib/appflight/plugins/s3.rb, line 22
def upload_files(files = [], options)
  prepare_buckets(options)
  puts "\t#{@h.color('upload', :green)}\tto S3"
  @page = AppFlight::Web::Page.new
  Dir.glob("#{options[:destination]}/*") { |file|
    if file.match('.erb$') then
      upload(File.basename(file).gsub(".erb",""), 
             StringIO.new(@page.render(file)))
    else
      upload(File.basename(file), File.open(file))
    end
  }
end
upload_ipa(options) click to toggle source
# File lib/appflight/plugins/s3.rb, line 36
def upload_ipa(options)
  @s3.buckets.create(options[:bucket]) if options[:create]
  @bucket = @s3.buckets[options[:bucket]]
  @ipa_name = ENV['ipa_name'] 
  @ipa_name ||= ask "IPA File Name:"
  File.open("./#{@ipa_name}") { |fd|
    upload(@ipa_name, fd)
  }
end