Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20130929 tottoruby

1,148 views

Published on

Published in: Technology
  • Be the first to comment

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.

×