Sha256: 945ee7ccaae257ce4f29f5e07d32c239843095b54b47d8a57566b635b791798f
Contents?: true
Size: 1.24 KB
Versions: 14
Compression:
Stored size: 1.24 KB
Contents
module CloudSesame module Query module AST class DateValue < StringValue COMPILE_FORMAT = '%FT%TZ'.freeze DATETIME_FORMAT = '%FT%T'.freeze TIME_FORMAT = '%F %T %z'.freeze DATE_FORMAT = '%F'.freeze def self.parse(value) return value.parse self if value.kind_of?(RangeValue) range?(value) || string_range?(value) ? RangeValue.new(value, self) : new(value) end def initialize(value, type = nil) value = Value.string_datetime?(value) ? parse_datetime(value) : Value.string_time?(value) ? parse_time(value) : Value.string_date?(value) ? parse_date(value) : value super(value, type) end def to_s compile end private def parse_datetime(string) DateTime.strptime(string, DATETIME_FORMAT) end def parse_time(string) DateTime.strptime(string, TIME_FORMAT) end def parse_date(string) Date.strptime(string, DATE_FORMAT) end def recompile(value) super strip format value end def format(value) value.strftime COMPILE_FORMAT end end end end end
Version data entries
14 entries across 14 versions & 1 rubygems