class AwsAsCode::Task::Upload

Public Instance Methods

execute() click to toggle source
# File lib/aws_as_code/task/upload.rb, line 9
def execute
  input_files.each { |filename| upload_single_file filename }
end

Private Instance Methods

bucket() click to toggle source
# File lib/aws_as_code/task/upload.rb, line 21
def bucket
  s3 = Aws::S3::Resource.new
  s3.bucket config.bucket
end
input_files() click to toggle source
# File lib/aws_as_code/task/upload.rb, line 41
def input_files
  Dir.glob File.join(config.json_dir, "**/*.json")
end
s3_object_name(filename) click to toggle source
# File lib/aws_as_code/task/upload.rb, line 26
def s3_object_name(filename)
  template_path = Pathname.new filename
  config_path = Pathname.new config.json_dir

  key = template_path
        .relative_path_from(config_path)
        .to_s

  [
    config.stack,
    config.version,
    key
  ].join("/")
end
upload_single_file(filename) click to toggle source
# File lib/aws_as_code/task/upload.rb, line 15
def upload_single_file(filename)
  bucket
    .object(s3_object_name(filename))
    .upload_file filename
end