in rb/lib/twitter-text/rewriter.rb [8:28]
def rewrite_entities(text, entities)
codepoints = text.to_s.to_codepoint_a
entities = entities.sort_by do |entity|
indices = entity.respond_to?(:indices) ? entity.indices : entity[:indices]
indices.first
end
result = []
last_index = entities.inject(0) do |index, entity|
indices = entity.respond_to?(:indices) ? entity.indices : entity[:indices]
result << codepoints[index...indices.first]
result << yield(entity, codepoints)
indices.last
end
result << codepoints[last_index..-1]
result.flatten.join
end