[#10209] Market for XML Web stuff — Matt Sergeant <matt@...>

I'm trying to get a handle on what the size of the market for AxKit would be

15 messages 2001/02/01

[#10238] RFC: RubyVM (long) — Robert Feldt <feldt@...>

Hi,

20 messages 2001/02/01
[#10364] Re: RFC: RubyVM (long) — Mathieu Bouchard <matju@...> 2001/02/05

[#10708] Suggestion for threading model — Stephen White <spwhite@...>

I've been playing around with multi-threading. I notice that there are

11 messages 2001/02/11

[#10853] Re: RubyChangeRequest #U002: new proper name for Hash#indexes, Array#indexes — "Mike Wilson" <wmwilson01@...>

10 messages 2001/02/14

[#11037] to_s and << — "Brent Rowland" <tarod@...>

list = [1, 2.3, 'four', false]

15 messages 2001/02/18

[#11094] Re: Summary: RCR #U002 - proper new name fo r indexes — Aleksi Niemel<aleksi.niemela@...>

> On Mon, 19 Feb 2001, Yukihiro Matsumoto wrote:

12 messages 2001/02/19

[#11131] Re: Summary: RCR #U002 - proper new name fo r indexes — "Conrad Schneiker" <schneik@...>

Robert Feldt wrote:

10 messages 2001/02/19

[#11251] Programming Ruby is now online — Dave Thomas <Dave@...>

36 messages 2001/02/21

[#11469] XML-RPC and KDE — schuerig@... (Michael Schuerig)

23 messages 2001/02/24
[#11490] Re: XML-RPC and KDE — schuerig@... (Michael Schuerig) 2001/02/24

Michael Neumann <neumann@s-direktnet.de> wrote:

[#11491] Negative Reviews for Ruby and Programming Ruby — Jim Freeze <jim@...> 2001/02/24

Hi all:

[#11633] RCR: shortcut for instance variable initialization — Dave Thomas <Dave@...>

13 messages 2001/02/26

[#11652] RE: RCR: shortcut for instance variable initialization — Michael Davis <mdavis@...>

I like it!

14 messages 2001/02/27

[#11700] Starting Once Again — Ron Jeffries <ronjeffries@...>

OK, I'm starting again with Ruby. I'm just assuming that I've

31 messages 2001/02/27
[#11712] RE: Starting Once Again — "Aaron Hinni" <aaron@...> 2001/02/27

> 2. So far I think running under TextPad will be better than running

[#11726] Re: Starting Once Again — Aleksi Niemel<zak@...> 2001/02/28

On Wed, 28 Feb 2001, Aaron Hinni wrote:

[ruby-talk:11242] Re: to_s and <<

From: Jonas Bulow <jonas.bulow@...>
Date: 2001-02-21 15:55:43 UTC
List: ruby-talk #11242
If there is a Ruby FAQ, the answer below should be in it. IMHO...

/j

David Alan Black wrote:
> 
> On Wed, 21 Feb 2001, Kevin Smith wrote:
> 
> > >> So they are doing the same thing, but you call to_str
> > >> when you want to make an implicit assertion that what you
> > >> have is something you should be doing string operations
> > >> with, and not just something that (like everything) can
> > >> be described in text.
> >
> > I just got back from vacation, and wanted to make
> > sure I "got" the conclusion of this thread. To
> > put it in my own words:
> >
> > to_str converts an object into a string
> > representation of that object, which is assumed
> > to be usable as a value for further processing.
> >
> > to_s converts an object into a string description
> > of that object, such as for printing.
> >
> > In some cases (String, Numeric) they are the
> > same. But for a complex object that contains many
> > values there would often be no way for to_str to
> > return anything meaningful. to_s, on the other
> > hand could do a dump like inspect does, or could
> > just return the semantic "name" or "id" of the
> > object.
> >
> > Right?
> 
> Not quite, I think.  In general, to_str isn't defined.  You have to
> define it.
> 
> Here's another pass through it:
> 
> Forget to_s for the moment.
> 
> Certain methods, such as String#<<, expect all of their arguments to
> be strings.  Such methods use the following heuristic to determine
> whether the arguments actually are strings:
> 
>   Is this object of type String?
>      Yes => OK, concatenate it
>      No  => Does the object implement to_str?
>             Yes => OK, concatenate the return value of its to_str method
>             No  => Can't handle it, raise exception
> 
> If you don't actually *write* the to_str methods, then non-String
> objects (except Exceptions, which also have a pre-defined to_str) will
> not have them, and methods like String#<< will not be able to handle
> those objects.
> 
> Now, back to to_s.
> 
> Every object has a to_s method.  You can, if you wish, piggyback on to_s
> to write your to_str for a given class:
> 
>    def to_str
>      to_s
>    end
> 
> (or alias it, or whatever)
> 
> But note that there's no connection other than the connection you create.
> You could just as easily write:
> 
>    def to_str
>      "I am the chosen string representation of this object"
>    end
> 
> Essentially, to_str exists, together with methods which look for it,
> for the purpose of allowing objects, in certain circumstances, to
> masquerade as Strings even if they are not Strings.
> 
> David
> 
> --
> David Alan Black
> home: dblack@candle.superlink.net
> work: blackdav@shu.edu
> Web:  http://pirate.shu.edu/~blackdav

In This Thread

Prev Next