[#227503] open-uril ECONNREFUSED problem — Cyrus Ghalambor <cyrusg@...>

I'm working on a simple scraping tool and the open() method has suddenly

12 messages 2006/12/01

[#227527] Gateway is malfunctioning — "Trans" <transfire@...>

Someone recently mentioned missing posts. I just did a comparsion of

31 messages 2006/12/01

[#227574] Turtle Graphics (#104) — Ruby Quiz <james@...>

The three rules of Ruby Quiz:

37 messages 2006/12/01
[#227598] Re: [QUIZ] Turtle Graphics (#104) — "Harold Hausman" <hhausman@...> 2006/12/01

On 12/1/06, Ruby Quiz <james@grayproductions.net> wrote:

[#227606] Re: [QUIZ] Turtle Graphics (#104) — James Edward Gray II <james@...> 2006/12/01

On Dec 1, 2006, at 9:42 AM, Harold Hausman wrote:

[#227620] Re: [QUIZ] Turtle Graphics (#104) — "Harold Hausman" <hhausman@...> 2006/12/01

On 12/2/06, James Edward Gray II <james@grayproductions.net> wrote:

[#227661] Re: [QUIZ] Turtle Graphics (#104) — Daniel Martin <martin@...> 2006/12/01

"Harold Hausman" <hhausman@gmail.com> writes:

[#227670] Re: [QUIZ] Turtle Graphics (#104) — James Edward Gray II <james@...> 2006/12/01

On Dec 1, 2006, at 3:44 PM, Daniel Martin wrote:

[#227682] Re: tk.rb warning in Turtle Graphics (#104) — Edwin Fine <efine145-nospam01@...> 2006/12/02

/usr/local/lib/ruby/site_ruby/1.8/tk.rb:1187: warning: instance variable

[#227713] Re: tk.rb warning in Turtle Graphics (#104) — Morton Goldberg <m_goldberg@...> 2006/12/02

On Dec 1, 2006, at 7:22 PM, Edwin Fine wrote:

[#227630] Simple iteration in a function problem — Blake Miller <blakeage@...>

i'm trying to do this, and I'm stuck

34 messages 2006/12/01

[#227702] calculations on lists of numbers — ara.t.howard@...

38 messages 2006/12/02

[#227739] openssl error - ubuntu — "Chad" <carimura@...>

Help!

27 messages 2006/12/02
[#227741] Re: openssl error - ubuntu — Jose francisco Gonzalez carmona <pgonzalez@...> 2006/12/02

[#227787] Re: openssl error - ubuntu — "Chad" <carimura@...> 2006/12/02

Absolutely... I'm not a linux expert though, but I have a feeling

[#227822] Re: openssl error - ubuntu — "Chad" <carimura@...> 2006/12/02

I finally figured it out.

[#305614] Re: openssl error - ubuntu — James George <james@...> 2008/06/19

Thanks a lot pal, it worked perfectly for me too. I had the same openssl

[#305645] Re: openssl error - ubuntu — Marc Heiler <shevegen@...> 2008/06/19

So much for distribution's package managers making your life easier,

[#227801] comma separating output from array.to_s — "jansenh" <henning.jansen@...>

hi comp.lang.ruby

18 messages 2006/12/02

[#227819] Factory pattern, abstract base class — "Daniel Berger" <djberg96@...>

Hi all,

16 messages 2006/12/02

[#227839] Why does a test fail when I predicted it's exception class? — "Richard" <RichardDummyMailbox58407@...>

Hi,

10 messages 2006/12/03

[#227857] File.size() returning negative for large files ???? — "Greg Hauptmann" <greg.hauptmann.ruby@...>

Hi,

13 messages 2006/12/03
[#227859] Re: File.size() returning negative for large files ???? — Damjan Rems <d_rems@...> 2006/12/03

Greg Hauptmann wrote:

[#227860] I'm a new member — "Quỳnh Trần" <quynh_khanh2002@...>

Hi evrybody!

16 messages 2006/12/03

[#227873] Simple and stuppid bug (can anyone find it?) — "paul" <pjvleeuwen@...>

Hi all,

13 messages 2006/12/03

[#227979] method overloading like Java? — Daniel Finnie <danfinnie@...>

In Java, you could write the following code:

12 messages 2006/12/04

[#228031] Question about Ruby philosophy — Zouplaz <user@...>

Hello, when I compare Ruby to Java there is something I don't understand .

46 messages 2006/12/04
[#228134] Re: Question about Ruby philosophy — "Max Muermann" <ruby@...> 2006/12/05

On 12/4/06, Zouplaz <user@domain.invalid> wrote:

[#228047] replace delimiter in unicode encdoded file — "ciapecki" <ciapecki@...>

Is there a way in ruby to:

20 messages 2006/12/04

[#228127] How do I catch a missing method on a passed block? — "J2M" <james2mccarthy@...>

I would like to invoke method_missing on baz in this code;

34 messages 2006/12/04
[#228211] Re: How do I catch a missing method on a passed block? — Daniel Schierbeck <daniel.schierbeck@...> 2006/12/05

On Tue, 2006-12-05 at 08:04 +0900, J2M wrote:

[#228213] Re: How do I catch a missing method on a passed block? — Logan Capaldo <logancapaldo@...> 2006/12/05

On Tue, Dec 05, 2006 at 11:54:06PM +0900, Daniel Schierbeck wrote:

[#228266] md5 function in Ruby — Denys Yakhnenko <dyakhnenko@...>

Hello all:

14 messages 2006/12/05

[#228273] Lisp comprehensions => SQL — "Victor \"Zverok\" Shepelev" <vshepelev@...>

Hi all.

24 messages 2006/12/05

[#228352] Newbie: working with a text file and converting to xml — Adam Teale <ateale@...>

hi Guys,

12 messages 2006/12/06

[#228379] Calling super in overwritten methods — Joerg Diekmann <joergd@...>

Hi - not sure if this is possible - but it feels like it could be with

12 messages 2006/12/06

[#228380] join_with — "Martin DeMello" <martindemello@...>

While golfing with the hex_ip thread, I realised that map takes no

33 messages 2006/12/06
[#229469] map taking an argument (was: Re: join_with) — dblack@... 2006/12/13

Hi --

[#228422] invasive parameters as method mode variables — "Trans" <transfire@...>

Working on a method where I would like one part of it's operations to

15 messages 2006/12/06

[#228605] Show your support for Rubinius! — "Sam Smoot" <ssmoot@...>

(I hope you don't mind a bit of cross-posting, but seeing as how the

17 messages 2006/12/07
[#228613] Re: Show your support for Rubinius! — "Tim Pease" <tim.pease@...> 2006/12/07

On 12/7/06, Sam Smoot <ssmoot@gmail.com> wrote:

[#228618] Re: Show your support for Rubinius! — "Brian Mitchell" <binary42@...> 2006/12/07

On 12/7/06, Tim Pease <tim.pease@gmail.com> wrote:

[#228620] Re: Show your support for Rubinius! — "Wilson Bilkovich" <wilsonb@...> 2006/12/07

On 12/7/06, Brian Mitchell <binary42@gmail.com> wrote:

[#228622] Re: Show your support for Rubinius! — benjohn@... 2006/12/07

I'd like to know more about Rubinius, but all the info I've got on it

[#228628] Array changing after concat function — WKC CCC <wai-kee.chung@...>

Can someone shed some light on this problem. In the example, I am

17 messages 2006/12/07

[#228716] Am I missing something about BER-compressed integer? — "Francis Cianfrocca" <garbagecat10@...>

All:

12 messages 2006/12/08

[#228738] Tournament Matchups (#105) — Ruby Quiz <james@...>

The three rules of Ruby Quiz:

23 messages 2006/12/08

[#228875] Ruby Core + Php FrontEnd (open) — Flaab Mrlinux <flaab_mrlinux@...>

Good afternoon everyone.

13 messages 2006/12/09

[#228945] format problem — chen li <chen_li3@...>

Hi all,

23 messages 2006/12/10

[#229119] else inside rescue is useless? — "cap" <capitain@...>

http://www.awprofessional.com/bookstore/product.asp?isbn=0672328844&rl=1

20 messages 2006/12/11

[#229122] Newbie questions — Dav Jones <kakaze@...21.com>

Hello, I'm quite new to this whole Ruby malarky and I'm having some real

15 messages 2006/12/11

[#229244] Re: Ruby for Kids? — "Jeff_M" <JeffMcGrath@...>

18 messages 2006/12/12

[#229350] C => Ruby plus TCP serialization using Marshal.dump/load — "Nathan Baker" <nathanb@...>

Hey,

12 messages 2006/12/12

[#229351] - Bible 1.0.1 - A bible reference parsing and text retrieval tool — "Justin Bailey" <jgbailey@...>

All,

13 messages 2006/12/12

[#229397] Restricted capture in Regexp — benjohn@...

Is there a regexp feature that lets me require something to be present

16 messages 2006/12/13

[#229398] How to improve my Ruby skills ? — Zouplaz <user@...>

Hello there... Like many others I've discovered Ruby when I started

11 messages 2006/12/13

[#229467] Net::Ldap question — Eduardo Y瘻ez Parareda <eduardo.yanezNOSPAM@...>

Hello, I'm trying this plugin in a rails app and think I need some help.

13 messages 2006/12/13
[#229486] Re: Net::Ldap question — Eduardo Y瘻ez Parareda <eduardo.yanezNOSPAM@...> 2006/12/13

Hehe, sorry again. I've reading documentation of this library and already know

[#229514] Re: Net::Ldap question — "Francis Cianfrocca" <garbagecat10@...> 2006/12/13

On 12/13/06, Eduardo Y瘻ez Parareda <eduardo.yanezNOSPAM@nospamgmail.com> wrote:

[#229511] Random idea - private, blocks, constants — "Daniel Berger" <djberg96@...>

Hi all,

14 messages 2006/12/13

[#229598] CTI Corporativo auto responses — "Daniel Berger" <djberg96@...>

All,

14 messages 2006/12/14

[#229600] Swap contents in two files — Christopher Latif <christopherl@...>

I have two files, I want to swap the contents of the files in my

17 messages 2006/12/14

[#229763] Chess960 (#106) — Ruby Quiz <james@...>

The three rules of Ruby Quiz:

33 messages 2006/12/15

[#229883] ZenTest autotest problems — Zouplaz <user@...>

Hello, I have big troubles using the latest autotest version (3.4.2)

11 messages 2006/12/16
[#229985] Re: ZenTest autotest problems — Eric Hodel <drbrain@...7.net> 2006/12/17

On Dec 16, 2006, at 01:40, Zouplaz wrote:

[#229990] Re: ZenTest autotest problems — Zouplaz <user@...> 2006/12/17

le 17/12/2006 07:43, Eric Hodel nous a dit:

[#230118] Re: ZenTest autotest problems — Eric Hodel <drbrain@...7.net> 2006/12/18

On Dec 17, 2006, at 24:55, Zouplaz wrote:

[#229906] Just some Ruby language ideas, comments wanted. — Daniel Finnie <danfinnie@...>

My first Ruby language idea is simple. Instead of having every method

13 messages 2006/12/16

[#229917] does Ruby generate WINDOWS and dialog boxes? — "Ken Laninga" <personal@...>

I just heard about Ruby and it looks fascinating. I see lots of code being

60 messages 2006/12/16
[#229922] Re: does Ruby generate WINDOWS and dialog boxes? — David Vallner <david@...> 2006/12/16

Ken Laninga wrote:

[#229939] Re: does Ruby generate WINDOWS and dialog boxes? — Joel VanderWerf <vjoel@...> 2006/12/16

David Vallner wrote:

[#229961] Re: does Ruby generate WINDOWS and dialog boxes? — Suraj Kurapati <snk@...> 2006/12/17

Joel VanderWerf wrote:

[#229967] Re: does Ruby generate WINDOWS and dialog boxes? — "Richard" <RichardDummyMailbox58407@...> 2006/12/17

[#229968] Re: does Ruby generate WINDOWS and dialog boxes? — David Vallner <david@...> 2006/12/17

Richard wrote:

[#229973] Re: does Ruby generate WINDOWS and dialog boxes? — "Richard" <RichardDummyMailbox58407@...> 2006/12/17

[#230007] Re: does Ruby generate WINDOWS and dialog boxes? — David Vallner <david@...> 2006/12/17

Richard wrote:

[#230065] Re: does Ruby generate WINDOWS and dialog boxes? — "Richard" <RichardDummyMailbox58407@...> 2006/12/17

> Odds are it Just Won't unless you only

[#230073] Re: does Ruby generate WINDOWS and dialog boxes? — David Vallner <david@...> 2006/12/17

Richard wrote:

[#230127] Re: does Ruby generate WINDOWS and dialog boxes? — "Richard" <RichardDummyMailbox58407@...> 2006/12/18

Disclaimer: All my assertions about Ruby, Rails, WEBrick and MySQL are

[#230008] Grabbing data off a webpage — Bil Kleb <Bil.Kleb@...>

OK, so I haven't done this in years.

12 messages 2006/12/17

[#230011] Ruby IDE — <adaworks@...>

I am new to Ruby, but I have used a lot of other

24 messages 2006/12/17

[#230089] Question regarding threads and I/O — "Michael W. Ryder" <_mwryder@...>

I am a veteran programmer but still am trying to learn Ruby. In the

14 messages 2006/12/17
[#230094] Re: Question regarding threads and I/O — Logan Capaldo <logancapaldo@...> 2006/12/18

On Mon, Dec 18, 2006 at 08:55:10AM +0900, Michael W. Ryder wrote:

[#230147] Problem installing Ruby/Tk — Christopher Latif <christopherl@...>

Installed Linux

14 messages 2006/12/18

[#230256] where have all the experienced users gone? — "Trans" <transfire@...>

seems like there's been a steady drop off in experienced ruby users on

63 messages 2006/12/19
[#230284] Re: [OT] where have all the experienced users gone? — Eric Hodel <drbrain@...7.net> 2006/12/19

On Dec 18, 2006, at 18:50, Trans wrote:

[#230327] Re: [OT] where have all the experienced users gone? — Jeremy Wells <jwells@...> 2006/12/19

Eric Hodel wrote:

[#230332] Re: [OT] where have all the experienced users gone? — "Robert Dober" <robert.dober@...> 2006/12/19

On 12/19/06, Jeremy Wells <jwells@servalsystems.co.uk> wrote:

[#230350] Re: [OT] where have all the experienced users gone? — "Jeremy McAnally" <jeremymcanally@...> 2006/12/19

I think it's also important that we all realize that we use mailing

[#230423] Re: [OT] where have all the experienced users gone? — James Edward Gray II <james@...> 2006/12/19

On Dec 19, 2006, at 7:52 AM, Jeremy McAnally wrote:

[#230322] Re: where have all the experienced users gone? — "Robert Dober" <robert.dober@...> 2006/12/19

On 12/19/06, Trans <transfire@gmail.com> wrote:

[#230507] Re: where have all the experienced users gone? — "Simon Strandgaard" <neoneye@...> 2006/12/20

On 12/19/06, Robert Dober <robert.dober@gmail.com> wrote:

[#230514] Re: where have all the experienced users gone? — "Robert Dober" <robert.dober@...> 2006/12/20

On 12/20/06, Simon Strandgaard <neoneye@gmail.com> wrote:

[#230295] string of strings... — Josselin <josselin@...>

I got an array of id's :

13 messages 2006/12/19

[#230328] compare two objects without take its ID in consideration — Lobosque Lucas <floyd_u2@...>

Is there a way to compare two objects without take its ID in

17 messages 2006/12/19

[#230450] ruby gotchas — Mark Guzman <segfault@...>

I've written up some ruby gotchas that have come up while using ruby.

16 messages 2006/12/19

[#230548] tricky sort for happy visitors of Paris — Josselin <josselin@...>

all happy visitors of Paris know about the 'arrondissement', an

20 messages 2006/12/20

[#230588] openssl on Red Hat not installed — Hueen Hueen <hueen@...>

So I'm one of the unlucky ones that don't have openssl properly

17 messages 2006/12/20

[#230602] Regexp Question: Checking for [joe][/joe] pairs — Joe Peck <joe@...>

Hey, I've got some text in @x and want there to be at least 1 and at

21 messages 2006/12/20

[#230648] Who's maintaining log4r? — jeffz_2002@...

Does anyone know who's maintaining the log4r project? The website at

29 messages 2006/12/20

[#230650] Searching Stings with Arrays? — Phil Cooperking <phil@...>

Hi, I've been having a little problem with this. most of my ruby is from

14 messages 2006/12/20

[#230755] Remove Ruby 1.8.5? — Christopher Latif <christopherl@...>

How do I remove Ruby 1.8.5 from linux? I have built it from source.

20 messages 2006/12/21
[#230874] Re: Remove Ruby 1.8.5? — David Vallner <david@...> 2006/12/21

M. Edward (Ed) Borasky wrote:

[#230879] Re: Remove Ruby 1.8.5? — Vincent Fourmond <vincent.fourmond@9online.fr> 2006/12/21

David Vallner wrote:

[#230792] Method named ***(other) — Julien Gaugaz <gaugaz@...3s.de>

Hi!

15 messages 2006/12/21
[#230799] Re: Method named ***(other) — "Vidar Hokstad" <vidar.hokstad@...> 2006/12/21

[#230829] Ruby's Trac Alternative — Bil Kleb <Bil.Kleb@...>

So I'm trying to use Trac for our FUN3D development,

27 messages 2006/12/21

[#230853] External Ruby Script in HTML — Naked Sushi <runfaster@...>

This probably has a simple answer, but I don't know it.

17 messages 2006/12/21

[#230869] Ruby replacement for ab? — Mat Schaffer <schapht@...>

So I've been hunting for a way to stress test a web application and

17 messages 2006/12/21

[#230983] Merry (slightly early) Christmas! Mr. Neighborly's Humble Little Ruby Book is free! — "Jeremy McAnally" <jeremymcanally@...>

Hello all,

15 messages 2006/12/22

[#231056] Question: Downloading files with open(-uri)? — Mariano Kamp <mariano.kamp@...>

Hi,

16 messages 2006/12/23

[#231072] Help with a ruby idiom — Tim Waters <timgwaters@...>

From the O'Reilly Cookbook there is code that keeps call functions in a

16 messages 2006/12/23

[#231181] Hpricot ri and rdoc documentation — "bbiker" <renard@...>

I have gem installed Hpricot-0.4 (mswin32) but no ri documentation or

15 messages 2006/12/24

[#231198] A problem about replacing a string in a template. — Kuang Dong <kuangdong@...>

File 1: test.tpl

13 messages 2006/12/25

[#231277] Newby - how to round up floating point number? — Dermot Moynihan <der_moyn@...>

Hi guys

14 messages 2006/12/26

[#231303] Hash with two identical keys? — "Trans" <transfire@...>

>From Facets' multiton.rb (which is primarily Floran Franks' work), I'm

15 messages 2006/12/26

[#231341] Peculiar Behavior for a Newby to Undertstand — Charles A Gray <smgspices@...>

I created a class for prime numbers as so:

14 messages 2006/12/27

[#231377] How to do TDD in Ruby? — mekondelta <Chris.Melikian@...>

15 messages 2006/12/27

[#231385] newbie with a weird technical problem (@ least I think it's weird) — "will" <will.graduate@...>

Yep, as the post title implies, I'm a newbie. Being a pragmatic newbie

10 messages 2006/12/27

[#231436] Handling of arbitrary length arrays in arguments to printf builtin — Nick Pavey <nick@...>

Hi Folks,

13 messages 2006/12/27
[#231437] Re: Handling of arbitrary length arrays in arguments to printf builtin — Timothy Hunter <TimHunter@...> 2006/12/27

Nick Pavey wrote:

[#231462] Higher-Order Procedures Tutorial (long) — "Nate Murray" <jashmenn@...>

Hey Guys,

16 messages 2006/12/28

[#231494] Strip is not stripping trailing whitespace — Taylor Strait <taylorstrait@...>

I have files with city names which have one or two trailing whitespaces:

14 messages 2006/12/28

[#231595] What we have here is a retard pretending to be a computer scientist — atbusbook@...

http://www.iam.unibe.ch/~scg/Archive/Papers/Scha04bOOEncapsulation.pdf

14 messages 2006/12/29
[#231602] Paper on strong Object Oriented Encapsulation (Was: some subject with needless insults) — Eric Hodel <drbrain@...7.net> 2006/12/29

On Dec 28, 2006, at 16:05, atbusbook@aol.com wrote:

[#231610] Re: Paper on strong Object Oriented Encapsulation (Was: some subject with needless insults) — "Jeff" <cohen.jeff@...> 2006/12/29

Eric Hodel wrote:

[#231686] how to properly format data when using TCPSocket.send() — Nathan Taylor <onebitcipher@...>

It would be greatly appreciated if someone would clue me in to what I am

12 messages 2006/12/29

[#231726] Methods validating their arguments: good or bad? — Michael Judge <mjudge@...>

15 messages 2006/12/29

[#231763] how to lex javascript for an assert_js system? — Phlip <phlip2005@...>

Ruboids:

14 messages 2006/12/30

[#231785] Proposal to create a new mailing list — Daniel Schierbeck <daniel.schierbeck@...>

Hello fellow Rubyphilics!

31 messages 2006/12/30

[#231801] Little Things — "Trans" <transfire@...>

I was a bit surprised about Matz mention of the little things in his

164 messages 2006/12/30
[#231848] Re: Little Things — Daniel Schierbeck <daniel.schierbeck@...> 2006/12/30

I mostly agree, with some of the additions of course being more

[#231882] Re: Little Things — dblack@... 2006/12/31

Hi --

[#231888] Re: Little Things — "Trans" <transfire@...> 2006/12/31

[#231893] Re: Little Things — Devin Mullins <twifkak@...> 2006/12/31

Trans wrote:

[#231898] Re: Little Things — "Rob Sanheim" <rsanheim@...> 2006/12/31

On 12/31/06, Devin Mullins <twifkak@comcast.net> wrote:

[#232438] Re: Little Things — Paulo Kh <paulo.koch@...> 2007/01/03

On 2006/12/31, at 07:38, Rob Sanheim wrote:

[#232439] Re: Little Things — ara.t.howard@... 2007/01/03

On Thu, 4 Jan 2007, [ISO-8859-1] Paulo Kh wrote:

[#232449] Re: Little Things — "Trans" <transfire@...> 2007/01/03

[#232451] Re: Little Things — ara.t.howard@... 2007/01/03

On Thu, 4 Jan 2007, Trans wrote:

[#232496] Re: Little Things — "Trans" <transfire@...> 2007/01/04

[#232501] Re: Little Things — ara.t.howard@... 2007/01/04

On Thu, 4 Jan 2007, Trans wrote:

[#232502] Re: Little Things — dblack@... 2007/01/04

Hi --

[#232503] Re: Little Things — ara.t.howard@... 2007/01/04

On Thu, 4 Jan 2007 dblack@wobblini.net wrote:

[#232544] Re: Little Things — Devin Mullins <twifkak@...> 2007/01/04

ara.t.howard@noaa.gov wrote:

[#232547] Re: Little Things — "Trans" <transfire@...> 2007/01/04

[#232571] Re: Little Things — Devin Mullins <twifkak@...> 2007/01/04

Trans wrote:

[#232587] Re: Little Things — "Trans" <transfire@...> 2007/01/04

[#232602] Re: Little Things — ara.t.howard@... 2007/01/04

On Thu, 4 Jan 2007, Trans wrote:

[#232615] Re: Little Things — "Trans" <transfire@...> 2007/01/04

[#232616] Re: Little Things — dblack@... 2007/01/04

Hi --

[#232619] Re: Little Things — ara.t.howard@... 2007/01/04

On Fri, 5 Jan 2007 dblack@wobblini.net wrote:

[#232626] Re: Little Things — dblack@... 2007/01/04

Hi --

[#232631] Re: Little Things — ara.t.howard@... 2007/01/04

On Fri, 5 Jan 2007 dblack@wobblini.net wrote:

[#232638] Re: Little Things — "Chris Carter" <cdcarter@...> 2007/01/04

On 1/4/07, ara.t.howard@noaa.gov <ara.t.howard@noaa.gov> wrote:

[#232650] Pervasive Methods [was: Little Things] — "Trans" <transfire@...> 2007/01/04

[#232652] Re: Pervasive Methods [was: Little Things] — ara.t.howard@... 2007/01/04

On Fri, 5 Jan 2007, Trans wrote:

[#232653] Re: Pervasive Methods [was: Little Things] — "Tim Pease" <tim.pease@...> 2007/01/04

On 1/4/07, ara.t.howard@noaa.gov <ara.t.howard@noaa.gov> wrote:

[#232656] Re: Pervasive Methods [was: Little Things] — ara.t.howard@... 2007/01/04

On Fri, 5 Jan 2007, Tim Pease wrote:

[#232657] Re: Pervasive Methods [was: Little Things] — "Trans" <transfire@...> 2007/01/04

[#232659] Re: Pervasive Methods [was: Little Things] — ara.t.howard@... 2007/01/04

On Fri, 5 Jan 2007, Trans wrote:

[#231932] Re: Little Things — Yukihiro Matsumoto <matz@...> 2006/12/31

Hi,

[#231821] Newbie: It works, how can I make it better? — Jay Bornhoft <jbornhoft@...>

I wrote this little prog giving the user two choices.

13 messages 2006/12/30

[#231938] Re: Status of Cardinal (was Re: Proposal to create a new mailing list) — "Francis Cianfrocca" <garbagecat10@...>

I'm not jumping back into this in a big way, since it's obvious

11 messages 2006/12/31

[#231941] Mini-RCR: Extra Argument for Array#join — James Edward Gray II <james@...>

I've been looking at the to_sentence() method in Rails. It's

17 messages 2006/12/31

[#231946] Open source credit card processing in ruby — snacktime <snacktime@...>

Just recently I have the option to open source a credit card

12 messages 2006/12/31
[#231956] Re: Open source credit card processing in ruby — "Francis Cianfrocca" <garbagecat10@...> 2006/12/31

On 12/31/06, M. Edward (Ed) Borasky <znmeb@cesmail.net> wrote:

[#231951] Re: Status of Cardinal (was Re: Proposal to create a new mailing list) — Charles Oliver Nutter <charles.nutter@...>

Robert Dober wrote:

9 messages 2006/12/31

Re: How do I catch a missing method on a passed block?

From: dblack@...
Date: 2006-12-14 03:21:08 UTC
List: ruby-talk #229561
Hi --

On Thu, 14 Dec 2006, Giles Bowkett wrote:

>> >> Most of what people need to grasp and embrace, in order to understand
>> >> and use the vast bulk of these techniques, and others, is:
>> >>
>> >>    * classes are objects
>> >>    * each object (or almost each object) has both a "birth class" and a
>> >>      singleton class
>> >>    * objects don't have methods; they look for them along a
>> >>      class/module search path, with well-defined rules of order and
>> >>      inclusion
>> >>    * there's one and only one 'self' at every point in the program
>> >>    * instance variables belong to 'self', always
>> >>    * class variables are completely unrelated to instance variables,
>> >>      in spite of the use of @ in one and @@ in the other
>> >>    * the def and class keywords start new local scopes
>> >>    * the class keyword can take either a constant (for a named class)
>> >>      or a "<< object" expression (for a singleton class)
>> >
>> > I have to admit, I don't understand what this means in practical
>> > terms. In fact I have a question I need to find an answer to, and I
>> > want to post it in this thread, rather than as its own thing, in the
>> > possibly idealistic hope that somebody can frame an answer in terms of
>> > these principles, and help me understand them.
>> 
>> If they're not of practical value, then they're not of value.  So I'll
>> give it a try :-)
>
> Now I actually have the inverse problem. The good news is the code
> works perfectly -- thank you, by the way -- but the bad news is I
> don't totally know why.
>
>> > Basically, I need to change a class method. It's the Ferret method
>> > full_text_search, in a Rails app.
>> >
>> > e.g.:
>> >
>> > Thing.full_text_search("asdf")
>> >
>> > I need to modify this class method. I tried alias, but did it wrong.
>> >
>> > alias original_full_text_search full_text_search
>> >
>> > but of course it doesn't work, because it's not an instance method but
>> > a class method. Is this a good place for class_eval? I could be way
>> > off.
>> >
>> > Actually now that I re-read it, I think I do understand the basic
>> > concepts, I think I'm just weak on the syntax.
>> 
>> In general, if you want to do:
>>
>>    alias old_x x
>> 
>> you want to do so inside a class definition body for the class where x
>> is defined (or a subclass of that class).
>> 
>> A "class method" is basically a singleton method of a Class object.
>> That means that the class where it's defined is the singleton method
>> of that class object (because that's what singleton classes are: the
>> places where objects' singleton methods are defined).
>
> Ah, ok. The class object creates a singleton, which is where all the
> method definitions live?

All the singleton method definitions of that class object, yes.  It's
really just a not-very-special case of the general principle that an
object's singleton methods live in the object's singleton class.

It's perhaps easier to see the workings of it when the object isn't a
class:

   str = "I am a string
   class << str
     def just_for_me
       puts "This method is just for me!"
     end
   end

I've defined a singleton method on the one String object, str.  No
other string will have that method.  If I'd defined it in String, they
would.  But I've defined it in str's singleton class (class << str),
so only str will have it:

   str.just_for_me       # This method is just for me!
   "other".just_for_me   # NoMethodError

Now, watch as I take that example -- and the explanation -- and
substitute a Class object for the String object:

   class Thing; end
   class << Thing
     def just_for_me
       puts "This method is just for me!
     end
   end

I've defined a singleton method on the one Class object, Thing.  No
other class will have that method.  If I'd defined it in Class, they
would.  But I've defined it in Thing's singleton class (class <<
Thing), so only Thing will have it:

   Thing.just_for_me   # This method is just for me!
   Array.just_for_me   # NoMethodError

Note that in the Thing example, just_for_me is what we would call a
"class method".  A class method, then, is just a singleton method
defined for a class object.

>> In your case, the object in question is Thing.  To get into a class
>> definition body for a singleton class, you use the class keyword plus
>> the "<< object" construct:
>>
>>    class << Thing
>
> And this is because the class, having been defined, now has a
> singleton containing all its methods, and we don't want to create a
> new patch, we just want to append new methods to the existing
> singleton?

Yes, we want to define methods inside the singleton class of Thing.
The singleton class of Thing is not actually created until we ask to
get inside it, but that's really an implementation detail.

> I think I do get it, although I admit I'm still puzzled on the
> singleton class / birth class thing.

It's nature vs. nurture.  Every object comes into existence with
certain capabilities -- that is, when you send it messages, it
searches through specific classes and modules, in a specific order,
looking for corresponding methods.  From that perspective, all
instances of a given class are the same as each other.

But you can also add capabilities to an object.  An object that is
"born" ignorant of a certain message need not remain that way.  You
can do this by adding to the object's class -- if you want *all*
instances of that class to have the new capability.  Or, if you just
want one object to have it, you can add a method to that object's
singleton class.

So by its nature, a String instance can do certain things:

   str = "hello there"
   str.split(/ll/)
   str.upcase
   str.reverse

etc.  By way of nurture, we can add to this string by adding to all
strings:

   class String
     def new_method
       ...
     end
   end

or by adding a method to this one string's singleton class, as in the
examples above.

(You can, by the way, also insert a method into an object's singleton
class with the "def" keyword, like this:

   def str.new_method
     ...
   end

or

   def Thing.some_class_method
     ...
   end

.)

The main thing going on in all this is that Ruby objects can change
over the course of their lives.  That's the principle being enforced;
and singleton classes are just the way Matz has chosen to bring that
principle to life.

I get a lot of mileage out of thinking of the method look-up path.
When you send a message to an object, it walks the path -- a
succession of classes and modules, like rooms strung along a corridor
-- and looks for the method.  First, it checks in its own singleton
class (if you've created one), and in any modules mixed in to the
singleton class.  If no method with the right name is found, it
proceeds to its "birth" class, and then to the modules mixed in there.
And so on -- until it gets to Object, and the module that's mixed in
*there* (Kernel).  Then, if it still hasn't found the method, it gives
up.

This post could probably do with some more editing but I don't have it
in me right now :-)  I hope it's helpful.  You might also have a look
at a little essay that covers similar material:
http://www.wobblini.net/singletons.html.  (And my book, of course :-)


David

-- 
Q. What's a good holiday present for the serious Rails developer?
A. RUBY FOR RAILS by David A. Black (http://www.manning.com/black)
    aka The Ruby book for Rails developers!
Q. Where can I get Ruby/Rails on-site training, consulting, coaching?
A. Ruby Power and Light, LLC (http://www.rubypal.com)

In This Thread