Sha256: ebaa17a2f85251e60397097c8fd8cb289979ad3f45f6d25f967adf4a1d828306
Contents?: true
Size: 1.17 KB
Versions: 3
Compression:
Stored size: 1.17 KB
Contents
module CloudSesame module Query module AST class RangeValue < Value def initialize(range = nil) @data = range && range.kind_of?(Range) ? [true, to_value(range.begin), to_value(range.end), !range.exclude_end?] : [false, nil, nil, false] end def compile "#{ lb }#{ data[1].to_s },#{ data[2].to_s }#{ ub }" end def gt(value) data[0], data[1] = false, to_value(value) return self end def gte(value) data[0], data[1] = true, to_value(value) return self end def lt(value) data[2], data[3] = to_value(value), false return self end def lte(value) data[2], data[3] = to_value(value), true return self end private def to_value(value) return value if value.kind_of? Value return DateValue.new(value) if value.kind_of?(Date) || value.kind_of?(Time) Value.new value end def lb data[1] && data[0] ? '[' : '{' end def ub data[2] && data[3] ? ']' : '}' end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
CloudSesame-0.2.2 | lib/cloud_sesame/query/ast/range_value.rb |
CloudSesame-0.2.1 | lib/cloud_sesame/query/ast/range_value.rb |
CloudSesame-0.2.0 | lib/cloud_sesame/query/ast/range_value.rb |