attr_reader

attr_readerというメソッドを使うと、インスタンス変数から自動的にgetterが作れます。

class Point
  attr_reader :x, :y
  def initialize(x, y)
    @x = x
    @y = y
  end
  def to_s
    "(#{@x}, #{@y})"
  end
end

a = Point.new(123, 456)
puts a    #=> (123, 456)
puts a.x  #=> 123
puts a.y  #=> 456
a.x = 0   #=> undefined method `x=' for #<Point:0x298eb10 @x=123, @y=456> (NoMethodError)