class TickTock::Duration

Constants

MILLIS_IN_DAY
MILLIS_IN_HOUR
MILLIS_IN_MINUTE
MILLIS_IN_SECOND
MILLIS_IN_WEEK
MILLIS_IN_YEAR

Attributes

raw_millis[R]

Public Class Methods

from_pieces(millis=0, seconds=0, minutes=0, hours=0, days=0, weeks=0, years=0) click to toggle source
# File lib/tick-tock/duration.rb, line 18
def self.from_pieces(millis=0, seconds=0, minutes=0, hours=0, days=0, weeks=0, years=0)
  Duration.new(millis +
               seconds * MILLIS_IN_SECOND +
               minutes * MILLIS_IN_MINUTE +
               hours * MILLIS_IN_HOUR +
               days * MILLIS_IN_DAY +
               weeks * MILLIS_IN_WEEK +
               years * MILLIS_IN_YEAR)
end
from_times(start, finish) click to toggle source
# File lib/tick-tock/duration.rb, line 14
def self.from_times(start, finish)
  Duration.new(((finish - start) * 1000).to_i)
end
new(millis = 0) click to toggle source
# File lib/tick-tock/duration.rb, line 28
def initialize(millis = 0)
  @raw_millis = millis
  @formatter = TickTock::Formatter.new(self)
end

Public Instance Methods

+(other) click to toggle source
# File lib/tick-tock/duration.rb, line 33
def +(other)
  Duration.new(raw_millis + other.raw_millis)
end
-(other) click to toggle source
# File lib/tick-tock/duration.rb, line 37
def -(other)
  Duration.new(raw_millis - other.raw_millis)
end
days() click to toggle source
# File lib/tick-tock/duration.rb, line 49
def days
  (raw_millis - years_in_millis - weeks_in_millis) / MILLIS_IN_DAY
end
hours() click to toggle source
# File lib/tick-tock/duration.rb, line 53
def hours
  (raw_millis - years_in_millis - weeks_in_millis - days_in_millis) / MILLIS_IN_HOUR
end
inspect() click to toggle source
# File lib/tick-tock/duration.rb, line 73
def inspect
  to_s
end
millis() click to toggle source
# File lib/tick-tock/duration.rb, line 65
def millis
  raw_millis - years_in_millis - weeks_in_millis - days_in_millis - hours_in_millis - minutes_in_millis - seconds_in_millis
end
minutes() click to toggle source
# File lib/tick-tock/duration.rb, line 57
def minutes
  (raw_millis - years_in_millis - weeks_in_millis - days_in_millis - hours_in_millis) / MILLIS_IN_MINUTE
end
seconds() click to toggle source
# File lib/tick-tock/duration.rb, line 61
def seconds
  (raw_millis - years_in_millis - weeks_in_millis - days_in_millis - hours_in_millis - minutes_in_millis) / MILLIS_IN_SECOND
end
to_s() click to toggle source
# File lib/tick-tock/duration.rb, line 69
def to_s
  @formatter.to_s
end
weeks() click to toggle source
# File lib/tick-tock/duration.rb, line 45
def weeks
  (raw_millis - years_in_millis) / MILLIS_IN_WEEK
end
years() click to toggle source
# File lib/tick-tock/duration.rb, line 41
def years
  raw_millis / MILLIS_IN_YEAR
end

Private Instance Methods

days_in_millis() click to toggle source
# File lib/tick-tock/duration.rb, line 87
def days_in_millis
  MILLIS_IN_DAY * days
end
hours_in_millis() click to toggle source
# File lib/tick-tock/duration.rb, line 91
def hours_in_millis
  MILLIS_IN_HOUR * hours
end
minutes_in_millis() click to toggle source
# File lib/tick-tock/duration.rb, line 95
def minutes_in_millis
  MILLIS_IN_MINUTE * minutes
end
seconds_in_millis() click to toggle source
# File lib/tick-tock/duration.rb, line 99
def seconds_in_millis
  MILLIS_IN_SECOND * seconds
end
weeks_in_millis() click to toggle source
# File lib/tick-tock/duration.rb, line 83
def weeks_in_millis
  MILLIS_IN_WEEK * weeks
end
years_in_millis() click to toggle source
# File lib/tick-tock/duration.rb, line 79
def years_in_millis
  MILLIS_IN_YEAR * years
end