def privmsg(msg)

      # convert twitter urls to tweets
      if msg =~ %r(^https://twitter.com/(\w+)/status/(\d+)$)
        room.tweet(msg) { } # async, no-op callback
      else
        # convert ACTIONs
        msg.sub! /^\01ACTION (.*)\01$/, '*\1*'

        users.values.each do |user|
          msg.sub!(/\b#{user.nick}\b/, user.name)
        end

        room.text(msg) { } # async, no-op callback
      end

    end
def privmsg(msg)

      # convert twitter urls to tweets
      if msg =~ %r(^https://twitter.com/(\w+)/status/(\d+)$)
        room.tweet(msg) { } # async, no-op callback
      else
        # convert ACTIONs
        msg.sub! /^\01ACTION (.*)\01$/, '*\1*'

        users.values.each do |user|
          msg.sub!(/\b#{user.nick}\b/, user.name)
        end

        room.text(msg) { } # async, no-op callback
      end

    end
Public: accepts an IRC PRIVMSG and converts it to an appropriate
 campfire text message for the room.

 msg - the IRC PRIVMSG message contents