class CloudSesame::Query::AST::Abstract::Value

Constants

DATETIME_FORMAT
DATE_FORMAT
DIGIT_FORMAT
RANGE_FORMAT

CONSTANTS

TIME_FORMAT

Attributes

changed[R]
compiled[R]
value[R]

Public Class Methods

datetime?(value) click to toggle source
# File lib/cloud_sesame/query/ast/abstract/value.rb, line 38
def self.datetime?(value)
  value.kind_of?(::Date) || value.kind_of?(::Time)
end
new(value, type = nil) click to toggle source

INSTANCE METHODS

# File lib/cloud_sesame/query/ast/abstract/value.rb, line 57
def initialize(value, type = nil)
  self.value = value
  @type = type
end
numeric?(value) click to toggle source
# File lib/cloud_sesame/query/ast/abstract/value.rb, line 30
def self.numeric?(value)
  value.is_a?(::Numeric)
end
range?(value) click to toggle source

CLASS METHODS

# File lib/cloud_sesame/query/ast/abstract/value.rb, line 22
def self.range?(value)
  value.kind_of?(Range)
end
string_date?(value) click to toggle source
# File lib/cloud_sesame/query/ast/abstract/value.rb, line 50
def self.string_date?(value)
  value.is_a?(String) && DATE_FORMAT =~ value
end
string_datetime?(value) click to toggle source
# File lib/cloud_sesame/query/ast/abstract/value.rb, line 42
def self.string_datetime?(value)
  value.is_a?(::String) && DATETIME_FORMAT =~ value
end
string_numeric?(value) click to toggle source
# File lib/cloud_sesame/query/ast/abstract/value.rb, line 34
def self.string_numeric?(value)
  value.is_a?(::String) && !!(DIGIT_FORMAT =~ value)
end
string_range?(value) click to toggle source
# File lib/cloud_sesame/query/ast/abstract/value.rb, line 26
def self.string_range?(value)
  value.is_a?(::String) && !!(RANGE_FORMAT =~ strip(value))
end
string_time?(value) click to toggle source
# File lib/cloud_sesame/query/ast/abstract/value.rb, line 46
def self.string_time?(value)
  value.is_a?(::String) && TIME_FORMAT =~ value
end

Private Class Methods

strip(string) click to toggle source

Private Helper Methods

# File lib/cloud_sesame/query/ast/abstract/value.rb, line 93
def self.strip(string)
  string.to_s.tr(' ', '')
end
strip!(string) click to toggle source
# File lib/cloud_sesame/query/ast/abstract/value.rb, line 97
def self.strip!(string)
  string.to_s.tr!(' ', '')
end

Public Instance Methods

==(value) click to toggle source
# File lib/cloud_sesame/query/ast/abstract/value.rb, line 77
def ==(value)
  (value.respond_to?(:compile) && compile == value.compile) ||
  @value == value ||
  compile == value
end
compile() click to toggle source
# File lib/cloud_sesame/query/ast/abstract/value.rb, line 69
def compile
  changed ? recompile(value) : @compiled
end
to_s() click to toggle source
# File lib/cloud_sesame/query/ast/abstract/value.rb, line 73
def to_s
  value.to_s
end
value=(value) click to toggle source
# File lib/cloud_sesame/query/ast/abstract/value.rb, line 62
def value=(value)
  unless @value == value
    @changed = true
    @value = value
  end
end

Private Instance Methods

recompile(value) click to toggle source
# File lib/cloud_sesame/query/ast/abstract/value.rb, line 85
def recompile(value)
  @changed = false
  @compiled = value
end
strip(string) click to toggle source
# File lib/cloud_sesame/query/ast/abstract/value.rb, line 101
def strip(string)
  string.to_s.tr(' ', '')
end
strip!(string) click to toggle source
# File lib/cloud_sesame/query/ast/abstract/value.rb, line 105
def strip!(string)
  string.to_s.tr!(' ', '')
end