Summary
Rails の routes を peco りたかったんで rails-froutes という gem を作りました。
Github: pinzolo/rails-froutes
RubyGems.org: rails-froutes
Github: pinzolo/rails-froutes
RubyGems.org: rails-froutes
How?
インストールして、
rake routes FILL_NAME=yesと呼び出すと、従来は
blog_posts GET /blogs/:blog_id/posts(.:format) posts#index
POST /blogs/:blog_id/posts(.:format) posts#create
new_blog_post GET /blogs/:blog_id/posts/new(.:format) posts#new
edit_blog_post GET /blogs/:blog_id/posts/:id/edit(.:format) posts#edit
blog_post GET /blogs/:blog_id/posts/:id(.:format) posts#show
PUT /blogs/:blog_id/posts/:id(.:format) posts#update
DELETE /blogs/:blog_id/posts/:id(.:format) posts#destroy
blogs GET /blogs(.:format) blogs#index
POST /blogs(.:format) blogs#create
new_blog GET /blogs/new(.:format) blogs#new
edit_blog GET /blogs/:id/edit(.:format) blogs#edit
blog GET /blogs/:id(.:format) blogs#show
PUT /blogs/:id(.:format) blogs#update
DELETE /blogs/:id(.:format) blogs#destroy
こうだった rake routes の結果が、
blog_posts GET /blogs/:blog_id/posts(.:format) posts#index
blog_posts POST /blogs/:blog_id/posts(.:format) posts#create
new_blog_post GET /blogs/:blog_id/posts/new(.:format) posts#new
edit_blog_post GET /blogs/:blog_id/posts/:id/edit(.:format) posts#edit
blog_post GET /blogs/:blog_id/posts/:id(.:format) posts#show
blog_post PUT /blogs/:blog_id/posts/:id(.:format) posts#update
blog_post DELETE /blogs/:blog_id/posts/:id(.:format) posts#destroy
blogs GET /blogs(.:format) blogs#index
blogs POST /blogs(.:format) blogs#create
new_blog GET /blogs/new(.:format) blogs#new
edit_blog GET /blogs/:id/edit(.:format) blogs#edit
blog GET /blogs/:id(.:format) blogs#show
blog PUT /blogs/:id(.:format) blogs#update
blog DELETE /blogs/:id(.:format) blogs#destroy
こうなります。
Why?
ほら routes.rb みれば大体わかるとはいえ、ちょっと規模が大きくなると **_path, とか **_url を頭の中でごにょごにょするのはタルいわけです。
でも、通常の
まあ現実だと
私はこれを
guard で routes.rb 監視して、更新したら吐き出すようにしておくのもいいかもしれません。
そこまで routes.rb を頻繁にいじるかどうかはわかりませんが。
2014-08-16 追記:
改行が入るのは使いづらいのでコマンドを改良した。
% rake routes | peco | awk '{print $1}' | pbcopy
とかできたら便利じゃないですかね?でも、通常の
rake routes だと名前があったりなかったりで欲しいものが取れないので、こんな gem を作りました。まあ現実だと
rake routes はもっさりなので
% rake routes FILL_NAME=yes > .routesってあらかじめしておいて、
% cat .routes | peco | awk '{print $1}' | pbcopy
ってところですかね。私はこれを
proutes として .zshrc に登録しました。guard で routes.rb 監視して、更新したら吐き出すようにしておくのもいいかもしれません。
そこまで routes.rb を頻繁にいじるかどうかはわかりませんが。
2014-08-16 追記:
改行が入るのは使いづらいのでコマンドを改良した。
% cat .routes | peco | awk '{print $1}' | tr -d '\n' | pbcopy
おまけ
こんなふうに出力するオプションって
rake routes にないの?って思ってコード読んでたら、こんなの発見した。
rake routes CONTROLLER=books とすれば books_controller に関する routes だけが取れる。知らなかった。パイプ使って grep してた #rails
— pinzolo (@pinzolo) 2014, 8月 13
いや〜知らんかった。
0 件のコメント :
コメントを投稿