テキスト中の自動リンク (簡易版)

URLっぽいやつ、メールアドレスっぽいやつがテキスト中にある場合に、自動でa要素を付加するメソッド

  # == 自動href
  def auto_href(s)
    uniform = '(https?|ftp|gopher):'
    mailto = 'mailto:'
    domain = '(([-a-zA-Z\d]+\.)+[a-zA-Z]+|\d+\.\d+\.\d+\.\d+)'
    port = '(:\d+)?'
    loc = '(/([-\w\.!~\*;\?:@&=\+$,%#/])*)?'

    url_pattern = '(' + uniform + '//' + domain + port + loc + ')'
    mail_pattern = '([-a-zA-Z\d.%]+@' + domain + ')'

    s.gsub(/#{url_pattern}/, '<a href="\1" target="_blank">\1</a>').
	gsub(/#{mail_pattern}/, '<a href="' + mailto + '\1">\1</a>')
  end

いまどき、gopherなんていらんか。。。