Rais 7のbyebugがruby/debugに置き換わる(翻訳)
皆さんもご存知のように、デバッガはプログラマがコードを手軽にデバッグするための主要なツールです。Rails 7の最新の変更で、従来のbyebugがruby/debugに置き換えられます(#43187)。
byebugは2014年からRailsプログラマーのアプリケーションデバッグを支えてきました(当時のプルリクは#14646で参照できます)。Rails 7からは、ruby/debugのがデフォルトのデバッガになります。
ruby/debugはRuby 3.1に同梱されることになっている新しいデバッガで、Ruby 3.1の標準ライブラリになる予定です。Rails 7にruby/debugが追加されることで、Rails 7とRubyの新しい機能が手を組むことになります。
デバッグにbyebug
とdebug
を使った例をそれぞれ見ていきましょう。
byebug
を使う場合
class TestController < ApplicationController
def index
name = "Sam"
age = 23
byebug
place = "Boston"
end
end
# Result
[1, 8] in /Users/sam/test_app/app/controllers/test_controller.rb
1: class TestController < ApplicationController
2: def index
3: name = "Sam"
4: age = 23
5: byebug
=> 6: place = "Boston"
7: end
8: end
(byebug) name
"Sam"
ruby/debugを使う場合
class TestController < ApplicationController
def index
name = "Sam"
age = 23
binding.break
place = "Boston"
end
end
# Result
[1, 8] in ~/test_app/app/controllers/test_controller.rb
1| class TestController < ApplicationController
2| def index
3| name = "Sam"
4| age = 23
=> 5| binding.break
6| place = "Boston"
7| end
9| end
=>#0 TestController#index at ~/test_app/app/controllers/test_controller.rb:5
#1 ActionController::BasicImplicitRender#send_action(method="index", args=[])
(rdbg) name # ruby
"Sam"
(rdbg) continue # command
ruby/debugのコマンドや機能について詳しくは、ruby/debugリポジトリをどうぞ。
概要
原著者の許諾を得て翻訳・公開いたします。