On Wednesday 14 January 2004 05:04 am, Mike Williams wrote: > ---- > 1. SettingAttributes > > The obvious way is just to create the instance, and then call > writer-methods to set attributes, e.g. > > class Link > def initialize(url, content) > @url = url > @content = content > end > attr_accessor :url, :content, :link, :target > end > > link = Link.new(url, "here") > link.title = "the whole story" > > ---- I might point out another means, not so well explored, through the use of singletons and runtime typing if required (read 'duck typing' for the less squeamish) as follows: class Link def initialize(url, content) @url = url @content = content end end link = Link.new(url, "here") def link.title; "the whole story"; end One of the interesting things to note about this approach is that class code responsible for assignment is in no way needed, and tests for the available singleton can be easily done through respond_to? (hence the typing). -- T.