- imacoより
Text::HatenaにAutoLinkを追加する実験をしました。(作らなくてもよかったんだけどやってみたかった。)
こんな感じ。(imaco_id.rb)
require 'text/hatena/auto_link' require 'text/hatena/auto_link/scheme' class ImacoID < Text::Hatena::AutoLink::Scheme @@pattern = /?[?(imaco:(?w+)(?::(detail|image))?)?]?/i def patterns [@@pattern] end def parse(text, opt = {}) return if @@pattern !~ text content, name, type = $1, $2, $3 || '' sprintf('<a href="%s"%s>%s</a>', name, @a_target_string, name) end end Text::Hatena::AutoLink::SCHEMES['imaco'] = 'ImacoID'
auto_link.rbのAutoLink#initでrequireしてからget_classするようになっていますが、クラスの取得に失敗したらrequireするのはどうでしょうか?