[#7500] Re: how to introduce reference objects into ruby — "Geert Fannes" <Geert.Fannes@...>

The problem with the code you sent is that you have to go through ALL

16 messages 2006/03/10

[#7553] "not" operator used in expression that is a method parameter can generate syntax error — noreply@...

Bugs item #3843, was opened at 2006-03-15 22:09

27 messages 2006/03/16
[#7554] Re: [ ruby-Bugs-3843 ] "not" operator used in expression that is a method parameter can generate syntax error — nobu@... 2006/03/16

Hi,

[#7557] Re: [ ruby-Bugs-3843 ] "not" operator used in expression that is a method parameter can generate syntax error — 卜部昌平 <shyouhei@...> 2006/03/16

Nobu, you are not answering to the question.... You have to unveil why

[#7559] Re: [ ruby-Bugs-3843 ] "not" operator used in expression that is a method parameter can generate syntax error — Yukihiro Matsumoto <matz@...> 2006/03/16

Hi,

[#7560] Rant about keyword logical operators was : (Re: [ ruby-Bugs-3843 ] "not" operator used in expression that is a method parameter can generate syntax error) — "Zev Blut" <rubyzbibd@...> 2006/03/16

Hello,

[#7565] Re: [ ruby-Bugs-3843 ] "not" operator used in expression that is a method parameter can generate syntax error — mathew <meta@...> 2006/03/16

Yukihiro Matsumoto wrote:

[#7566] Re: [ ruby-Bugs-3843 ] "not" operator used in expression that is a method parameter can generate syntax error — "Brian Mitchell" <binary42@...> 2006/03/16

On 3/16/06, mathew <meta@pobox.com> wrote:

[#7567] Re: [ ruby-Bugs-3843 ] "not" operator used in expression that is a method parameter can generate syntax error — mathew <meta@...> 2006/03/16

Brian Mitchell wrote:

[#7568] Re: [ ruby-Bugs-3843 ] "not" operator used in expression that is a method parameter can generate syntax error — "Brian Mitchell" <binary42@...> 2006/03/16

On 3/16/06, mathew <meta@pobox.com> wrote:

[#7614] PATCH: A subclassable Pathname — "Evan Phoenix" <evanwebb@...>

A simply change (changing all references of "Pathname.new" to

19 messages 2006/03/27
[#7618] Re: PATCH: A subclassable Pathname — Tanaka Akira <akr@...17n.org> 2006/03/27

In article <92f5f81d0603262350k796fe48fp2224b9f2108ac507@mail.gmail.com>,

[#7619] Re: PATCH: A subclassable Pathname — "Evan Phoenix" <evan@...> 2006/03/27

Quite right on the .glob and .getwd. I guess the tests don't test hit

[#7620] Re: PATCH: A subclassable Pathname — Tanaka Akira <akr@...17n.org> 2006/03/27

In article <92f5f81d0603270903g2fb02244i6a395be708dfffa3@mail.gmail.com>,

[PATCH] to_str, to_s and StringValue

From: "Gerardo Santana Gez Garrido" <gerardo.santana@...>
Date: 2006-03-25 03:38:02 UTC
List: ruby-core #7601
If I understand correctly, StringValue is a way for writing duck-type
friendly code.

StringValue calls rb_str_to_str(obj) for trying to get a String object
from obj, but looks for to_str only, not to_s. That was a problem for
me when receiving Date objects because Date doesn't have to_str.

Attached is patch for date.rb (lib_date_rb.patch)

But while I was at it, I found only 7 references to to_str vs. 34
references to to_s.

Only these objects implement to_str:

*rb_cNameErrorMesg
rb_cDLCPtr
rb_cString

and all of them have to_s, except rb_cNameErrorMesg. So, what's the
point of looking for to_str in rb_str_to_str?

Attached are the two patches needed (string_c.patch and error_c.patch)
to change this. I'm changing to_str to to_s in string.c and aliasing
to_str to to_s in error.c, for not breaking existing code, just in
case.

Thanks in advance for any clarification if I'm misunderstanding something.
--
Gerardo Santana
"Between individuals, as between nations, respect for the rights of
others is peace" - Don Benito Ju疵ez
http://santanatechnotes.blogspot.com/

Attachments (3)

lib_date_rb.patch (491 Bytes, text/x-patch)
? lib_date_rb.patch
Index: lib/date.rb
===================================================================
RCS file: /src/ruby/lib/date.rb,v
retrieving revision 1.27
diff -u -r1.27 date.rb
--- lib/date.rb	29 Oct 2005 08:03:46 -0000	1.27
+++ lib/date.rb	25 Mar 2006 02:00:11 -0000
@@ -1022,6 +1022,7 @@
   #
   # The format used is YYYY-MM-DD.
   def to_s() strftime end
+  alias_method :to_str, :to_s
 
   # Dump to Marshal format.
   def _dump(limit) Marshal.dump([@ajd, @of, @sg], -1) end
string_c.patch (452 Bytes, text/x-diff)
Index: string.c
===================================================================
RCS file: /src/ruby/string.c,v
retrieving revision 1.245
diff -u -r1.245 string.c
--- string.c	24 Mar 2006 12:14:18 -0000	1.245
+++ string.c	25 Mar 2006 03:04:09 -0000
@@ -227,7 +227,7 @@
 VALUE
 rb_str_to_str(VALUE str)
 {
-    return rb_convert_type(str, T_STRING, "String", "to_str");
+    return rb_convert_type(str, T_STRING, "String", "to_s");
 }
 
 static void
error_c.patch (788 Bytes, text/x-diff)
Index: error.c
===================================================================
RCS file: /src/ruby/error.c,v
retrieving revision 1.121
diff -u -r1.121 error.c
--- error.c	13 Feb 2006 04:53:21 -0000	1.121
+++ error.c	25 Mar 2006 03:27:30 -0000
@@ -975,6 +975,7 @@
     rb_define_singleton_method(rb_cNameErrorMesg, "!", name_err_mesg_new, 3);
     rb_define_method(rb_cNameErrorMesg, "==", name_err_mesg_equal, 1);
     rb_define_method(rb_cNameErrorMesg, "to_str", name_err_mesg_to_str, 0);
+    rb_define_alias(rb_cNameErrorMesg, "to_s", "to_str");
     rb_define_method(rb_cNameErrorMesg, "_dump", name_err_mesg_to_str, 1);
     rb_define_singleton_method(rb_cNameErrorMesg, "_load", name_err_mesg_load, 1);
     rb_eNoMethodError = rb_define_class("NoMethodError", rb_eNameError);

In This Thread

Prev Next