[#52047] ruby-talk separation, part II — " JamesBritt" <james@...>

32 messages 2002/10/01
[#52099] Re: ruby-talk separation, part II — Holden Glova <dsafari@...> 2002/10/01

-----BEGIN PGP SIGNED MESSAGE-----

[#52111] Re: ruby-talk separation, part II — "Bulat Ziganshin" <bulatz@...> 2002/10/01

[#52118] Re: ruby-talk separation, part II — Jim Freeze <jim@...> 2002/10/01

On Tue, Oct 01, 2002 at 09:03:44PM +0900, Bulat Ziganshin wrote:

[#52167] Re: ruby-talk separation, part II — Sean Chittenden <sean@...> 2002/10/01

FreeBSD's got a decent setup. Few additions to the list here:

[#52245] Compiling stuff under Windows: list of problems — "Gavin Sinclair" <gsinclair@...>

I don't want my tortuous experience of trying to get things working under this

13 messages 2002/10/02

[#52259] bugs — "Kontra, Gergely" <kgergely@...>

Hi!

26 messages 2002/10/02
[#52261] Re: bugs — nobu.nokada@... 2002/10/02

Hi,

[#52269] Re: bugs — "Stathy G. Touloumis" <stathy.touloumis@...> 2002/10/02

[#52300] Can soneone tell me what I'm doing wrong... — Jeremy Gregorio <gunvalk@...>

I'm trying to write a little script to rename my mp3s I started with this:

15 messages 2002/10/02

[#52391] CRuby (Was: R) — Nikodemus Siivola <tsiivola@...>

CRuby = subset of Ruby + typed methods + compiler to C

28 messages 2002/10/03
[#52395] Re: CRuby (Was: R) — Anders Bengtsson <ndrsbngtssn@...> 2002/10/03

Nikodemus Siivola wrote:

[#52400] Re: CRuby (Was: R) — Michael Campbell <michael_s_campbell@...> 2002/10/03

[#52402] Re: CRuby (Was: R) — Anders Bengtsson <ndrsbngtssn@...> 2002/10/03

Michael Campbell wrote:

[#52436] Specifying local and external block parameters (that old chestnut) — "Gavin Sinclair" <gsinclair@...>

I've cannibalised discussion from the "Bugs" thread. I hope it is a service to

49 messages 2002/10/04
[#52440] Re: Specifying local and external block parameters (that old chestnut) — matz@... (Yukihiro Matsumoto) 2002/10/04

Hi,

[#52610] Re: Specifying local and external block parameters (that old chestnut) — "MikkelFJ" <mikkelfj-anti-spam@...> 2002/10/06

[#52612] Re: Specifying local and external block parameters (that old chestnut) — ts <decoux@...> 2002/10/06

>>>>> "M" == MikkelFJ <mikkelfj-anti-spam@bigfoot.com> writes:

[#52557] Speed of Ruby/modruby vs PHP — Jim Freeze <jim@...>

Hi:

27 messages 2002/10/05
[#52598] Re: Speed of Ruby/modruby vs PHP — "MikkelFJ" <mikkelfj-anti-spam@...> 2002/10/06

[#52600] Re: Speed of Ruby/modruby vs PHP — Jim Freeze <jim@...> 2002/10/06

On Sun, Oct 06, 2002 at 08:50:48PM +0900, MikkelFJ wrote:

[#52601] Re: Speed of Ruby/modruby vs PHP — MoonWolf <moonwolf@...> 2002/10/06

> How do I configure mod_ruby to run with a cached script?

[#52628] Re: Speed of Ruby/modruby vs PHP — Jim Freeze <jim@...> 2002/10/06

Ok, here is how I understand this.

[#52636] Re: Speed of Ruby/modruby vs PHP — Jim Freeze <jim@...> 2002/10/06

On Sun, Oct 06, 2002 at 05:07:25PM -0400, Jim Freeze wrote:

[#52581] Platform again — Friedrich Dominicus <frido@...>

Well I ask again. On what platforms are you using ruby most of the

36 messages 2002/10/06

[#52602] Another take on ensuring right args to methods — Massimiliano Mirra <list@...>

11 messages 2002/10/06

[#52653] webforms — "Kontra, Gergely" <kgergely@...>

Hi!

19 messages 2002/10/07

[#52669] Things That Newcomers to Ruby Should Know — billtj@... (Bill Tj)

Hi,

59 messages 2002/10/07
[#52805] Re: Things That Newcomers to Ruby Should Know — "Bulat Ziganshin" <bulatz@...> 2002/10/09

Hello Bill,

[#52982] Re: Things That Newcomers to Ruby Should Know — "Kontra, Gergely" <kgergely@...> 2002/10/11

>3) 'x+=b', 'x*=b' and other assignment operators is internally translated

[#52727] block vars (some theory) — "Bulat Ziganshin" <bulatz@...>

Hello all,

37 messages 2002/10/08
[#52728] Re: block vars (some theory) — ts <decoux@...> 2002/10/08

>>>>> "B" == Bulat Ziganshin <bulatz@integ.ru> writes:

[#52806] strange Hash default behaviour — John Tromp <tromp@...>

I wrote a ruby program to read a list of graph edges and produce

16 messages 2002/10/09

[#52823] CGI sessions without cookies? — Stefan Scholl <stefan.scholl@...>

I haven't tried sessions, yet. But I'm curious if you can work

17 messages 2002/10/09

[#52848] Polymorphism, Isomorphism — ptkwt@...1.aracnet.com (Phil Tomson)

Consider this a bit of public pondering...

21 messages 2002/10/09

[#53045] Sorting — warren@... (Warren Brian Noronha)

dear developer,

31 messages 2002/10/12
[#53048] Re: Sorting — dblack@... 2002/10/12

Hello --

[#53082] Re: Sorting — "Mike Campbell" <michael_s_campbell@...> 2002/10/13

> I think almost anything is a better name than CRAN, as that (to me)

[#53083] Re: Sorting — dblack@... 2002/10/13

Hello --

[#53093] Re: Sorting — "Gavin Sinclair" <gsinclair@...> 2002/10/13

[#53109] Re: Sorting — "Mike Campbell" <michael_s_campbell@...> 2002/10/13

> Just a thought: why *not* copy CPAN? It's pretty good, isn't it?

[#53183] final in ruby — "Kontra, Gergely" <kgergely@...>

Hi!

21 messages 2002/10/14

[#53230] Please check my algorithm — Vincent Foley <vinfoley@...>

Hi, I found a nice programming challenge:

12 messages 2002/10/14

[#53278] ruby-dev summary 18458-18504 — TAKAHASHI Masayoshi <maki@...>

Hi all,

16 messages 2002/10/15

[#53285] Psyco — Travis Whitton <whitton@...>

There's an interesting article on IBM developerWorks about a new program

18 messages 2002/10/16

[#53297] Interfaces in Ruby — web2ed@... (Edward Wilson)

Is there a way to write/inforce interfaces in Ruby like one can using

44 messages 2002/10/16
[#53300] Re: Interfaces in Ruby — Chris Gehlker <canyonrat@...> 2002/10/16

[#53334] Re: Interfaces in Ruby — Paul Brannan <pbrannan@...> 2002/10/16

On Wed, Oct 16, 2002 at 01:30:04PM +0900, Chris Gehlker wrote:

[#53409] Re: Interfaces in Ruby — web2ed@... (Edward Wilson) 2002/10/17

>http://rm-f.net/~cout/code/ruby/treasures/RubyTreasures-0.3/lib/hacks/interface.rb.html

[#53470] Re: Interfaces in Ruby — Paul Brannan <pbrannan@...> 2002/10/17

On Thu, Oct 17, 2002 at 01:25:57PM +0900, Edward Wilson wrote:

[#53514] Re: Interfaces in Ruby — Massimiliano Mirra <list@...> 2002/10/18

On Fri, Oct 18, 2002 at 12:16:30AM +0900, Paul Brannan wrote:

[#53359] Things That Newcomers to Ruby Should Know (10/16/02) — William Djaja Tjokroaminata <billtj@...>

Hi,

29 messages 2002/10/16
[#53774] Re: Things That Newcomers to Ruby Should Know (10/16/02) — "Hal E. Fulton" <hal9000@...> 2002/10/22

----- Original Message -----

[#53556] Help wanted with an experimental FAQ facility — Dave Thomas <Dave@...>

24 messages 2002/10/18

[#53626] XMLParser, NQXML, REXML, ... — Armin Roehrl <armin@...>

Hi XML-freaks,

23 messages 2002/10/20
[#53897] Re: XMLParser, NQXML, REXML, ... — Sean Chittenden <sean@...> 2002/10/23

> Hi XML-freaks,

[#53902] Ruby.bah! (was Re: XMLParser, NQXML... and also RAA.succ) — Austin Ziegler <austin@...> 2002/10/23

On Wed, 23 Oct 2002 13:01:59 +0900, Sean Chittenden wrote:

[#53904] Re: Ruby.bah! (was Re: XMLParser, NQXML... and also RAA.succ) — Sean Chittenden <sean@...> 2002/10/23

> > Markus and I are working on rubydoc which is now able to

[#53911] Re: Ruby.bah! (was Re: XMLParser, NQXML... and also RAA.succ) — Austin Ziegler <austin@...> 2002/10/23

On Wed, 23 Oct 2002 14:07:46 +0900, Sean Chittenden wrote:

[#53652] RAA.succ? — ptkwt@...1.aracnet.com (Phil Tomson)

I hope there will be some discussion of RAA.succ (or is it RAA.next) at

78 messages 2002/10/21
[#53654] Re: RAA.succ? — nobu.nokada@... 2002/10/21

Hi,

[#53669] Re: RAA.succ? — "NAKAMURA, Hiroshi" <nahi@...> 2002/10/21

Hi,

[#54022] RAA replaced — "NAKAMURA, Hiroshi" <nahi@...> 2002/10/24

Hi,

[#53914] Re: RAA.succ? (rpkg vs rubynet) — ptkwt@...1.aracnet.com (Phil Tomson) 2002/10/23

In article <20021023041621.GC48080@perrin.int.nxad.com>,

[#53688] functional Ruby equiv to this perl snippet — bobx@... (Bob)

# parses a text file looking for server names and ignoring lines

29 messages 2002/10/21
[#53694] Re: functional Ruby equiv to this perl snippet — Austin Ziegler <austin@...> 2002/10/21

def load_server_list

[#53696] Re: functional Ruby equiv to this perl snippet — Austin Ziegler <austin@...> 2002/10/21

I realised that my first test wasn't good for non-empty but blank

[#53718] Re: functional Ruby equiv to this perl snippet — "Bob X" <bobx@...> 2002/10/21

"Austin Ziegler" <austin@halostatue.ca> wrote in message

[#53703] rb_gc_register_address problem — Paul Brannan <pbrannan@...>

We ran into a problem today with the garbage collector (caused by our

28 messages 2002/10/21

[#53771] Perl multiple match RE in Ruby? — michael libby <x@...>

-----BEGIN PGP SIGNED MESSAGE-----

14 messages 2002/10/22

[#53865] XMLRPC and IP authentication — Daniel Berger <djberge@...>

Hi all,

13 messages 2002/10/22

[#53884] SQLite — "Bob X" <bobx@...>

Anyone working on a Ruby interface for SQLite?

109 messages 2002/10/23
[#53894] Re: SQLite — Austin Ziegler <austin@...> 2002/10/23

On Wed, 23 Oct 2002 10:38:31 +0900, Bob X wrote:

[#54714] Thoughts on Ruby — Enric Lafont <enric@1smart.com> 2002/11/03

Hi all,

[#54724] Re: Thoughts on Ruby — Albert Wagner <alwagner@...> 2002/11/03

On Saturday 02 November 2002 7:57 pm, Enric Lafont wrote:

[#54725] Re: Thoughts on Ruby — Austin Ziegler <austin@...> 2002/11/03

On Sun, 3 Nov 2002 10:57:29 +0900, Enric Lafont wrote:

[#54784] Re: Thoughts on Ruby — Enric Lafont <enric@1smart.com> 2002/11/03

Austin Ziegler wrote:

[#54802] Re: Thoughts on Ruby — Austin Ziegler <austin@...> 2002/11/03

On Mon, 4 Nov 2002 06:44:46 +0900, Enric Lafont wrote:

[#54826] Re: Thoughts on Ruby — "Gavin Sinclair" <gsinclair@...> 2002/11/04

From: "Enric Lafont" <enric@1smart.com>

[#54903] Re: Thoughts on Ruby — Brian Candler <B.Candler@...> 2002/11/05

On Mon, Nov 04, 2002 at 10:02:12PM +0900, Gavin Sinclair wrote:

[#54920] Re: Thoughts on Ruby — Austin Ziegler <austin@...> 2002/11/05

On Tue, 5 Nov 2002 20:18:47 +0900, Brian Candler wrote:

[#54927] Re: Thoughts on Ruby lack of IDE — Brad Cox <bcox@...> 2002/11/05

It is a sign of my hybrid Objective-C background, no doubt, but I

[#54929] Re: Thoughts on Ruby lack of IDE — "Curt Hibbs" <curt@...> 2002/11/05

Brad Cox wrote:

[#55322] FreeRIDE and FUI ?? (was: Re: Thoughts on Ruby lack of IDE) — "Rich" <rich@...> 2002/11/08

> > >

[#55346] Re: FreeRIDE and FUI ?? (was: Re: Thoughts on Ruby lack of IDE) — "Rich Kilmer" <rich@...> 2002/11/09

> -----Original Message-----

[#53953] Re: Things That Newcomers to Ruby Should Know (10/16/02) — "Mills Thomas (app1tam)" <app1tam@...>

But why does it really, REALLY mean that? Was there a reason for doing

13 messages 2002/10/23

[#53957] NODE tree introspection — Simon Cozens <simon@...>

13 messages 2002/10/23

[#53983] Re: Things That Newcomers to Ruby Should Know (10/16/02) — "Mills Thomas (app1tam)" <app1tam@...>

Actually, the way you describe '+=' makes sense to me. It is what I would

17 messages 2002/10/23
[#54001] Re: Things That Newcomers to Ruby Should Know (10/16/02) — William Djaja Tjokroaminata <billtj@...> 2002/10/23

Hi,

[#54012] Re: Things That Newcomers to Ruby Should Know (10/16/02) — dblack@... 2002/10/24

Hi --

[#54111] How come true, false don't support <=> (comparison) operator? — cilibrar@... (Rudi Cilibrasi)

I am wondering if there is a good reason why Ruby does not by default

24 messages 2002/10/25
[#54112] Re: How come true, false don't support <=> (comparison) operator? — dblack@... 2002/10/25

Hello --

[#54139] Re: How come true, false don't support <=> (comparison) operator? — ptkwt@...1.aracnet.com (Phil Tomson) 2002/10/25

In article <Pine.LNX.4.44.0210250754010.2650-100000@candle.superlink.net>,

[#54156] Re: How come true, false don't support <=> (comparison) operator? — dblack@... 2002/10/25

Hi --

[#54239] Snippet request: Ruby Web Server written in under an hour — Phlip <phlipcpp@...>

Rubies:

37 messages 2002/10/28
[#54328] Snippet: Tiny Featureless Ruby Web Server — Phlip <phlipcpp@...> 2002/10/29

Rubies:

[#54339] method-call style (was Re: Snippet: Tiny Featureless Ruby Web Server) — dblack@... 2002/10/29

Hi --

[#54517] Re: method-call style (was Re: Snippet: Tiny Featureless Ruby Web Server) — William Djaja Tjokroaminata <billtj@...> 2002/10/30

Bulat Ziganshin <bulatz@integ.ru> wrote:

[#54519] Re: method-call style (was Re: Snippet: Tiny Featureless Ruby Web Server) — dblack@... 2002/10/30

Hi --

[#54525] Re: method-call style (was Re: Snippet: Tiny Featureless Ruby Web Server) — William Djaja Tjokroaminata <billtj@...> 2002/10/30

dblack@candle.superlink.net wrote:

[#54527] Re: method-call style (was Re: Snippet: Tiny Featureless Ruby Web Server) — dblack@... 2002/10/30

Hi --

[#54280] exerb & fox-problem; converting gui-script to .exe on windows — Armin Roehrl <armin@...>

Hi,

12 messages 2002/10/28

[#54354] good link to read as we contemplate RAA, RAA.succ, et al — Pat Eyler <pate@...>

http://www.onlamp.com/pub/wlg/2225

28 messages 2002/10/29
[#54356] Re: good link to read as we contemplate RAA, RAA.succ, et al — dblack@... 2002/10/29

Hi --

[#54385] Re: good link to read as we contemplate RAA, RAA.succ, et al — " JamesBritt" <james@...> 2002/10/29

> Interesting. Simon (hi Simon!) is probably right that "Definitive

[#54421] want to meet Microsoft .NET guy? — matz@... (Yukihiro Matsumoto)

Hi,

17 messages 2002/10/30

[#54449] feature idea: custom literals — loats205@... (loats205)

wouldn't it be cool if you could define custom literal representations for your

30 messages 2002/10/30
[#54459] Re: feature idea: custom literals — Peter Hickman <peter@...> 2002/10/30

loats205 wrote:

[#54476] Re: feature idea: custom literals — Nikodemus Siivola <tsiivola@...> 2002/10/30

Re: Interfaces in Ruby

From: Sam Griffith <staypufd@...>
Date: 2002-10-17 02:05:27 UTC
List: ruby-talk #53396
> 
> The goals behind an interface or abstract class are:
> 1) Be able to write a function that can take as a parameter any object
>    that inherits from the abstract class (generic programming).
> 2) Be able to easily determine whether a given concrete class has a
>    particular set of features
> 
> In Ruby:
> - #1 is unnecessary in Ruby, because any method can accept any object
>   as a parameter.
> - #2 is the source of an ongoing debate on ruby-talk.

Doesn't the fact that a class mixes in the mixin satisfy goal number 2?  I
mean if you have that mixin, then you are implementing a particular set of
features. In the case of the mixin, you get the mixin's default
implementation and if you'd like you can overload what you want changed for
your particular class. So you know you do implement those features or at
least inherit some default implementation.

The fact that you can inherit default implementations is also something that
makes Ruby's mixin's more powerful than Java's interfaces.  And it is also a
point for weak typing.  The reason you can't have Java interfaces provide
default implementations is the strong typing.

Just a thought!


-- 
Sam Griffith Jr.
email:      staypufd@mac.com
Web site:   http://homepage.mac.com/staypufd/index.html

On 10/16/2002 4:34 PM, in article 20021016173355.B3400@atdesk.com, "Paul
Brannan" <pbrannan@atdesk.com> wrote:

> On Thu, Oct 17, 2002 at 12:45:41AM +0900, Chris Gehlker wrote:
>>> This doesn't make sense to me.  I see interfaces and mixins as
>>> orthogonal concepts; interfaces are used to specify a contract, while
>>> mixins are used to provide additional methods to a class.
>> 
>> It's just that the contract is used as a weak form of multiple
>> inheritance. At least I've never seen it used any other way.
> 
> I think that MI can be used to implmement the contract, but that does
> not mean that the contract is a form of MI.
> 
>> And it is called "Interface Inheritance" because it allows the
>> programmer to add functionality to a class that is orthogonal to the
>> functionality of the main inheritance path. For example if bird
>> inherits from animal and implements flight then a bird 'is a' animal
>> but a bird also 'is a' flier. In Ruby I'd just make flight a mixin.
> 
> Interface inheritance does not add any functionality to a class.
> 
> The goals behind an interface or abstract class are:
> 1) Be able to write a function that can take as a parameter any object
>    that inherits from the abstract class (generic programming).
> 2) Be able to easily determine whether a given concrete class has a
>    particular set of features
> 
> In Ruby:
> - #1 is unnecessary in Ruby, because any method can accept any object
>   as a parameter.
> - #2 is the source of an ongoing debate on ruby-talk.
> 
> If there are other uses for interface inheritance (besides derivatives
> of the above), then I am yet to see them in use.
> 
>>> What is a "class cluster"?  Can you provide an example?
>> 
>> Lets start with the hoary example from C++ of the abstract class shape
>> whose only non-virtual methods are move and resize where resize
>> operates on a circumscribed rectangle and whose only attributes are the
>> coordinates of the bounding rectangle. To do something similar in
>> dynamic languages, you define a class shape with move and resize
>> methods but you make shape's new method private. Then you define
>> concrete constructors such as create_circle_with_radius(r) and
>> create_rectangle_with_sides(length, width) etc. Of course you derive
>> circle, rectangle,  pentagon and friends from shape. You can call
>> draw(boundingBox) in shapes move and resize methods so long as every
>> child of shape defines a draw method.
>> 
>> Shape is called a class cluster because the private constructor
>> guarantees that any variable referencing a shape is actually
>> referencing a member of a concrete subclass. Use it as you would an
>> abstract class.
>> 
>> I hope that helps. It was pretty condensed so ask again if it's
>> confusing. I'll try to provide a better example.
> 
> Yes, it's confusing.  I tried implementing your example in Ruby, but I
> ran into the following problems:
> 1) If resize is a method of Shape, then what parameters does it take?
>    For a Circle, I would expect it to take a radius, but for a
>    Rectangle, I would expect it to take a length and a width.
> 2) I could not figure out how to define a concrete constructor for
>    Rectangle while still making it impossible to accidentally
>    instantiate a Rectangle without going through the factory method
>    (if I can't call Rectangle.new, then neither can the factory
>    method).
> 3) Having a private constructor in Ruby doesn't make sense; this is
>    the purpose of a Module (you can always instantiate a Class, but
>    you can't always instantiate a Module).
> 
> Perhaps if you provide a sample implementation it would be easier to
> see.
> 
> Paul
> 
> 


In This Thread