class Vx::Worker::Job

Attributes

message[R]
output[R]
output_counter[R]

Public Class Methods

new(perform_job_message) click to toggle source
# File lib/vx/worker/job.rb, line 12
def initialize(perform_job_message)
  @output_counter = 0
  @message        = perform_job_message
  @output         = Common::OutputBuffer.new(&method(:publish_job_log_message))
end

Public Instance Methods

add_command_to_output(cmd) click to toggle source
# File lib/vx/worker/job.rb, line 23
def add_command_to_output(cmd)
  add_to_output "$ #{cmd}\n"
end
add_to_output(str) click to toggle source
# File lib/vx/worker/job.rb, line 18
def add_to_output(str)
  output << str
  logger.debug str.strip if logger.level == 0
end
add_trace_to_output(log) click to toggle source
# File lib/vx/worker/job.rb, line 27
def add_trace_to_output(log)
  add_to_output log.split(/\n/).map{|i| " ===> #{i}\n" }.join
end
publish_job_log_message(str) click to toggle source
# File lib/vx/worker/job.rb, line 35
def publish_job_log_message(str)
  @output_counter += 1
  log = Message::JobLog.new(
    build_id: message.id,
    job_id:   message.job_id,
    tm:       output_counter,
    log:      str
  )
  JobLogsConsumer.publish log
  log
end
release() click to toggle source
# File lib/vx/worker/job.rb, line 31
def release
  output.close
end