class TimeBoots::SimpleBoot

Constants

MULTIPLIERS

Public Instance Methods

measure(from, to) click to toggle source
# File lib/time_boots/boot/simple.rb, line 8
def measure(from, to)
  ((to.to_time - from.to_time) / to_seconds).to_i
end
to_seconds(sz = 1) click to toggle source
# File lib/time_boots/boot/simple.rb, line 4
def to_seconds(sz = 1)
  sz * MULTIPLIERS[step_idx..-1].inject(:*)
end

Protected Instance Methods

_advance(tm, steps) click to toggle source
# File lib/time_boots/boot/simple.rb, line 14
def _advance(tm, steps)
  _shift(tm, to_seconds(steps))
end
_decrease(tm, steps) click to toggle source
# File lib/time_boots/boot/simple.rb, line 18
def _decrease(tm, steps)
  _shift(tm, -to_seconds(steps))
end
_shift(tm, seconds) click to toggle source
# File lib/time_boots/boot/simple.rb, line 22
def _shift(tm, seconds)
  case tm
  when Time
    tm + seconds
  when DateTime
    tm + Rational(seconds, 86_400)
  else
    raise ArgumentError, "Expected Time or DateTime, got #{origin.class}"
  end
end