Railsで使うデバッグ役立ちツールの
意見交換
@hamajyotan    
©2013 ummm All Rights Reserved.    
自己紹介
●
@hamajyotan – SAKAGUCHI Takashi
–
鳥取IT企業、オフィスウームの代表し
てます
–
http://www.ummm.info
–
う〜むとお困りの際にはご用命を
–
主にRuby on Rails...
この発表について
僕が日頃使っているRailsのデバッグ
に有用なgemを共有します
といいつつ『他にこんなのあるよ』
というような意見を僕が聞きたくて
それのきっかけにしたいです
説明で使うアプリ作ります
$ rails new hoge && cd hoge/
$ git init && git add . && git commit -m “frst commit”
$ rails g controller welc...
Gemfle(for debug)抜粋
group :development, :test do
gem 'pry-doc', require: false
gem 'pry-rails'
gem 'pry-debugger' # gem 'p...
pry, pry-doc
●
言わずと知れたREPL環境、これが無いと始まらな
い。
●
.(ドット)から始めるとshellコマンドを実行できる。
●
cd⇒コンテキストを指定したオブジェクトにして実
行(instance_eval)
●
bi...
pry-rails
●
rails consoleコマンドでirbでなくpryが起動す
るようになる
●
reload! ⇒ rails構成を再読み込み
●
show-routes⇒ルーティング表示
●
show-models⇒モデル表示
●
...
pry-debugger(pry-byebug)
●
binding.pryで実行を止めた箇所から移
動できる。(ステップ実行)
●
continue⇒デバッグを抜ける
●
step⇒メソッドの中に入って1つ進める
●
next⇒現在のメソッド...
hirb, hirb-unicode
●
hirb
–
ActiveRecordの結果を見やすく整形して
表示してくれる。
●
hirb-unicode
–
hirbでは全角文字が出力結果に混ざってい
るとインデントがずれる
–
hirb-un...
.pryrcファイル例
if defned? Hirb
●
Hirb::View.instance_eval do
●
def enable_output_method
●
@output_method = true
●
@old_print ...
better_errors,
binding_of_caller
●
better_errors
–
エラー画面が格好良くなる
–
見やすいエラーメッセージ、など
●
binding_of_caller
–
better_errorsのエラー画...
rack-mini-profler
●
プロファイラ
●
実行するとWeb画面左上に実行時間な
どが表示されるようになる
●
SQLの実行状況などもここで確認できる
quiet_assets
●
assets pipelineを有効にしていると出てくる
ログの大部分はassets実行結果になる
–
⇒肝心なログが拾いにくい
●
assetsの実行結果ログは出力が抑制されてロ
グ出力がスッキリする
おまけ - .bashrc
alias g="git"
function irb { if which pry >/dev/null 2>&1; then pry $*; else `which irb` $*; f; }
function b...
Happy debugging.
Upcoming SlideShare
Loading in...5
×

20130929 tottoruby

808

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
808
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
1
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

20130929 tottoruby

  1. 1. Railsで使うデバッグ役立ちツールの 意見交換 @hamajyotan     ©2013 ummm All Rights Reserved.    
  2. 2. 自己紹介 ● @hamajyotan – SAKAGUCHI Takashi – 鳥取IT企業、オフィスウームの代表し てます – http://www.ummm.info – う〜むとお困りの際にはご用命を – 主にRuby on Railsに関しての技術的 な相談を請け負っています。 実装もお受けします。
  3. 3. この発表について 僕が日頃使っているRailsのデバッグ に有用なgemを共有します といいつつ『他にこんなのあるよ』 というような意見を僕が聞きたくて それのきっかけにしたいです
  4. 4. 説明で使うアプリ作ります $ rails new hoge && cd hoge/ $ git init && git add . && git commit -m “frst commit” $ rails g controller welcome index && rm public/index.html $ rails g scafold User name age:integer && rake db:migrate $ echo "<%= link_to nil, users_path %>" >> ¥ > app/views/welcomde/index.html.erb $ echo "body { width: 640px; margin: 0 auto; }" >> ¥ > app/assets/stylesheets/application.css $ # confg/routes.rb の修正 Hoge::Application.routes.draw do resources :users root to: "welcome#index" end $ rails server # ⇒ access to http://127.0.0.1:3000
  5. 5. Gemfle(for debug)抜粋 group :development, :test do gem 'pry-doc', require: false gem 'pry-rails' gem 'pry-debugger' # gem 'pry-byebug' gem 'hirb' gem 'hirb-unicode' end group :development do gem 'better_errors' gem 'binding_of_caller' gem 'rack-mini-profler' gem 'quiet_assets' end
  6. 6. pry, pry-doc ● 言わずと知れたREPL環境、これが無いと始まらな い。 ● .(ドット)から始めるとshellコマンドを実行できる。 ● cd⇒コンテキストを指定したオブジェクトにして実 行(instance_eval) ● binding.pryでブレークポイントを埋め込める ● ls⇒有効なオブジェクトを確認 ● show-doc⇒ドキュメントを表示 ● show-method, $, show-source⇒(メソッドの) ソースコードを表示、Cのソースも読める。
  7. 7. pry-rails ● rails consoleコマンドでirbでなくpryが起動す るようになる ● reload! ⇒ rails構成を再読み込み ● show-routes⇒ルーティング表示 ● show-models⇒モデル表示 ● show-middleware⇒rackミドルウェアを表示 ● 困ったらhelp ● .pryrcを配置しておけばconsole起動の初期化 時の処理をかける
  8. 8. pry-debugger(pry-byebug) ● binding.pryで実行を止めた箇所から移 動できる。(ステップ実行) ● continue⇒デバッグを抜ける ● step⇒メソッドの中に入って1つ進める ● next⇒現在のメソッド上で1つ進める ● fnish⇒現在のメソッドを抜ける
  9. 9. hirb, hirb-unicode ● hirb – ActiveRecordの結果を見やすく整形して 表示してくれる。 ● hirb-unicode – hirbでは全角文字が出力結果に混ざってい るとインデントがずれる – hirb-unicodeではそれを解消する
  10. 10. .pryrcファイル例 if defned? Hirb ● Hirb::View.instance_eval do ● def enable_output_method ● @output_method = true ● @old_print = Pry.confg.print ● Pry.confg.print = proc do |output, value| ● Hirb::View.view_or_page_output(value) || @old_print.call(output, value) ● end ● end ● ● def disable_output_method ● Pry.confg.print = @old_print ● @output_method = nil ● end ● end ● ● Hirb.enable ● end
  11. 11. better_errors, binding_of_caller ● better_errors – エラー画面が格好良くなる – 見やすいエラーメッセージ、など ● binding_of_caller – better_errorsのエラー画面でREPLが叩け るようになる
  12. 12. rack-mini-profler ● プロファイラ ● 実行するとWeb画面左上に実行時間な どが表示されるようになる ● SQLの実行状況などもここで確認できる
  13. 13. quiet_assets ● assets pipelineを有効にしていると出てくる ログの大部分はassets実行結果になる – ⇒肝心なログが拾いにくい ● assetsの実行結果ログは出力が抑制されてロ グ出力がスッキリする
  14. 14. おまけ - .bashrc alias g="git" function irb { if which pry >/dev/null 2>&1; then pry $*; else `which irb` $*; f; } function be { if bundle check >/dev/null 2>&1; then bundle exec $*; else $*; f; } for cmd in rails rake rspec guard cap; do alias $cmd="be $cmd" done alias r="rails" alias ra="rake"
  15. 15. Happy debugging.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×