From: Jim Freeze Date: 2002-05-22T21:12:37+09:00 Subject: Re: Accessors how to create a new one ? On Wed, May 22, 2002 at 08:59:42PM +0900, Henry Ghusakovsky wrote: > Hi everybody, > > Is there any possibility to create my own accessor like standard accessors > Sure. Here is one that I did a while back: class Module def attr_scale_reader(*attrs) attrs.each { |attr| class_eval %{ def #{attr}_d @#{attr}/@scale end } } end#attr_scale_reader end This works a little different than the standard attr_reader, in that it creates a function name that is different than the attrs argument. For your hash_reader, you could write class Module def hash_reader(*attrs) attrs.each { |attr| class_eval %{ def #{attr} @data['#{attr}'] end } } end#hash_reader end # warning, code is not tested I'm sure that you can create the writer and accessor functions from this example. Cheers Jim > sample > > ... > hash_accessor :attr1 > ... > > should create methods > > def attr1 > return @data["attr1"] > end > > def attr1=(value) > @data["attr1"]=value > end > > is there any clue ? > > Best regards, > > Henry Ghusakovsky > mail: H.Ghusakovsky(&)sam-solutions.net > ICQ# 34523185 > -- Jim Freeze If only I had something clever to say for my comment... ~