Class: LanguageCards::Timer

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

Instance Method Summary collapse

Constructor Details

#initializeTimer

Returns a new instance of Timer.



4
5
6
7
# File 'lib/language_cards/timer.rb', line 4

def initialize
  @stamps = []
  @mark = nil
end

Instance Method Details

#averageObject



25
26
27
# File 'lib/language_cards/timer.rb', line 25

def average
  total.fdiv(times.size)
end

#hObject

human



21
22
23
# File 'lib/language_cards/timer.rb', line 21

def h # human
  "%02d:%02d:%02d" % [total/3600%24, total/60%60, total%60]
end

#haObject

human average



29
30
31
# File 'lib/language_cards/timer.rb', line 29

def ha # human average
  "%0.2f #{I18n.t('Timer.AverageSeconds')}" % average rescue ""
end

#lastObject



37
38
39
# File 'lib/language_cards/timer.rb', line 37

def last
  @stamps.last
end

#markObject



9
10
11
12
13
14
15
# File 'lib/language_cards/timer.rb', line 9

def mark
  if @mark
    @stamps << -(@mark - (@mark = Time.now))
  else
    @mark = Time.now
  end
end

#time?Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/language_cards/timer.rb', line 17

def time?
  !times.empty?
end

#timesObject



33
34
35
# File 'lib/language_cards/timer.rb', line 33

def times
  @stamps
end

#totalObject



41
42
43
# File 'lib/language_cards/timer.rb', line 41

def total
  @stamps.inject(:+) || 0
end