rewrite_entities

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