Class: Squib::EmbeddingUtils
- Inherits:
-
Object
- Object
- Squib::EmbeddingUtils
- Defined in:
- lib/squib/graphics/embedding_utils.rb
Class Method Summary collapse
-
.indices(str, keys) ⇒ Object
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).
Class Method Details
.indices(str, keys) ⇒ Object
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
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# 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 |