class Squib::EmbeddingUtils
Public Class Methods
indices(str, keys)
click to toggle source
Given a string and a bunch of keys, give us back a mapping of those keys to where those keys start, and where they end (in ranges)
See the spec for expected outputs
# File lib/squib/graphics/embedding_utils.rb, line 8 def self.indices(str, keys) map = {} keys.each do |key| map[key] ||= [] start = 0 while true idx = str.index(key, start) if idx.nil? break; # done searching else idx_bytes = str[0..idx].bytesize - 1 map[key] << (idx_bytes..(idx_bytes + key.size)) start = idx + 1 end end end return map end