class Fuey::Trace
Attributes
name[RW]
Public Class Methods
new(args)
click to toggle source
Calls superclass method
Fuey::ModelInitializer::new
# File lib/fuey_client/fuey/trace.rb, line 13 def initialize(args) super(args) end
Public Instance Methods
add_step(inspection)
click to toggle source
# File lib/fuey_client/fuey/trace.rb, line 21 def add_step(inspection) inspection.add_observer(self) inspection.add_observer(error_logger) steps.push inspection inspection end
receiver=(observer)
click to toggle source
# File lib/fuey_client/fuey/trace.rb, line 17 def receiver=(observer) add_observer observer end
run()
click to toggle source
# File lib/fuey_client/fuey/trace.rb, line 56 def run changed notify_observers :new, name, steps.map(&:status) ActiveSupport::Notifications.instrument("run.trace", {:trace => self.to_s}) do run, failed, @_current = 0, 0, nil steps.each do |step| run += 1 @_current = step step.execute if step.failed? failed += 1 break end end changed notify_observers :complete, self if failed == 0 %(#{name} passed. #{steps.size} steps, #{run} executed, #{failed} failed.) else %(#{name} failed on #{@_current.name}. #{steps.size} steps, #{run} executed, #{failed} failed.) end end end
status()
click to toggle source
# File lib/fuey_client/fuey/trace.rb, line 48 def status @_current ? @_current.state : "pending" end
status_message()
click to toggle source
# File lib/fuey_client/fuey/trace.rb, line 52 def status_message @_current.failed? ? @_current.status_message : "" end
steps()
click to toggle source
# File lib/fuey_client/fuey/trace.rb, line 28 def steps @_steps ||= Array.new end
to_s()
click to toggle source
# File lib/fuey_client/fuey/trace.rb, line 37 def to_s %(#{name}: [#{steps.join(', ')}]) end
update(status)
click to toggle source
Handle updates from inpsections via observation
# File lib/fuey_client/fuey/trace.rb, line 42 def update(status) changed notify_observers :update, name, [status] true end
Private Instance Methods
error_logger()
click to toggle source
# File lib/fuey_client/fuey/trace.rb, line 32 def error_logger @_error_logger ||= Fuey::Reporters::ErrorLogger.new end