Retrospring/app/services/twittered_markdown.rb

24 lines
513 B
Ruby
Raw Normal View History

class TwitteredMarkdown < Redcarpet::Render::StripDown
def preprocess(text)
wrap_mentions(text)
end
def wrap_mentions(text)
text.gsub! /(^|\s)@([a-zA-Z0-9_]{1,16})/ do
local_user = User.find_by_screen_name($2)
if local_user.nil?
"#{$1}#{$2}"
else
service = local_user.services.where(type: "Services::Twitter").first
if service.nil?
"#{$1}#{$2}"
else
"#{$1}@#{service.nickname}"
end
end
end
text
end
end