Ruby on Rails: $ rake routes の結果をmarkdown形式で表示。
こんな感じで出力したい
| Prefix | Verb | URI Pattern | Controller#Action | | ----------- | ------ | ------------------------- | -------------------- | | users | GET | /users(.:format) | users#index | | | POST | /users(.:format) | users#create | | new_user | GET | /users/new(.:format) | users#new | | edit_user | GET | /users/:id/edit(.:format) | users#edit | | user | GET | /users/:id(.:format) | users#show | | | PATCH | /users/:id(.:format) | users#update | | | PUT | /users/:id(.:format) | users#update |
はてなブログ等のMarkdown形式に対応しているシステムに貼付けると、自動でテーブルにしてくれて便利。
手順
- 以下に紹介するコードをRailsの管理下に置く。
markdown_formatter.rb
をlibディレクトリの下に。rake_task.rb
をlib/taskディレクトリに置く。(名前は変更可)
コード
注意
- 動作しない場合、以下のコメントアウトされていないラインを
rake_task.rb
に追加
# require 'action_dispatch/routing/inspector'の下 require 'markdown_formatter' # inspector = ActionDispatch::Routing::RoutesInspector.new(all_routes)
- markdown_formatterのコードを一部変更
divider = "| #{'-' * name_width} | #{'-' * verb_width} | #{'-' * path_width} | #{'-' * reqs_width} |"
顛末
こんなことできたらいいのになーと思い、いろいろ自分で調べたのですができませんでした。 Stack overflowで聞いたところ、2時間程して返答あり、びっくりした次第です。 世の中には凄い人がいますね。追いつきたい。