昨日飲みに行って今朝起きてからふとコード書きたくなって、アドベントカレンダーもあることだし(去年の Adventar で自分のブログだけ og:image がなくて画像が出てなくて残念だった)、このブログを Open Graph protocol に対応させることにした。
Twitter Card の Lokka Plugin を前作ってたのでそれを改造した。
Ruby 2.1.0 以降で使える Module#refine
使いまくったけど安全にモンキーパッチできて便利。
module AddImagesToEntry
refine Entry do
def images
self.body.scan(/https?:\/\/[\w\/:%#\$&\?\(\)~\.=\+\-]+?\.(?:png|jpe?g|gif)/)
end
end
end
refine するときのモジュール名、 ActiveRecord のマイグレーションのクラス名みたいで面白い。