Sha256: 4d4d0088a097ac3303ab67203186c566486ea5cf258850c9d781b0aca96bd92c

Contents?: true

Size: 678 Bytes

Versions: 2

Compression:

Stored size: 678 Bytes

Contents

module TimeInterval
  class TimePair
    def self.parse(iso8601)
      halves = iso8601.split('/')

      fail ArgumentError unless halves.length == 2

      start_time, end_time = halves.map { |time| Time.parse time }

      new start_time, end_time
    end

    attr_reader :start_time
    attr_reader :end_time

    def initialize(start_time, end_time)
      @start_time = start_time
      @end_time = end_time
    end

    def ==(other)
      return false unless other.is_a? TimePair

      start_time == other.start_time && end_time == other.end_time
    end

    alias_method :eql?, :==

    def iso8601
      "#{start_time.iso8601}/#{end_time.iso8601}"
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
time-interval-0.0.5 lib/time_interval/time_pair.rb
time-interval-0.0.4 lib/time_interval/time_pair.rb