ruby で開発をしています。プログラムを開発していると、多種多様な Value Object を定義することに (定義したく) なりますが、その手順が、以下に示す通り同じようなことの繰り返しなので、どうにか効率化できないかと考えています。

具体例 Value Object クラス

class Person
  attr_reader :name, :age
  def initialize(name, age)
    @name = name
    @age = age
  end

  def ==(other)
    name == other.name &&
      age == other.age
  end
end

これは、2つのフィールドを持つクラスなので、まだシンプルですが、フィールド数が増えてくると、特にフィールド変更のプログラム修正を行う場合などに苦痛です。

質問:

  • ruby において value object を効率よく記述するための手法・ライブラリなどはありますか?