Tech Racho エンジニアの「?」を「!」に。
  • Ruby / Rails関連

Rais 7のbyebugがruby/debugに置き換わる(翻訳)

概要

原著者の許諾を得て翻訳・公開いたします。

Rais 7のbyebugがruby/debugに置き換わる(翻訳)

皆さんもご存知のように、デバッガはプログラマがコードを手軽にデバッグするための主要なツールです。Rails 7の最新の変更で、従来のbyebugruby/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の新しい機能が手を組むことになります。

デバッグにbyebugdebugを使った例をそれぞれ見ていきましょう。

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リポジトリをどうぞ。

ruby/debug - GitHub

関連記事

ruby/debugのChrome Devtools連携をRailsで動かす

Rubyの新しいデバッガの機能を先行紹介(翻訳)


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。