クラスを宣言するときに Struct.new を継承する、というやり方がある。

いわゆる「特異クラス」?

c:\>irb
irb(main):001:0> class Hoge < Struct.new(:a,:b); end
=> nil
irb(main):002:0> h = Hoge.new
=> #<struct Hoge a=nil, b=nil>
irb(main):003:0> h.a = 10
=> 10
irb(main):004:0> h.b = 20
=> 20
irb(main):005:0> h
=> #<struct Hoge a=10, b=20>
irb(main):006:0>

attr_accessor よりお手軽?