module Slack::Messages::Formatting

Public Class Methods

unescape(message) click to toggle source

Unescape a message. @see api.slack.com/docs/formatting

# File lib/slack/messages/formatting.rb, line 10
def unescape(message)
  CGI.unescapeHTML(message.gsub(/[“”]/, '"')
    .gsub(/[‘’]/, "'")
    .gsub(/<(?<sign>[?@#!]?)(?<dt>.*?)>/) do
      sign = Regexp.last_match[:sign]
      dt = Regexp.last_match[:dt]
      rhs = dt.split('|', 2).last
      case sign
      when '@', '!'
        "@#{rhs}"
      when '#'
        "##{rhs}"
      else
        rhs
      end
    end)
end