Module: Slides::Log
- Included in:
- Slides
- Defined in:
- lib/slides.rb
Instance Method Summary collapse
- #log(event, attrs = {}, &block) ⇒ Object
- #log_array(event, arr, &block) ⇒ Object
- #stream ⇒ Object
- #stream=(val) ⇒ Object
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 |
#stream ⇒ Object
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 |