Sha256: 186e196acebc942824bc1894d76f9dc1b0ead420857be483a65288d97687a0e0
Contents?: true
Size: 1.28 KB
Versions: 2
Compression:
Stored size: 1.28 KB
Contents
module Riddle class Client # Used for querying Sphinx. class Filter attr_accessor :attribute, :values, :exclude # Attribute name, values (which can be an array or a range), and whether # the filter should be exclusive. def initialize(attribute, values, exclude=false) @attribute, @values, @exclude = attribute, values, exclude end def exclude? self.exclude end # Returns the message for this filter to send to the Sphinx service def query_message message = Message.new message.append_string self.attribute case self.values when Range if self.values.first.is_a?(Float) && self.values.last.is_a?(Float) message.append_int FilterTypes[:float_range] message.append_floats self.values.first, self.values.last else message.append_int FilterTypes[:range] message.append_ints self.values.first, self.values.last end when Array message.append_int FilterTypes[:values] message.append_int self.values.length message.append_ints *self.values end message.append_int self.exclude? ? 1 : 0 message.to_s end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ultrasphinx-1.6.7 | vendor/riddle/lib/riddle/client/filter.rb |
ultrasphinx-1.6 | vendor/riddle/riddle/client/filter.rb |