Module: Slides::Log

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

Instance Method Summary collapse

Instance Method Details

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



6
7
8
# File 'lib/slides.rb', line 6

def log(event, attrs={}, &block)
  log_array(event, attrs.map { |k, v| [k, v] }, &block)
end

#log_array(event, arr, &block) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/slides.rb', line 10

def log_array(event, arr, &block)
  unless block
    str = "#{event} #{unparse(arr)}"
    mtx.synchronize { stream.puts str }
  else
    arr = arr.dup
    start = Time.now
    arr << [:at, :start]
    log(event, arr)
    res = yield
    arr.pop
    arr << [:at, :finish] << [:elapsed, (Time.now - start).to_f]
    log(event, arr)
    res
  end
end

#streamObject



27
28
29
# File 'lib/slides.rb', line 27

def stream
  @stream || $stdout
end

#stream=(val) ⇒ Object



31
32
33
# File 'lib/slides.rb', line 31

def stream=(val)
  @stream = val
end