diff options
author | Reverite <github@reverite.sh> | 2019-05-15 11:12:17 -0700 |
---|---|---|
committer | Reverite <github@reverite.sh> | 2019-05-15 11:12:17 -0700 |
commit | 4cea89bf2e9ce7f73fccfc637191b1e039ad25ee (patch) | |
tree | cc559ad868e13d934ff539bd2da836ddad3ea5fc /app/lib/formatter.rb | |
parent | cdb159f27e2aeb2cf3bb184ac20b7056b013f714 (diff) | |
parent | c1cf8c1636e0a639cced585f0cb234547a64d417 (diff) |
Merge branch 'glitch' into production
Diffstat (limited to 'app/lib/formatter.rb')
-rw-r--r-- | app/lib/formatter.rb | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/app/lib/formatter.rb b/app/lib/formatter.rb index 59dfc9004..8a1aad41a 100644 --- a/app/lib/formatter.rb +++ b/app/lib/formatter.rb @@ -187,7 +187,7 @@ class Formatter end def rewrite(text, entities) - chars = text.to_s.to_char_a + text = text.to_s # Sort by start index entities = entities.sort_by do |entity| @@ -199,12 +199,12 @@ class Formatter last_index = entities.reduce(0) do |index, entity| indices = entity.respond_to?(:indices) ? entity.indices : entity[:indices] - result << encode(chars[index...indices.first].join) + result << encode(text[index...indices.first]) result << yield(entity) indices.last end - result << encode(chars[last_index..-1].join) + result << encode(text[last_index..-1]) result.flatten.join end @@ -231,23 +231,14 @@ class Formatter # Note: I couldn't obtain list_slug with @user/list-name format # for mention so this requires additional check special = Extractor.extract_urls_with_indices(escaped, options).map do |extract| - # exactly one of :url, :hashtag, :screen_name, :cashtag keys is present - key = (extract.keys & [:url, :hashtag, :screen_name, :cashtag]).first - new_indices = [ old_to_new_index.find_index(extract[:indices].first), old_to_new_index.find_index(extract[:indices].last), ] - has_prefix_char = [:hashtag, :screen_name, :cashtag].include?(key) - value_indices = [ - new_indices.first + (has_prefix_char ? 1 : 0), # account for #, @ or $ - new_indices.last - 1, - ] - next extract.merge( - :indices => new_indices, - key => text[value_indices.first..value_indices.last] + indices: new_indices, + url: text[new_indices.first..new_indices.last - 1] ) end |