class Trifle::Logger::Tracer::Hash
Attributes
artifacts[RW]
data[RW]
ignore[RW]
key[RW]
meta[RW]
reference[RW]
state[RW]
Public Class Methods
new(key:, meta: nil)
click to toggle source
# File lib/trifle/logger/tracer/hash.rb, line 9 def initialize(key:, meta: nil) @key = key @meta = meta @data = [] @tags = [] @artifacts = [] @state = :running @ignore = false @result_prefix = '=> ' trace("Trifle::Trace has been initialized for #{key}") @reference = liftoff.first end
Public Instance Methods
artifact(name, path)
click to toggle source
# File lib/trifle/logger/tracer/hash.rb, line 66 def artifact(name, path) @data << { at: now, message: name, state: :success, head: false, meta: false, media: true } @artifacts << path bump path end
bump()
click to toggle source
# File lib/trifle/logger/tracer/hash.rb, line 105 def bump return unless @bumped_at && @bumped_at <= now - Trifle::Logger.default.bump_every @bumped_at = now Trifle::Logger.default.on_bump(self) end
dump_message(message, head:, state:)
click to toggle source
# File lib/trifle/logger/tracer/hash.rb, line 42 def dump_message(message, head:, state:) @data << { at: now, message: message, state: state, head: head, meta: false, media: false } end
dump_result(result)
click to toggle source
# File lib/trifle/logger/tracer/hash.rb, line 49 def dump_result(result) @data << { at: now, message: "#{@result_prefix}#{result.inspect}", state: :success, head: false, meta: true, media: false } end
fail!()
click to toggle source
# File lib/trifle/logger/tracer/hash.rb, line 76 def fail! @state = :error end
ignore!()
click to toggle source
# File lib/trifle/logger/tracer/hash.rb, line 96 def ignore! @ignore = true end
keys()
click to toggle source
# File lib/trifle/logger/tracer/hash.rb, line 23 def keys parts = key.split('/') parts.count.times.map { |i| parts[0..i].join('/') } end
liftoff()
click to toggle source
# File lib/trifle/logger/tracer/hash.rb, line 100 def liftoff @bumped_at = now Trifle::Logger.default.on_liftoff(self) end
now()
click to toggle source
# File lib/trifle/logger/tracer/hash.rb, line 56 def now Time.now.to_i end
running?()
click to toggle source
# File lib/trifle/logger/tracer/hash.rb, line 92 def running? @state == :running end
success!()
click to toggle source
# File lib/trifle/logger/tracer/hash.rb, line 84 def success! @state = :success end
success?()
click to toggle source
# File lib/trifle/logger/tracer/hash.rb, line 88 def success? @state == :success end
tag(tag)
click to toggle source
# File lib/trifle/logger/tracer/hash.rb, line 60 def tag(tag) @tags << tag bump tag end
trace(message, state: :success, head: false) { || ... }
click to toggle source
# File lib/trifle/logger/tracer/hash.rb, line 28 def trace(message, state: :success, head: false) # rubocop:disable Metrics/MethodLength result = yield if block_given? rescue => e # rubocop:disable Style/RescueStandardError raise e ensure dump_message( message, head: head, state: block_given? && result.nil? || e ? :error : state ) dump_result(result) if block_given? bump result end
warn!()
click to toggle source
# File lib/trifle/logger/tracer/hash.rb, line 80 def warn! @state = :warning end
wrapup()
click to toggle source
# File lib/trifle/logger/tracer/hash.rb, line 112 def wrapup success! if running? Trifle::Logger.default.on_wrapup(self) end