こういうgem作ろうと思ってる
仕事でWEBサイトをリニューアルしました。
WordpressのサイトをRailsに移植したんですが、URLが8割変わっていて
SEOツールから見るとエラーになっているURLがあるとのこと。そういうURLはリダイレクトが必要らしい。
リダイレクトが必要なURLを聞いてみると量がとても多い。テストっぽいの欲しいと思った。
どうせならここでgem童貞を卒表したい。
いつ作るか?今でしょ!
どういうgemか
リクエスト投げてリダイレクト先のURLが期待とあっているか表示するテストツール。
rspec的な感じ。
WEBサーバを指定するとリダイレクト(リライト)するコードを吐けるようにもしたい。
インターフェース案
呼び出し側を先に考えてみる。
その1
rc = RedirectChecker.new('http://localhost:3000') rc.check(path: '/dic/hoge/', go: { '123.html' => '/doc/123', '932.html' => '/doc/932' }) rc.check(path: '/dic/', go: { '123.html' => '/123', '932.html' => '/932' }) rc.check(path: '/list/', go: { '123.html' => '/list/123', '932.html' => '/list/932' })
冗長が多いけど、どのURLがどこにリダイレクトするかわかりやすいと思う。
その2
class RedirectChecker @base_url = 'http://localhost:3000' path("/") do path("dic") do path("hoge") do go '123.html' => '/doc/123' go '932.html' => '/doc/932' end go '123.html' => '/123' go '932.html' => '/932' end path('list') do go '123.html' => '/list/123' go '932.html' => '/list/932' end end end
gem側の実装が全然イメージできてないんですが、ブロックの入れ子でURLの階層を表現する感じ。
rspecをイメージにしてる。すごく簡潔のように見えるけどなんかスッと頭に入ってこない。
可読性で言えばその1に軍配かなぁ。
ハイブリットもしくは他のも考えてみる。