Class: Bricolage::S3Task::Put
- Inherits:
-
Action
- Object
- Action
- Bricolage::S3Task::Put
- Defined in:
- lib/bricolage/s3datasource.rb
Instance Method Summary collapse
- #check_arguments ⇒ Object
- #command_line(src, dest) ⇒ Object
- #each_src_dest ⇒ Object
-
#initialize(src, dest) ⇒ Put
constructor
A new instance of Put.
- #run ⇒ Object
- #single_source? ⇒ Boolean
- #source ⇒ Object
- #source_files ⇒ Object
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_arguments ⇒ Object
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_dest ⇒ Object
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 |
#run ⇒ Object
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
125 126 127 |
# File 'lib/bricolage/s3datasource.rb', line 125 def single_source? source_files.size == 1 and source_files.first == @src end |
#source ⇒ Object
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_files ⇒ Object
121 122 123 |
# File 'lib/bricolage/s3datasource.rb', line 121 def source_files @source_files ||= Dir.glob(@src) end |