class Client::Client::Response
Used to interrogate responses from the Sphinx daemon. Keep in mind none of the methods here check whether the data they’re grabbing are what the user expects - it just assumes the user knows what the data stream is made up of.
Public Class Methods
new(str)
click to toggle source
Create with the data to interpret
# File lib/riddle/client/response.rb, line 11 def initialize(str) @str = str @marker = 0 end
Public Instance Methods
length()
click to toggle source
Returns the length of the streamed data
# File lib/riddle/client/response.rb, line 91 def length @str.length end
next()
click to toggle source
Return the next string value in the stream
# File lib/riddle/client/response.rb, line 17 def next len = next_int result = @str[@marker, len] @marker += len Riddle.encode(result) end
next_64bit_int()
click to toggle source
# File lib/riddle/client/response.rb, line 33 def next_64bit_int high, low = @str[@marker, 8].unpack('N*N*')[0..1] @marker += 8 (high << 32) + low end
next_64bit_int_array()
click to toggle source
# File lib/riddle/client/response.rb, line 80 def next_64bit_int_array byte_count = next_int items = [] (byte_count / 2).times do items << self.next_64bit_int end items end
next_array()
click to toggle source
Returns an array of string items
# File lib/riddle/client/response.rb, line 49 def next_array count = next_int items = [] count.times do items << self.next end items end
next_float()
click to toggle source
Return the next float value from the stream
# File lib/riddle/client/response.rb, line 41 def next_float float = @str[@marker, 4].unpack('N*').pack('L').unpack('f*').first @marker += 4 float end
next_float_array()
click to toggle source
# File lib/riddle/client/response.rb, line 70 def next_float_array count = next_int items = [] count.times do items << self.next_float end items end
next_int()
click to toggle source
Return the next integer value from the stream
# File lib/riddle/client/response.rb, line 26 def next_int int = @str[@marker, 4].unpack('N*').first @marker += 4 int end
next_int_array()
click to toggle source
Returns an array of int items
# File lib/riddle/client/response.rb, line 60 def next_int_array count = next_int items = [] count.times do items << self.next_int end items end