lib/cloud_sesame/query/ast/literal.rb in CloudSesame-0.1.6 vs lib/cloud_sesame/query/ast/literal.rb in CloudSesame-0.2.0
- old
+ new
@@ -1,29 +1,35 @@
module CloudSesame
module Query
module AST
- class Literal < SingleBranch
+ class Literal
attr_accessor :field
attr_reader :options, :value
def initialize(field = nil, value = nil, options = {})
@field = field
@value = to_value value
- ((@options = options || {})[:included] ||= []) << @value
+ @options = options || {}
+ (@options[:included] ||= []) << @value
end
- def as_field
- options[:as] || field
+ def is_for(field, options)
+ @field = field
+ @options = options.merge @options
end
- def compile
- options[:detailed] ? detailed_format : standard_format
+ def is_excluded
+ options[:included].delete value
+ (options[:excluded] ||= []) << value
end
- def detailed
- options[:detailed] = true
- return self
+ def as_field
+ options[:as] || field
+ end
+
+ def compile(detailed = false)
+ detailed ? detailed_format : standard_format
end
private
def to_value(value)