プロパティを読み書き可能にする

1 3
class Test
  attr_accessor :val, :val2
  def initialize(val, val2)
    @val = val
    @val2 = val2
  end
end

test = Test.new(1, 2)
puts test.val
test.val = 3
puts test.val
プロパティはデフォルトの状態ではクラス外から読み書きともに行うことができず、更新、出力用のメソッドを作成する必要がありますが、クラス内に
attr_accessor :プロパティ名

と記入することで、対象のプロパティの読み書きをクラス外から直接行えるようになります。
:プロパティ名は,区切りで読み書き可能にするプロパティを複数にすることもできます。

また、
attr_reader :プロパティ名

で読み込み専用、
attr_writer :プロパティ名

で書き込み専用にすることもできます。