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)