[#13775] Problems with racc rule definitions — Michael Neumann <neumann@...>

15 messages 2001/04/17
[#13795] Re: Problems with racc rule definitions — Minero Aoki <aamine@...> 2001/04/18

Hi,

[#13940] From Guido, with love... — Dave Thomas <Dave@...>

52 messages 2001/04/20

[#13953] regexp — James Ponder <james@...>

Hi, I'm new to ruby and am coming from a perl background - therefore I

19 messages 2001/04/21

[#14033] Distributed Ruby and heterogeneous networks — harryo@... (Harry Ohlsen)

I wrote my first small distributed application yesterday and it worked

15 messages 2001/04/22

[#14040] RCR: getClassFromString method — ptkwt@...1.aracnet.com (Phil Tomson)

It would be nice to have a function that returns a class type given a

20 messages 2001/04/22

[#14130] Re: Ruby mascot proposal — "Conrad Schneiker" <schneik@...>

Guy N. Hurst wrote:

21 messages 2001/04/24
[#14148] Re: Ruby mascot proposal — Stephen White <spwhite@...> 2001/04/24

On Tue, 24 Apr 2001, Conrad Schneiker wrote:

[#14188] Re: Ruby mascot proposal — matz@... (Yukihiro Matsumoto) 2001/04/25

Hi,

[#14193] Re: Ruby mascot proposal — "W. Kent Starr" <elderburn@...> 2001/04/25

On Tuesday 24 April 2001 23:02, Yukihiro Matsumoto wrote:

[#14138] Re: python on the smalltalk VM — Conrad Schneiker <schneik@...>

FYI: Thought this might be of interest to the JRuby and Ruby/GUI folks.

27 messages 2001/04/24
[#14153] Re: python on the smalltalk VM — Andrew Kuchling <akuchlin@...> 2001/04/24

Conrad Schneiker <schneik@austin.ibm.com> writes:

[#14154] array#flatten! question — Jim Freeze <jim@...> 2001/04/24

Hello.

[#14159] Can I insert into an array — Jim Freeze <jim@...> 2001/04/24

Ok, this may be a dumb question, but, is it possible to insert into an

[#14162] Re: Can I insert into an array — Dave Thomas <Dave@...> 2001/04/24

Jim Freeze <jim@freeze.org> writes:

[#14289] RCR: Array#insert — Shugo Maeda <shugo@...> 2001/04/27

At Wed, 25 Apr 2001 01:28:36 +0900,

[#14221] An or in an if. — Tim Pettman <tjp@...>

Hi there,

18 messages 2001/04/25

[#14267] Re: Ruby mascot proposal — "Conrad Schneiker" <schneik@...>

Danny van Bruggen,

16 messages 2001/04/26

[#14452] How to do it the Ruby-way 3 — Stefan Matthias Aust <sma@3plus4.de>

First a question: Why is

21 messages 2001/04/30

[ruby-talk:14117] Re: OO

From: chad fowler <chadfowler@...>
Date: 2001-04-23 23:16:33 UTC
List: ruby-talk #14117
-- James Ponder <james@squish.net> wrote:
> On Mon, Apr 23, 2001 at 09:42:42AM +0900, chad
> fowler wrote:
> > What kind of data will be stored in the "Options"
> > object?  What do the individual classes need from
> it? 
> > It sounds like you are creating a static
> configuration
> > mechanism.  Another coupling-related fear that I
> would
> > have is that, when you pass a full "Options" into
> an
> > object, you are probably giving that object access
> to
> > any of the data in "Options".  So, you're creating
> > possible dependencies between every object that
> uses
> > "Options" and every possible "Option".
> 
> I think I understand what you are saying, but I
> don't see how I can achieve
> this in practice.  For example, my options file
> might contain "debug=1",
> and I don't want to have to alter my classes each
> time I come up with a new
> option that several classes need to know about.
> 

Again, this is all dependent on what the "Options"
are, but with your example, you've provided a little
window into what you're trying to do.  My answer for
the "debug=1" example would be that each class
shouldn't inherently know what debugging behaviour is.
 I would centralize the debugging in a class that can
decide independently how to deal with things that ask
to be debugged.  I'm guessing that "debug=1" will
cause level 1 verbosity (however you have that
defined) logging in your application to happen.  In
that case, I would probably define a logger object
that could handle both the implementation of what it
means to actually log something and the decision of
*when* to log something (i.e. "if(debug=1)
logDebugMessage(myMessage)").

> I've been discussing this with some Java people, and
> they think I should
> be using a "singleton" - although this word appears
> to be used in Ruby as
> a way of adding methods to objects I've not seen it
> used in the same way
> that Java people use it.  Apparently in Java you do
> this by creating
> a private constructor (so that nobody can
> instantiate the class) and have a
> class variable that holds one instance of the
> object.  The object is normally
> instantiated in the class init code or in a
> "unless(obj) obj = MyClass.new()"
> way within each class method.

This is the singleton design pattern.  You might find
http://www.c2.com/cgi/wiki?SingletonPattern to be
helpful as a starting point.

> 
> > The solution I would propose is that you keep
> > "Options" outside of any objects that don't
> > specifically need it.  Then, from a controller
> object
> > (probably the same one that actually instantiates
> each
> > object), you can read "Options" and pass any
> required
> > data to the objects that need it.  With this
> approach,
> > "Options" doesn't know about your objects, and
> your
> > objects don't know about "Options".
> 
> To me, if I add an option that is applicable to one
> particular class, it
> seems bad that I have to alter the controller code,
> the class code
> AND the constructor.
> 

It could be possible to reflectively automate a lot of
this so you wouldn't have to modify each of these
classes.  It's also possible that a certain amount of
refactoring could cut down on the number of global
options your application requires.

> Or am I still thinking about this in the wrong way?
> 

Not wrong.  Just different (from me). 

later,
Chad

__________________________________________________
Do You Yahoo!?
Yahoo! Auctions - buy the things you want at great prices
http://auctions.yahoo.com/

In This Thread