Хм, события могут использоваться для реализации шаблона The Observer. На самом деле использование событий может рассматриваться как другая реализация шаблона "наблюдатель", по моему скромному мнению.
Мне может не хватать контекста, но зачем изобретать колесо заново? Вы пробовали auto_link
в пакете действий
?
$ gem install actionpack
$ irb -f --prompt simple
>> require 'action_view'
>> include ActionView::Helpers
>> auto_link("abc http://google.com xyz")
=> "abc <a href=\"http://google.com\">http://google.com</a> xyz"
>> auto_link("abc <a href='http://google.com'>google</a> xyz")
=> "abc <a href='http://google.com'>google</a> xyz"