Sha256: 8b4d4d0bbb5a80d3fb99ffd47019339f5f8ebe11766d11b72ad9d3e2941f14e4
Contents?: true
Size: 1.36 KB
Versions: 4
Compression:
Stored size: 1.36 KB
Contents
module GoodData::Bricks class BaseDownloader def initialize(params) @params = params end def pre_process(meta) meta end def download puts "would download data" [] end def backup(meta) puts "would send a backup list of files to backup" files = meta.reduce([]) do |memo, item| memo << item[:filename] end bucket_name = @params[:s3_backup_bucket_name] s3 = AWS::S3.new( :access_key_id => @params[:aws_access_key_id], :secret_access_key => @params[:aws_secret_access_key]) bucket = s3.buckets[bucket_name] bucket = s3.buckets.create(bucket_name) unless bucket.exists? files.each do |file| obj = bucket.objects[file] obj.write(Pathname.new(file)) end meta end def post_process(meta) puts "Maybe some postprocessing" meta end def run downloaded_data = download downloaded_data = pre_process(downloaded_data) backup(downloaded_data) downloaded_data = post_process(downloaded_data) downloaded_data.reduce([]) do |memo, item| item.has_key?(:state) ? memo.concat(item[:state]) : memo end.each do |item| key = item[:key] val = item[:value] puts "Saving metadata #{}" GoodData::ProjectMetadata[key] = val end end end end
Version data entries
4 entries across 4 versions & 1 rubygems