Sha256: 24a9399913546ab876acfbe7f92e714531c3ba1c8a2c5fc26015fd8aad1384ef

Contents?: true

Size: 763 Bytes

Versions: 117

Compression:

Stored size: 763 Bytes

Contents

module CassandraObject
  module Types
    module TimeType
      # lifted from the implementation of Time.xmlschema and simplified
      REGEX = /\A\s*
                (-?\d+)-(\d\d)-(\d\d)
                T
                (\d\d):(\d\d):(\d\d)
                (\.\d*)?
                (Z|[+-]\d\d:\d\d)?
                \s*\z/ix

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

      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
      module_function :decode
    end
  end
end

Version data entries

117 entries across 117 versions & 2 rubygems

Version Path
sessionm-cassandra_object-2.2.44 lib/cassandra_object/types/time_type.rb
sessionm-cassandra_object-2.2.43 lib/cassandra_object/types/time_type.rb
sessionm-cassandra_object-2.2.42 lib/cassandra_object/types/time_type.rb
sessionm-cassandra_object-2.2.41 lib/cassandra_object/types/time_type.rb
sessionm-cassandra_object-2.2.40 lib/cassandra_object/types/time_type.rb
sessionm-cassandra_object-2.2.39 lib/cassandra_object/types/time_type.rb
sessionm-cassandra_object-2.2.38 lib/cassandra_object/types/time_type.rb
sessionm-cassandra_object-2.2.37 lib/cassandra_object/types/time_type.rb
sessionm-cassandra_object-2.2.36 lib/cassandra_object/types/time_type.rb
sessionm-cassandra_object-2.2.35 lib/cassandra_object/types/time_type.rb
sessionm-cassandra_object-2.2.34 lib/cassandra_object/types/time_type.rb
sessionm-cassandra_object-2.2.33 lib/cassandra_object/types/time_type.rb
sessionm-cassandra_object-2.2.32 lib/cassandra_object/types/time_type.rb
sessionm-cassandra_object-2.2.31 lib/cassandra_object/types/time_type.rb
sessionm-cassandra_object-2.2.30 lib/cassandra_object/types/time_type.rb
sessionm-cassandra_object-2.2.29 lib/cassandra_object/types/time_type.rb
sessionm-cassandra_object-2.2.28 lib/cassandra_object/types/time_type.rb
sessionm-cassandra_object-2.2.27 lib/cassandra_object/types/time_type.rb
sessionm-cassandra_object-2.2.26 lib/cassandra_object/types/time_type.rb
sessionm-cassandra_object-2.2.24 lib/cassandra_object/types/time_type.rb