Module: CassandraObject::Types::TimeType

Defined in:
lib/cassandra_object/types/time_type.rb

Constant Summary collapse

REGEX =

lifted from the implementation of Time.xmlschema and simplified

/\A\s*
(-?\d+)-(\d\d)-(\d\d)
T
(\d\d):(\d\d):(\d\d)
(\.\d*)?
(Z|[+-]\d\d:\d\d)?
\s*\z/ix

Class Method Summary collapse

Class Method Details

.decode(str) ⇒ Object

Raises:

  • (ArgumentError)


19
20
21
22
23
# File 'lib/cassandra_object/types/time_type.rb', line 19

def decode(str)
  return nil if str.empty?
  raise ArgumentError.new("Cannot convert #{str} into a Time") unless str.kind_of?(String) && str.match(REGEX)
  Time.xmlschema(str)
end

.encode(time) ⇒ Object

Raises:

  • (ArgumentError)


13
14
15
16
# File 'lib/cassandra_object/types/time_type.rb', line 13

def encode(time)
  raise ArgumentError.new("#{self} requires a Time") unless time.kind_of?(Time)
  time.xmlschema(6)
end