Class: CloudSesame::Query::AST::Abstract::Value
- Inherits:
-
Object
- Object
- CloudSesame::Query::AST::Abstract::Value
show all
- Defined in:
- lib/cloud_sesame/query/ast/abstract/value.rb
Constant Summary
collapse
- RANGE_FORMAT =
Regexp.new(/\A(\[|{)(.*),(.*)(\}|\])\z/).freeze
- DIGIT_FORMAT =
Regexp.new(/\A\d+(.\d+)?\z/).freeze
- DATETIME_FORMAT =
Regexp.new(/\d+{4}-\d+{2}-\d+{2}T\d+{2}:\d+{2}:\d+{2}/).freeze
- TIME_FORMAT =
Regexp.new(/\d+{4}-\d+{2}-\d+{2} \d+{2}:\d+{2}:\d+{2}/).freeze
- DATE_FORMAT =
Regexp.new(/\d+{4}-\d+{2}-\d+{2}/).freeze
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(value, type = nil) ⇒ Value
57
58
59
60
|
# File 'lib/cloud_sesame/query/ast/abstract/value.rb', line 57
def initialize(value, type = nil)
self.value = value
@type = type
end
|
Instance Attribute Details
#changed ⇒ Object
Returns the value of attribute changed.
17
18
19
|
# File 'lib/cloud_sesame/query/ast/abstract/value.rb', line 17
def changed
@changed
end
|
#compiled ⇒ Object
Returns the value of attribute compiled.
17
18
19
|
# File 'lib/cloud_sesame/query/ast/abstract/value.rb', line 17
def compiled
@compiled
end
|
#value ⇒ Object
Returns the value of attribute value.
17
18
19
|
# File 'lib/cloud_sesame/query/ast/abstract/value.rb', line 17
def value
@value
end
|
Class Method Details
.datetime?(value) ⇒ Boolean
38
39
40
|
# File 'lib/cloud_sesame/query/ast/abstract/value.rb', line 38
def self.datetime?(value)
value.kind_of?(::Date) || value.kind_of?(::Time)
end
|
.numeric?(value) ⇒ Boolean
30
31
32
|
# File 'lib/cloud_sesame/query/ast/abstract/value.rb', line 30
def self.numeric?(value)
value.is_a?(::Numeric)
end
|
.range?(value) ⇒ Boolean
22
23
24
|
# File 'lib/cloud_sesame/query/ast/abstract/value.rb', line 22
def self.range?(value)
value.kind_of?(Range)
end
|
.string_date?(value) ⇒ Boolean
50
51
52
|
# 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) ⇒ Boolean
42
43
44
|
# 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) ⇒ Boolean
34
35
36
|
# 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) ⇒ Boolean
26
27
28
|
# 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) ⇒ Boolean
46
47
48
|
# File 'lib/cloud_sesame/query/ast/abstract/value.rb', line 46
def self.string_time?(value)
value.is_a?(::String) && TIME_FORMAT =~ value
end
|
Instance Method Details
#==(value) ⇒ Object
77
78
79
80
81
|
# 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 ⇒ Object
69
70
71
|
# File 'lib/cloud_sesame/query/ast/abstract/value.rb', line 69
def compile
changed ? recompile(value) : @compiled
end
|
#to_s ⇒ Object
73
74
75
|
# File 'lib/cloud_sesame/query/ast/abstract/value.rb', line 73
def to_s
value.to_s
end
|