Class: Bricolage::S3Task::Put

Inherits:
Action
  • Object
show all
Defined in:
lib/bricolage/s3datasource.rb

Instance Method Summary collapse

Constructor Details

#initialize(src, dest) ⇒ Put

Returns a new instance of Put.



116
117
118
119
# File 'lib/bricolage/s3datasource.rb', line 116

def initialize(src, dest)
  @src = src
  @dest = dest
end

Instance Method Details

#check_argumentsObject



140
141
# File 'lib/bricolage/s3datasource.rb', line 140

def check_arguments
end

#command_line(src, dest) ⇒ Object



136
137
138
# File 'lib/bricolage/s3datasource.rb', line 136

def command_line(src, dest)
  "aws s3 cp #{src} #{ds.url(dest)}"
end

#each_src_destObject



129
130
131
132
133
134
# File 'lib/bricolage/s3datasource.rb', line 129

def each_src_dest
  source_files.each do |src|
    dest = (@dest.to_s.end_with?('/') ? "#{@dest}/#{File.basename(src)}" : @dest)
    yield src, dest
  end
end

#runObject

Raises:



151
152
153
154
155
156
157
158
# File 'lib/bricolage/s3datasource.rb', line 151

def run
  raise JobFailure, "no such file: #{@src}" if source_files.empty?
  each_src_dest do |src, dest|
    ds.logger.info command_line(src, dest)
    ds.object(dest).upload_file(src)
  end
  nil
end

#single_source?Boolean

Returns:

  • (Boolean)


125
126
127
# File 'lib/bricolage/s3datasource.rb', line 125

def single_source?
  source_files.size == 1 and source_files.first == @src
end

#sourceObject



143
144
145
146
147
148
149
# File 'lib/bricolage/s3datasource.rb', line 143

def source
  buf = StringIO.new
  each_src_dest do |src, dest|
    buf.puts command_line(src, dest)
  end
  buf.string
end

#source_filesObject



121
122
123
# File 'lib/bricolage/s3datasource.rb', line 121

def source_files
  @source_files ||= Dir.glob(@src)
end