Sha256: d77c7b0650d12d4546e8904d2dfba1717b52db73ff5c03aeb45083d179b132c5

Contents?: true

Size: 997 Bytes

Versions: 75

Compression:

Stored size: 997 Bytes

Contents

module EbDeployer
  class Package
    def initialize(file, bucket_name, s3_driver)
      @file, @bucket_name = file, bucket_name
      @s3 = s3_driver
    end

    def upload
      ensure_bucket(@bucket_name)
      upload_if_not_exists(@file, @bucket_name)
    end

    def source_bundle
      { :s3_bucket => @bucket_name, :s3_key => s3_path }
    end

    private

    def s3_path
      @_s3_path ||= Digest::MD5.file(@file).hexdigest + "-" + File.basename(@file)
    end

    def ensure_bucket(bucket_name)
      @s3.create_bucket(@bucket_name) unless @s3.bucket_exists?(@bucket_name)
    end

    def upload_if_not_exists(file, bucket_name)
      if @s3.object_length(@bucket_name, s3_path) != File.size(file)
        log("start uploading to s3 bucket #{@bucket_name}...")
        @s3.upload_file(@bucket_name, s3_path, file)
        log("uploading finished")
      end
    end

    def log(message)
      puts "[#{Time.now.utc}][package:#{File.basename(@file)}] #{message}"
    end
  end
end

Version data entries

75 entries across 75 versions & 3 rubygems

Version Path
man_eb_deployer-0.8.0 lib/eb_deployer/package.rb
eb_deployer_updated-0.8.1 lib/eb_deployer/package.rb
eb_deployer_updated-0.8.0 lib/eb_deployer/package.rb
eb_deployer-0.7.0 lib/eb_deployer/package.rb
eb_deployer-0.6.6 lib/eb_deployer/package.rb
eb_deployer-0.6.5 lib/eb_deployer/package.rb
eb_deployer-0.6.4 lib/eb_deployer/package.rb
eb_deployer-0.6.3 lib/eb_deployer/package.rb
eb_deployer-0.6.2 lib/eb_deployer/package.rb
eb_deployer-0.6.1 lib/eb_deployer/package.rb
eb_deployer-0.6.0 lib/eb_deployer/package.rb
eb_deployer-0.6.0.beta6 lib/eb_deployer/package.rb
eb_deployer-0.6.0.beta5 lib/eb_deployer/package.rb
eb_deployer-0.6.0.beta4 lib/eb_deployer/package.rb
eb_deployer-0.6.0.beta3 lib/eb_deployer/package.rb
eb_deployer-0.6.0.beta2 lib/eb_deployer/package.rb
eb_deployer-0.5.2 lib/eb_deployer/package.rb
eb_deployer-0.6.0.beta1 lib/eb_deployer/package.rb
eb_deployer-0.5.1.beta3 lib/eb_deployer/package.rb
eb_deployer-0.5.1.beta2 lib/eb_deployer/package.rb