Class: Fluentdly::Task

Inherits:
Object
  • Object
show all
Defined in:
lib/fluentdly/task.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(severity, parameters, block, config = Fluentdly.configuration) ⇒ Task

Returns a new instance of Task.



11
12
13
14
15
16
# 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

Instance Attribute Details

#blockObject (readonly)

Returns the value of attribute block.



9
10
11
# File 'lib/fluentdly/task.rb', line 9

def block
  @block
end

#loggerObject (readonly)

Returns the value of attribute logger.



9
10
11
# File 'lib/fluentdly/task.rb', line 9

def logger
  @logger
end

#parametersObject (readonly)

Returns the value of attribute parameters.



9
10
11
# File 'lib/fluentdly/task.rb', line 9

def parameters
  @parameters
end

#severityObject (readonly)

Returns the value of attribute severity.



9
10
11
# File 'lib/fluentdly/task.rb', line 9

def severity
  @severity
end

Class Method Details

.log(severity, parameters, &block) ⇒ Object



4
5
6
7
# File 'lib/fluentdly/task.rb', line 4

def self.log severity, parameters, &block
  task = self.new severity, parameters, block
  task.call
end

Instance Method Details

#callObject



18
19
20
21
22
23
24
25
26
27
28
# 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