[#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>,

Re: PATCH: A subclassable Pathname

From: Ryan Davis <ryand-ruby@...>
Date: 2006-03-28 10:04:37 UTC
List: ruby-core #7634
On Mar 27, 2006, at 6:50 PM, Mathieu Bouchard wrote:

> Is there any case where you wouldn't want the return-type to be  
> covariant
> with the receiver? Something like a #to_ordinary_pathname() would be
> obvious ;-) but there could be some subtler cases.

I think this is the right question to be asking. For general purpose  
classes, both collections and utilities (read: nearly everything in  
core, most stuff in std), where usage can vary massively based on  
platform or task, I think the answer should be "no, methods should  
generally be covariant."

Covariant return types are safe, so I don't think that is the issue  
at hand. YES, ruby is currently inconsistent with this goal, but I  
don't see that as an argument against pushing towards consistency.

> I think it depends on what kind of enhancements it has over the  
> regular
> PathName. Does it need be a subclass? Can you modify Pathname instead?

I don't see how either of these questions are relevant to his stated  
goal. Modifying a class is a fine solution when you need a simple  
patch that will affect the behavior of a method ONCE. But it breaks  
down as a viable solution quickly. You can't modify multiple times or  
you lose polymorphism. (eg you need multiple subclasses to change  
#to_s in 2+ different ways).

>> I could extend Pathname and add my methods to it, but I've  
>> actually got
>> 2 such classes and I don't particularly want them to share these
>> methods.
>
> Why? Cause I really don't see why.

Multiple subclasses should be a suitable reason.

-----

Assuming that Evan's newly patched Pathname doesn't violate the  
Liskov substitution principal against the original Pathname (and I  
haven't tested it for that), I don't see why this patch doesn't go in.

--
_why: zenspider's most intense moments of solice are immediately  
following the slaughter [...]
_why: that topknot's the only thing keeping a lid on the righteous anger
bricolage: yeah, that and his flagrant obsession with dvorak



In This Thread