Class: Circa::Time

Inherits:
Object
  • Object
show all
Includes:
Util
Defined in:
lib/circa/time.rb

Constant Summary collapse

REGEX =
/^([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])Z?$/

Instance Method Summary collapse

Methods included from Util

#valid_parts_as_args

Constructor Details

#initialize(time_string) ⇒ Time

Returns a new instance of Time.



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/circa/time.rb', line 11

def initialize(time_string)
  parts = time_string.split(/T|\s/)
  @date = Date.new(parts[0])
  @hour = '00'
  @minute = '00'
  @second = '00'
  @valid_parts = {}
  unless validate(parts[1])
    raise ArgumentError, "Invalid time: #{time_string}"
  end
end

Instance Method Details

#to_sObject



23
24
25
# File 'lib/circa/time.rb', line 23

def to_s
  "#{@date.to_s} #{@hour}:#{@minute}:#{@second}"
end

#to_timeObject



32
33
34
35
36
# File 'lib/circa/time.rb', line 32

def to_time
  parts = [:year, :month, :day, :hour, :minute, :second]
  args = valid_parts_as_args(parts)
  ::DateTime.send(:new, *args)
end

#valid_partsObject



27
28
29
30
# File 'lib/circa/time.rb', line 27

def valid_parts
  time_parts = { hour: @hour, minute: @minute, second: @second }
  @date.valid_parts.merge(time_parts)
end