Sha256: b449897115593bcf804d46c4211ee68b109870b9d734437d2c53294a0a41a587
Contents?: true
Size: 988 Bytes
Versions: 9
Compression:
Stored size: 988 Bytes
Contents
module Scrivito # Adds support for string columns which contain ISO dates module DateAttribute def self.parse(iso_date_time) return nil unless iso_date_time if iso_date_time.to_s =~ /^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/ Time.utc($1.to_i, $2.to_i, $3.to_i, $4.to_i, $5.to_i, $6.to_i).in_time_zone else raise "The value is not a valid ISO date time: #{iso_date_time.inspect}" end end def self.parse_iso8601(iso8601_date_time) return unless iso8601_date_time DateTime.iso8601(iso8601_date_time).in_time_zone rescue ArgumentError raise "The value is not a valid ISO 8601 date time: #{iso8601_date_time.inspect}" end def self.serialize(attribute_value) attribute_value = case attribute_value when Date then attribute_value.to_time when Time then attribute_value.to_time.utc end attribute_value.strftime('%Y%m%d%H%M%S') if attribute_value end end end
Version data entries
9 entries across 9 versions & 1 rubygems