class OwskiLog::Holder

Attributes

events[RW]
watchers[RW]

Public Class Methods

new() click to toggle source
# File lib/owskilog.rb, line 9
def initialize
  @events = Hash.new
  @watchers = Array.new
end

Public Instance Methods

finish_event(key, status, cause: nil) click to toggle source
# File lib/owskilog.rb, line 21
def finish_event(key, status, cause: nil)
  EventManager::finish_event(@events, key, status, cause: cause)
  WatcherManager::trigger_watchers(@watchers, triggers: [:after_finish, :all])
end
get_log_structure() click to toggle source
# File lib/owskilog.rb, line 40
def get_log_structure
  @result = []

  @events.each do |_, value|
    if value.parent != nil
      value.parent.sub_events << value
    else
      @result << value
    end
  end

  @result
end
register_event(key, description, parent_key: nil) click to toggle source
# File lib/owskilog.rb, line 14
def register_event(key, description, parent_key: nil)
  ev = Event.new(key, description)
  EventManager::register_event(@events, ev, parent_key: parent_key)
  WatcherManager::trigger_watchers(@watchers, triggers: [:after_register, :all])
  ev
end
register_watcher(watcher) click to toggle source
# File lib/owskilog.rb, line 26
def register_watcher(watcher)
  WatcherManager::register_watcher(@watchers, watcher)
end
wrap(key, description, parent_key: nil, &block) click to toggle source
# File lib/owskilog.rb, line 30
def wrap(key, description, parent_key: nil, &block)
  ev = register_event(key, description, parent_key: parent_key)
  block.call(key)
  unless ev.is_finished?
    finish_event(key, OwskiLog::Status::OK)
  end
rescue Exception => e
  finish_event(key, OwskiLog::Status::ERROR, cause: e.inspect)
end