From: Groleo Marius Date: 2005-11-16T19:01:49+09:00 Subject: Re: Nested classes On 11/16/05, Brian Schr�der wrote: > On 16/11/05, Groleo Marius wrote: > > On 11/16/05, Brian Schr�der wrote: > > > > > > What problem do you want to solve? > > > > > > Is this maybe nearer to you goals: > > > > > > class A > > > class B > > > def fun_b > > > p "B" > > > end > > > end > > > end > > > > > > A::B.new.fun_b > > > > > > cheers, > > > > > > Brian > > > > > > > Consider the case when class B would have more member functions. > > In your example I would have to create a new object for each call to a > > B function. > > OTOH, a solution that I dont like :) could be : > > class A > > class B > > def fun_b > > p "B" > > end > > def other_b > > p "_B" > > end > > end > > end > > b = A::B.new > > b.fun_b > > b.other_b > > > > By the instantion of a new B object in the code from the first post, > > and refering to it, I was searching to keep a hierarchy inside a > > network protocol. > > I couldn't find any hint on google though :( > > > > Maybe you should look at the delegation pattern. That may be > applicable here. But I have not yet understood your use case. Could > you describe it in a bit more detail? Sure. Consider a client script that has to querry a server. The server operate on users/domains of a running qmail. So, I would have a class named Client, with the folowing members: login( user, pass ) logins to the remote administration server domain an instantion of a domain class. OTOH Domain class has X member functions: add( domain_name) adds a new domain remove update So a scenario would look like: c =Client.new #creates a new Domain object c.login( "foo", "bar" ) c.domain.add( "localdomain" ) Now , back to the code ,the attr_reader was the magic word from what Pit posted . Maybe you too observed, but why in ruby this attr_reader : b is different from attr_reader :b ^space ^no space -- Regards, Groleo! # Use "Reply to All" on mailing lists. # touch universe # chmod +x universe # ./universe