Sha256: f520ee119c56facb3299aa42c6fd27df64f31cd56a19f913c459fee983226d9f
Contents?: true
Size: 1.57 KB
Versions: 2
Compression:
Stored size: 1.57 KB
Contents
# encoding: UTF-8 require 'pathname' module GoodData module 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 |a, e| a << e[: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 # Run downloader def run downloaded_data = download downloaded_data = pre_process(downloaded_data) backup(downloaded_data) downloaded_data = post_process(downloaded_data) accumulated_state = downloaded_data.reduce([]) do |memo, item| item.key?(:state) ? memo.concat(item[:state]) : memo end accumulated_state.each do |item| key = item[:key] val = item[:value] puts "Saving metadata #{key} => #{val}" GoodData::ProjectMetadata[key] = val end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
gooddata-0.6.3 | lib/gooddata/bricks/base_downloader.rb |
gooddata-0.6.2 | lib/gooddata/bricks/base_downloader.rb |