Sha256: c43d4cf8567c2800962156534a2e9e7c6fc7e7fdc0211557035f4d9df29d9b21
Contents?: true
Size: 1.31 KB
Versions: 13
Compression:
Stored size: 1.31 KB
Contents
module Sunspot module Query # # Abstract class for function queries. # class FunctionQuery def ^(y) @boost_amount = y self end end # # Function query which represents a constant. # class ConstantFunctionQuery < FunctionQuery def initialize(constant) @constant = constant end def to_s Type.to_literal(@constant) << (@boost_amount ? "^#{@boost_amount}" : "") end end # # Function query which represents a field. # class FieldFunctionQuery < FunctionQuery def initialize(field) @field = field end def to_s "#{Util.escape(@field.indexed_name)}" << (@boost_amount ? "^#{@boost_amount}" : "") end end # # Function query which represents an actual function invocation. # Takes a function name and arguments as parameters. # Arguments are in turn FunctionQuery objects. # class FunctionalFunctionQuery < FunctionQuery def initialize(function_name, function_args) @function_name, @function_args = function_name, function_args end def to_s params = @function_args.map { |arg| arg.to_s }.join(",") "#{@function_name}(#{params})" << (@boost_amount ? "^#{@boost_amount}" : "") end end end end
Version data entries
13 entries across 13 versions & 2 rubygems