Module: TimeInterval

Defined in:
lib/time_interval.rb,
lib/time_interval/version.rb,
lib/time_interval/duration.rb,
lib/time_interval/time_pair.rb,
lib/time_interval/repeating_interval.rb,
lib/time_interval/time_with_duration.rb

Defined Under Namespace

Classes: Duration, RepeatingInterval, TimePair, TimeWithDuration

Constant Summary collapse

VERSION =
'0.0.5'

Class Method Summary collapse

Class Method Details

.duration?(iso8601) ⇒ Boolean

Returns:

  • (Boolean)


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

def duration?(iso8601)
  iso8601['P'] == 'P'
end

.interval?(iso8601) ⇒ Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/time_interval.rb', line 13

def interval?(iso8601)
  iso8601['/'] == '/'
end

.parse(iso8601) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/time_interval.rb', line 25

def parse(iso8601)
  if interval? iso8601
    if repeating?(iso8601) && duration?(iso8601)
      RepeatingInterval.parse iso8601
    elsif duration? iso8601
      TimeWithDuration.parse iso8601
    else
      TimePair.parse iso8601
    end
  else
    TimePair.parse "#{iso8601}/#{iso8601}"
  end
end

.repeating?(iso8601) ⇒ Boolean

Returns:

  • (Boolean)


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

def repeating?(iso8601)
  !iso8601.match(/^R/).nil?
end