Ruby クラス定義の構造に一貫性を持たせる

2025/08/01

Ruby Style Guideで推奨されている。

以下引用

class Person
  # extendとincludeを最初に書きます。
  extend SomeModule
  include AnotherModule

  # 内部クラス
  CustomError = Class.new(StandardError)

  # 次に定数
  SOME_CONSTANT = 20

  # 次にattribute系マクロ
  attr_reader :name

  # (あれば) それ以外のマクロ
  validates :name

  # publicクラスメソッドが続きます
  def self.some_method
  end

  # initializationはクラスメソッドと他のpublicメソッドの間に
  def initialize
  end

  # 他のpublicメソッドが続きます
  def some_method
  end

  # protectedとprivateのメソッドは最後のあたりにグループ化します
  protected

  def some_protected_method
  end

  private

  def some_private_method
  end
end

参考