[#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:14348] Re: case and to_s

From: David Alan Black <dblack@...>
Date: 2001-04-27 19:48:38 UTC
List: ruby-talk #14348
Hello --

On Sat, 28 Apr 2001, Jim Freeze wrote:

> Hi:
>
> I am trying to add a clase to a list depending upon the
> type of the class. Since there are several types of
> classes, I am using a case statement. But, the way I
> am using the case statement causes the << to call
> #to_s, which I don't want it to do.
> Here is the error followed by the code.
> Can someone please explain this behavior to me?
> Tnanks
>
> ./dev.rb
> ./dev.rb:21:in `===': failed to convert Class into String (TypeError)
>         from ./dev.rb:21:in `add_device'
>         from ./dev.rb:32
>         from ./dev.rb:32:in `each'
>         from ./dev.rb:32
>

I don't think it's a matter of #to_s getting called -- but
read on.

[...]

>     case d.type
>       when /DeviceA/
>         @devlist << d
>     end

This is in effect performing the test:

   /DeviceA/ === d.type

but Regexp#=== (case equality method for Regexp) expects a String on
the other end of the line, not a Class.

You could force a regexp-to-string test:

  case d.type.to_s
  (etc.)

Or you could do:

  case d
  when DeviceA
    (etc.)

because then your test is:

  DeviceA === d

and Module#===, to paraphrase the pickaxe (p. 345), will return true
if d is an instance of DeviceA or one of DeviceA's descendants.  (The
descendants part may not be desireable, but you can always use the
string-based test above instead.)


David

-- 
David Alan Black
home: dblack@candle.superlink.net
work: blackdav@shu.edu
Web:  http://pirate.shu.edu/~blackdav

In This Thread