class Mnemosyne::Span

Attributes

finish[R]
meta[R]
name[R]
start[R]
type[R]
uuid[R]

Public Class Methods

new(name, start: false, finish: false, meta: {}) click to toggle source
# File lib/mnemosyne/span.rb, line 7
def initialize(name, start: false, finish: false, meta: {})
  @type = nil
  @name = name
  @meta = meta
  @uuid = ::SecureRandom.uuid

  @start  = start
  @finish = finish
end

Public Instance Methods

finish!(oneshot: false) click to toggle source
# File lib/mnemosyne/span.rb, line 25
def finish!(oneshot: false)
  raise 'Already finished' if @finish

  @finish = ::Mnemosyne::Clock.tick

  if oneshot
    @start ||= @finish
    @type = :oneshot
  end

  self
end
serialize() click to toggle source
# File lib/mnemosyne/span.rb, line 38
def serialize
  {
    uuid: uuid,
    name: name,
    type: type,
    start: start,
    stop: finish,
    meta: meta
  }
end
start!() click to toggle source
# File lib/mnemosyne/span.rb, line 17
def start!
  raise 'Already started' if @start

  @start = ::Mnemosyne::Clock.tick

  self
end