Module: Slides::Log

Included in:
Slides
Defined in:
lib/slides.rb

Instance Method Summary collapse

Instance Method Details

#log(event, attrs = {}) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/slides.rb', line 5

def log(event, attrs = {})
  unless block_given?
    str = "#{event} #{unparse(attrs)}"
    mtx.synchronize { $stdout.puts str }
  else
    start = Time.now
    log(event, attrs.merge(at: :start))
    res = yield
    log(event, attrs.merge(at: :finish,
      elapsed: "#{((Time.now - start) * 1000).to_i}ms"))
    res
  end
end