Your code was almost correct. I made some small modifications and it works.
def find_substring(substring)
low = 0
high = @sorted_suffix_array.length-1
while(low <= high) do
mid = (low + high) / 2
comparison = @sorted_suffix_array[mid][:suffix][0...substring.length]
if comparison > substring
high = mid - 1
elsif comparison < substring
low = mid + 1
else
return @sorted_suffix_array[mid][:index]
end
end
end