Class: Vedeu::Timer

Inherits:
Object
  • Object
show all
Defined in:
lib/vedeu/support/timer.rb

Overview

Measure the duration. Used for debugging.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message = '') ⇒ Vedeu::Timer

Parameters:

  • message (String) (defaults to: '')


15
16
17
18
# File 'lib/vedeu/support/timer.rb', line 15

def initialize(message = '')
  @message = message
  @started = Time.now.to_f
end

Instance Attribute Details

#messageString (readonly, protected)

Returns:

  • (String)


40
41
42
# File 'lib/vedeu/support/timer.rb', line 40

def message
  @message
end

#startedTime (readonly, protected)

Returns:

  • (Time)


36
37
38
# File 'lib/vedeu/support/timer.rb', line 36

def started
  @started
end

Class Method Details

.for(message = '', &block) ⇒ void

This method returns an undefined value.

Parameters:

  • message (String) (defaults to: '')
  • block (Proc)


9
10
11
# File 'lib/vedeu/support/timer.rb', line 9

def self.for(message = '', &block)
  new(message).measure(&block)
end

Instance Method Details

#measure(&block) ⇒ void

This method returns an undefined value.

Parameters:

  • block (Proc)


22
23
24
25
26
27
28
29
30
# File 'lib/vedeu/support/timer.rb', line 22

def measure(&block)
  work = yield

  elapsed = ((Time.now.to_f - started) * 1000).to_i

  Vedeu.log(type: :debug, message: "#{message} took #{elapsed}ms.")

  work
end