From: Harry Ohlsen Date: 2002-07-05T08:42:21+09:00 Subject: Re: self_parent > class Customer > attr_reader :name, :address > def initialize(name, address) > @name = name > @address = Address.new(address,self) > end > def pretty_name > return @name.upcase > end > end > > class Address > def initialize(address, customer) > @address = address > @customer = customer > end > def print_label > puts @customer.pretty_name > puts @address > end > end > > c = Customer.new("John Doe", "111 Test Ln.\n Santa Fe, NM 87501") > c.address.print_label I understand that this is an invented example that may not show all the issues involved, but ... In this case, wouldn't it be just as simple to make print_label a method of the Customer class, rather than the Address class? In fact, I would say that this would be a more logical design, anyway, since one is presumably printing the label in order to send something to that customer, not just to get something to that particular address. Just a thought and, as I say, may not make sense overall, since you're just giving us an example here.