Sha256: e155618d6e9bfb4fa30eafbfa62eb13d05bbb09208f10aa94a29a2c1cf54bb82

Contents?: true

Size: 662 Bytes

Versions: 1

Compression:

Stored size: 662 Bytes

Contents

require "date"

module FilterParam
  module AST
    module Literals
      class DateTime < Date
        def initialize(value)
          @raw_value = value
          @value = ::DateTime.iso8601(value.to_s)
        rescue ::Date::Error
          raise FilterParam::InvalidLiteral.new("Invalid ISO8601 Datetime: #{value}")
        end

        def data_type
          :datetime
        end

        private

        attr_reader :raw_value

        def to_string
          Literals::String.new(raw_value)
        end

        def to_date
          Literals::Date.new(value)
        end

        def to_datetime
          self
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
filter_param-0.1.2 lib/filter_param/ast/literals/date_time.rb