class MongoQL::Expression::ValueNode
Constants
- SUPPORTED_TYPES
Attributes
value[RW]
Public Class Methods
new(val)
click to toggle source
# File lib/mongo_ql/expression/value_node.rb, line 14 def initialize(val) Expression::ValueNode.valid!(val) @value = val convert_to_date_if_possible end
valid!(value)
click to toggle source
# File lib/mongo_ql/expression/value_node.rb, line 42 def self.valid!(value) unless value.nil? || valid?(value) raise InvalidValueExpression, "#{value} must be in type #{SUPPORTED_TYPES.map(&:name).join(",")}" end end
valid?(value)
click to toggle source
# File lib/mongo_ql/expression/value_node.rb, line 38 def self.valid?(value) SUPPORTED_TYPES.any? { |type| value.is_a?(type) } end
Public Instance Methods
convert_to_date_if_possible()
click to toggle source
# File lib/mongo_ql/expression/value_node.rb, line 32 def convert_to_date_if_possible self.value = DateTime.iso8601(value) rescue => _ value end
to_ast()
click to toggle source
# File lib/mongo_ql/expression/value_node.rb, line 20 def to_ast case value when Date, DateTime # Expression::ValueNode.new(value.iso8601).to_date.to_ast { "$toDate" => value.iso8601 } when MongoQL::Expression::ValueNode value.to_ast else value end end