[#408634] How do I make lots of classes aware of each other? — "Andrew S." <lists@...>

I'm apparently missing something fundamental in my knowledge of classes

10 messages 2013/07/02

[#408712] Ruby web service with REST support — "Shubhada S." <lists@...>

Hi All,

17 messages 2013/07/05

[#408812] create variables depending on counter — stefan heinrich <lists@...>

Hi community,

21 messages 2013/07/09

[#408854] execute commands within SMTP email code: send content in variables and not actual variables — dJD col <lists@...>

I am trying to send an email using the code below. I am able to send the

9 messages 2013/07/10

[#409031] tap { break } idiom deserves its own Kernel method? — Andy Lowry <lists@...>

I use this idiom from time to time:

13 messages 2013/07/22

[#409072] Link To Masses Of External Data In Openoffice? — "Austin J." <lists@...>

This is what I want to do.

19 messages 2013/07/23
[#409102] Re: Link To Masses Of External Data In Openoffice? — Tamara Temple <tamouse.lists@...> 2013/07/24

[#409103] Re: Link To Masses Of External Data In Openoffice? — "Austin J." <lists@...> 2013/07/25

tamouse m. wrote in post #1116598:

[#409122] Re: Link To Masses Of External Data In Openoffice? — Tamara Temple <tamouse.lists@...> 2013/07/26

[#409142] Re: Link To Masses Of External Data In Openoffice? — "Austin J." <lists@...> 2013/07/26

tamouse m. wrote in post #1116750:

[#409073] class <=> module — Bráulio Bhavamitra <lists@...>

Hello all,

17 messages 2013/07/23

[#409104] Ruby newbie question on Methods (NoMethoderror) — "Crispian A." <lists@...>

I have recently started learning ruby and so I am writing a small little

10 messages 2013/07/25

[#409170] Working through Ch.10 for learning to program 2.0 (Chris Pine) — JD JD <lists@...>

So, I have been working through this book, and have been doing ok up

33 messages 2013/07/28
[#409195] Re: Working through Ch.10 for learning to program 2.0 (Chris Pine) — Harry Kakueki <list.push@...> 2013/07/29

I tried this and came up with a one-liner that seems to do it. It sorts the

[#409258] WATIR - ScriptError popup on IE - Unable to get rid of! — Graeme Halls <lists@...>

I am new to Ruby & Watir, and I am having a nightmare with IE and Script

11 messages 2013/07/31

Re: How do I make lots of classes aware of each other?

From: Stu <stu@...>
Date: 2013-07-02 00:54:03 UTC
List: ruby-talk #408635
You can use send which as you would expect sends messages to an object. You
can build wrapper methods around that as it's a oops primative. The design
pattern you may want to look at (which is just an array of instances) would
be to create an observer class which enumerates through the array depending
on your use case conditions will send the appropriate message to the
objects within the array.

And no you want to avoid using the global variables. There are sort of
scoped class variables with the double at @@foo which remove the need to
create the observer class but it's probably better to avoid those as well.

~Stu



On Mon, Jul 1, 2013 at 7:14 PM, Andrew S. <lists@ruby-forum.com> wrote:

> I'm apparently missing something fundamental in my knowledge of classes
> and how they interoperate.
>
> Let's say I have lots of classes, such as the following:
>
> class Foo
>   def method
>     puts "hi"
>   end
> end
>
> class Bar
>   def method
>     puts "hi"
>   end
> end
>
> And I want to write another class that uses all of those classes.  For
> example:
>
> class Baz
>   foo.method
>   bar.method
> end
>
> What I'm doing right now is initiating all the classes as follows:
>
> $foo = Foo.new
> $bar = Bar.new
>
> So I then have:
>
> class Baz
>   $foo.method
>   $bar.method
> end
>
> But this has to be wrong (?)
>
> I could make them all modules and then include them as needed, but I'd
> still end up with:
>
> class baz
>   include Foo
>   include Bar
>   ...x20ish
>
> Essentially, I have about 20 classes and many of them talk to each
> other, so they have to be aware of each other.  What's the right way to
> structure all of this?
>
> Many thanks in advance!
>
> Andrew
>
> --
> Posted via http://www.ruby-forum.com/.
>
>

In This Thread