[#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:14126] Re: RCR: getClassFromString method

From: "W. Kent Starr" <elderburn@...>
Date: 2001-04-24 03:03:23 UTC
List: ruby-talk #14126
On Monday 23 April 2001 18:18, Marko Schulz wrote:
> On Tue, Apr 24, 2001 at 03:41:23AM +0900, Phil Tomson wrote:
> > In article <988034673.396094.26164.nullmailer@ev.netlab.zetabits.com>,
> >
> > Yukihiro Matsumoto <matz@zetabits.com> wrote:
> > > [ Should it be encouraged style of programming to retrieve a class
> > >   by its name in a string? ]
> >
> > Well, perhaps it shouldn't be encouraged, I don't know.  I'm not
> > necessarily an OO purist, I suppose.
> >
> > I know that I use this feature in a certain case where I have a class
> > hierarchy like:
> >
> > class Tool
> >   #methods to handle generic stuff common to PC and UNIX
> > end
> >
> > class Tool_PC < Tool
> >   #methods do PC specific stuff
> > end
> >
> > class Tool_UNIX < Tool
> >   #methods do UNIX related stuff
> > end
> >
> > Let's say that early on in the script I figure out what platform I'm
> > running on, say:
> > $PLATFORM = "PC"  ($PLATFORM is global so I can instantiate
> > Tool_"$PLATFORM" objects anywhere later on in the script)
> >
> > Then I can instantiate the correct class based on the value of PLATFORM
> >
> > There are probably other ways to do this, but getting the Class from a
> > String seems pretty straitforward in this case - and it is how I've
> > implemented this.
> >
> > So maybe it's not a good 'pure' thing to allow, but it does have its
> > uses.
>
> I would use a factory-method for this:
>
>   class ToolFactory
>
>      def ToolFactory.getTool
>        case $PLATFORM
>          when "Unix" then Tool_Unix
>          when "PC"   then Tool_PC
>          else             nil
>        end
>      end
>
>   end
>
>
> I would favor passing the platform as a parameter since I don't like
> global variables.

FYI Ruby provides this natively.

ruby -e 'p RUBY_PLATFORM' -> "i586-linux" on my Redhat box.

It will yield similar info on other platforms. The result can be parsed as in

if RUBY_PLATFORM =~ /^(.*)linux$/

etc

Hope tis helps.

Regards,

Kent Starr
elderburn@mindspring.com

In This Thread