lib/scrivito/date_attribute.rb in scrivito_sdk-0.71.1 vs lib/scrivito/date_attribute.rb in scrivito_sdk-0.71.2

- old
+ new

@@ -1,32 +1,36 @@ module Scrivito # Adds support for string columns which contain ISO dates module DateAttribute - def self.parse(iso_date_time) + def self.deserialize_from_backend(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) + def self.deserialize_from_client(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) + def self.serialize_for_backend(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 + + def self.serialize_for_client(attribute_value) + attribute_value.utc.iso8601 end end end