Class: Opsup::CookbookUploader

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/opsup/cookbook_uploader.rb

Defined Under Namespace

Classes: S3ObjectConfig

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(s3:, config:, logger:) ⇒ CookbookUploader

Returns a new instance of CookbookUploader.



30
31
32
33
34
# File 'lib/opsup/cookbook_uploader.rb', line 30

def initialize(s3:, config:, logger:)
  @s3 = T.let(s3, Aws::S3::Client)
  @config = T.let(config, Opsup::Config)
  @logger = T.let(logger, ::Logger)
end

Class Method Details

.create(s3:, config:) ⇒ Object



19
20
21
# File 'lib/opsup/cookbook_uploader.rb', line 19

def self.create(s3:, config:)
  new(s3: s3, config: config, logger: Opsup::Logger.instance)
end

Instance Method Details

#build_and_upload(cookbook_url:, s3_object_config:) ⇒ Object



37
38
39
40
41
42
43
# File 'lib/opsup/cookbook_uploader.rb', line 37

def build_and_upload(cookbook_url:, s3_object_config:)
  Dir.mktmpdir do |work_dir|
    clone(work_dir, cookbook_url)
    package_path = build(work_dir)
    upload(package_path, s3_object_config)
  end
end