class Fluentdly::Task

Attributes

block[R]
logger[R]
parameters[R]
severity[R]

Public Class Methods

log(severity, parameters, &block) click to toggle source
# File lib/fluentdly/task.rb, line 4
def self.log severity, parameters, &block
  task = self.new severity, parameters, block
  task.call
end
new(severity, parameters, block, config = Fluentdly.configuration) click to toggle source
# File lib/fluentdly/task.rb, line 11
def initialize severity, parameters, block, config = Fluentdly.configuration
  @severity   = severity
  @parameters = parameters
  @logger     = config.task_logger
  @block      = block
end

Public Instance Methods

call() click to toggle source
# File lib/fluentdly/task.rb, line 18
def call
  began_at       = Time.now
  status, result = block.call
  finish_at      = Time.now

  time_diff = finish_at - began_at
  content = parameters.merge(:status => status, :time => time_diff, :message => format_message(status,time_diff))

  logger.log(severity, content)
  result
end

Private Instance Methods

format_message(status, time) click to toggle source
# File lib/fluentdly/task.rb, line 32
def format_message status, time
  formatted_parameters = parameters.map{ |k,v| "#{k}: #{v}"}.join(", ")

  "Task with params #{formatted_parameters}, finished with #{status} in #{time}"
end