class TimeInterval::TimeWithDuration
Constants
- UNITS
Attributes
duration[R]
start_time[R]
Public Class Methods
new(time, duration, forwards = true)
click to toggle source
# File lib/time_interval/time_with_duration.rb, line 28 def initialize(time, duration, forwards = true) @start_time = time @duration = duration @forwards = forwards end
parse(iso8601)
click to toggle source
# File lib/time_interval/time_with_duration.rb, line 5 def self.parse(iso8601) halves = iso8601.split('/') fail ArgumentError unless halves.length == 2 if halves[0]['P'] forwards = false duration = Duration.parse(halves[0]) time = halves[1] elsif halves[1]['P'] forwards = true duration = Duration.parse(halves[1]) time = halves[0] else fail ArgumentError end new Time.parse(time), duration, forwards end
Public Instance Methods
==(other)
click to toggle source
# File lib/time_interval/time_with_duration.rb, line 34 def ==(other) return false unless other.is_a? TimeWithDuration start_time == other.start_time && end_time == other.end_time end
Also aliased as: eql?
end_time()
click to toggle source
# File lib/time_interval/time_with_duration.rb, line 42 def end_time if forwards? duration.add_to start_time else duration.subtract_from start_time end end
iso8601()
click to toggle source
# File lib/time_interval/time_with_duration.rb, line 50 def iso8601 if forwards? "#{start_time.iso8601}/#{duration.iso8601}" else "#{duration.iso8601}/#{start_time.iso8601}" end end
step()
click to toggle source
# File lib/time_interval/time_with_duration.rb, line 58 def step TimeWithDuration.new end_time, duration, forwards? end
Private Instance Methods
forwards?()
click to toggle source
# File lib/time_interval/time_with_duration.rb, line 64 def forwards? @forwards == true end