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