class Bricolage::StreamingLoad::LoadTaskLogger

Public Class Methods

new(s3ds) click to toggle source
# File lib/bricolage/streamingload/loadtasklogger.rb, line 9
def initialize(s3ds)
  @s3ds = s3ds
  @logger = @s3ds.logger
end

Public Instance Methods

content(task) click to toggle source
# File lib/bricolage/streamingload/loadtasklogger.rb, line 26
def content(task)
  buf = StringIO.new
  task.chunks.each do |chunk|
    buf.puts %Q("#{task.id}","#{chunk.id}","#{chunk.url}")
  end
  buf.string
end
key(task) click to toggle source
# File lib/bricolage/streamingload/loadtasklogger.rb, line 21
def key(task)
  now = Time.now
  "task/#{now.strftime('%Y/%m/%d')}/task-#{task.id}.csv"
end
log(task) click to toggle source
# File lib/bricolage/streamingload/loadtasklogger.rb, line 14
def log(task)
  csv = content(task)
  key = key(task)
  @logger.info "s3: put: #{@s3ds.url(key)}"
  @s3ds.object(key).put(body: csv)
end