[#132675] Modules and methods — Javier Valencia <jvalencia@...01.org>

Explaine this to me please:

22 messages 2005/03/02
[#132676] Re: Modules and methods — Javier Valencia <jvalencia@...01.org> 2005/03/02

Javier Valencia wrote:

[#132677] Re: Modules and methods — Brian Schrer <ruby.brian@...> 2005/03/02

On Wed, 2 Mar 2005 20:48:35 +0900, Javier Valencia <jvalencia@log01.org> wrote:

[#132678] Re: Modules and methods — Javier Valencia <jvalencia@...01.org> 2005/03/02

Brian Schrer wrote:

[#132679] Re: Modules and methods — Javier Valencia <jvalencia@...01.org> 2005/03/02

Javier Valencia wrote:

[#132682] Re: Modules and methods — Javier Valencia <jvalencia@...01.org> 2005/03/02

Just another example:

[#132683] Re: Modules and methods — ts <decoux@...> 2005/03/02

>>>>> "J" == Javier Valencia <jvalencia@log01.org> writes:

[#132685] Re: Modules and methods — Brian Schrer <ruby.brian@...> 2005/03/02

On Wed, 2 Mar 2005 21:55:02 +0900, ts <decoux@moulon.inra.fr> wrote:

[#132686] Re: Modules and methods — ts <decoux@...> 2005/03/02

>>>>> "B" == Brian Schr=F6der?= <ISO-8859-1> writes:

[#132689] Re: Modules and methods — Javier Valencia <jvalencia@...01.org> 2005/03/02

ts wrote:

[#132703] A wish: Simple database — Hal Fulton <hal9000@...>

Hi, all...

35 messages 2005/03/02

[#132778] post inc problem — Sebesty駭 G畸or <segabor@...>

Hi,

13 messages 2005/03/03
[#132780] Re: post inc problem — Brian Schrer <ruby.brian@...> 2005/03/03

On Thu, 3 Mar 2005 15:14:44 +0900, Sebesty駭 G畸or <segabor@chello.hu> wrote:

[#132783] RAA Status & The Problem with Ruby — "Curt Hibbs" <curt@...>

Below, I posting the entire text of this blog entry:

96 messages 2005/03/03
[#132784] Re: RAA Status & The Problem with Ruby — "Curt Hibbs" <curt@...> 2005/03/03

Curt Hibbs wrote:

[#132786] Re: RAA Status & The Problem with Ruby — Alexander Kellett <ruby-lists@...> 2005/03/03

On Mar 3, 2005, at 1:07 PM, Curt Hibbs wrote:

[#132794] Re: RAA Status & The Problem with Ruby — Francis Hwang <sera@...> 2005/03/03

[#132823] Re: RAA Status & The Problem with Ruby — Lyle Johnson <lyle.johnson@...> 2005/03/03

On Thu, 3 Mar 2005 21:21:03 +0900, Alexander Kellett

[#132845] Re: RAA Status & The Problem with Ruby — "Curt Hibbs" <curt@...> 2005/03/03

Lyle Johnson wrote:

[#132859] Re: RAA Status & The Problem with Ruby — Yukihiro Matsumoto <matz@...> 2005/03/04

Hi,

[#132901] Re: RAA Status & The Problem with Ruby — leon breedt <bitserf@...> 2005/03/04

On Fri, 4 Mar 2005 09:45:16 +0900, Yukihiro Matsumoto

[#132821] Re: RAA Status & b — James Britt <jamesUNDERBARb@...> 2005/03/03

Curt Hibbs wrote:

[#132822] Re: RAA Status & b — "Curt Hibbs" <curt@...> 2005/03/03

James Britt wrote:

[#132826] Re: RAA Status & b — Ben Giddings <bg-rubytalk@...> 2005/03/03

Curt Hibbs wrote:

[#132827] Re: RAA Status & b — Brian Schrer <ruby.brian@...> 2005/03/03

On Fri, 4 Mar 2005 05:02:52 +0900, Ben Giddings

[#132830] Re: RAA Status & b — "Jim Weirich" <jim@...> 2005/03/03

[#132881] Re: ruby gems, and the require problem (was Re: RAA Status & b) — "Pe, Botp" <botp@...>

Sam Roberts [mailto:sroberts@uniserve.com] wrote:

25 messages 2005/03/04
[#132883] Re: ruby gems, and the require problem (was Re: RAA Status & b) — Sam Roberts <sroberts@...> 2005/03/04

Quoting botp@delmonte-phil.com, on Fri, Mar 04, 2005 at 12:21:01PM +0900:

[#132884] Re: ruby gems, and the require problem (was Re: RAA Status & b) — Richard Kilmer <rich@...> 2005/03/04

[#132889] Re: ruby gems, and the require problem (was Re: RAA Status & b) — Sam Roberts <sroberts@...> 2005/03/04

Quoting rich@infoether.com, on Fri, Mar 04, 2005 at 12:47:34PM +0900:

[#132894] Re: ruby gems, and the require problem (was Re: RAA Status & b) — Richard Kilmer <rich@...> 2005/03/04

[#132899] Re: ruby gems, and the require problem (was Re: RAA Status & b) — Sam Roberts <sroberts@...> 2005/03/04

Quoting rich@infoether.com, on Fri, Mar 04, 2005 at 02:11:16PM +0900:

[#132913] Re: ruby gems, and the require problem (was Re: RAA Status & b) — Austin Ziegler <halostatue@...> 2005/03/04

On Fri, 4 Mar 2005 14:37:28 +0900, Sam Roberts

[#132925] Roman Numerals (#22) — Ruby Quiz <james@...>

The three rules of Ruby Quiz:

24 messages 2005/03/04

[#132989] building rdocs for Rake — Joel VanderWerf <vjoel@...>

11 messages 2005/03/05

[#133002] ruby-dev summary 25741-25780 — Minero Aoki <aamine@...>

Hi all,

29 messages 2005/03/06
[#133004] Re: ruby-dev summary 25741-25780 — "David A. Black" <dblack@...> 2005/03/06

Hi --

[#133006] Re: ruby-dev summary 25741-25780 — Yukihiro Matsumoto <matz@...> 2005/03/06

Hi,

[#133010] Re: ruby-dev summary 25741-25780 — "David A. Black" <dblack@...> 2005/03/06

Hi --

[#133021] Noob:Objects as key in hash — Tom Willis <tom.willis@...>

Hi all,

14 messages 2005/03/06

[#133058] WEBrick for a local application? — Jeremy Bear <jeremy.bear@...>

Hello!

17 messages 2005/03/07
[#133060] Re: WEBrick for a local application? — Joao Pedrosa <joaopedrosa@...> 2005/03/07

Hi,

[#133063] Re: WEBrick for a local application? — Jeremy Bear <jeremy.bear@...> 2005/03/07

> > My main question, I guess, is this: Is there any way that I can use

[#133094] ncurses ruby and utf-8 — Brian Schrer <ruby.brian@...>

hello group,

12 messages 2005/03/07

[#133255] Tiny URLs — James Britt <jamesUNDERBARb@...>

Informal poll: Are there others as leery as I am of tinyurl and similar

33 messages 2005/03/10

[#133265] ruby-ldap rebinding ? — Dick Davies <rasputnik@...>

14 messages 2005/03/10
[#133345] Re: ruby-ldap rebinding ? — Ian Macdonald <ian@...> 2005/03/11

On Thu 10 Mar 2005 at 20:46:51 +0900, Dick Davies wrote:

[#133366] Re: ruby-ldap rebinding ? — Dick Davies <rasputnik@...> 2005/03/11

* Ian Macdonald <ian@caliban.org> [0345 06:45]:

[#133313] Gateway broken? — "Berger, Daniel" <Daniel.Berger@...>

Hi all,

18 messages 2005/03/10
[#133314] Re: Gateway broken? — "ES" <ruby-ml@...> 2005/03/10

On Thu, March 10, 2005 9:38 pm, Berger, Daniel said:

[#133317] Re: Gateway broken? — Dennis Oelkers <dennis@...> 2005/03/10

Hey folks,

[#133336] Possible ruby job in SF Bay Area — Joel VanderWerf <vjoel@...>

This is an informal announcement of a possible position for

23 messages 2005/03/11
[#133338] Re: [JOB] Possible ruby job in SF Bay Area — Jamis Buck <jamis_buck@...> 2005/03/11

On Mar 10, 2005, at 8:20 PM, Joel VanderWerf wrote:

[#133382] Redesign 2005 Blog — why the lucky stiff <ruby-talk@...>

The vit-core team (assigned to redesign ruby-lang.org) has unveiled our

30 messages 2005/03/11
[#133491] Re: [ANN] Redesign 2005 Blog — "Josef 'Jupp' Schugt" <jupp@...> 2005/03/13

why the lucky stiff wrote:

[#133426] Codefest Grant - RubyGems cleanup and enhancement — Eric Hodel <drbrain@...7.net>

Seattle.rb will be hosting a RubyGems cleanup and enhancement codefest!

46 messages 2005/03/12
[#133532] Re: Codefest Grant - RubyGems cleanup and enhancement — Ben Giddings <bg-rubytalk@...> 2005/03/14

Eric Hodel wrote:

[#133542] Re: Codefest Grant - RubyGems cleanup and enhancement — vruz <horacio.lopez@...> 2005/03/14

> Is there any chance you could start this process a little bit? Choose

[#133548] Re: Codefest Grant - RubyGems cleanup and enhancement — James Edward Gray II <james@...> 2005/03/15

On Mar 14, 2005, at 5:18 PM, vruz wrote:

[#133432] Help a newbie pick a gui tool kit — Dennis Roberts <denrober@...>

So I am still learning Ruby. I am also learning C. I just did

39 messages 2005/03/12

[#133483] how do you duck-type something to String, so String believes you? — Sam Roberts <sroberts@...>

I can give something a #to_str, which should be an indication that it is

11 messages 2005/03/13

[#133511] RubyURL.com — Robby Russell <robby@...>

I felt like giving myself a small project to get my feet a bit more wet

27 messages 2005/03/14

[#133550] Getting Started with Orbjson tutorial — James Britt <jamesUNDERBARb@...>

I wrote a tutorial on using the Orbjson library to create Web

12 messages 2005/03/15
[#133553] Re: [ANN] Getting Started with Orbjson tutorial — vruz <horacio.lopez@...> 2005/03/15

> I wrote a tutorial on using the Orbjson library to create Web

[#133611] class variables and class instance variable? — Lionel Thiry <lthiryidontwantspam@...>

Hello.

20 messages 2005/03/15

[#133614] n body problem — Martin DeMello <martindemello@...>

Here's a first pass at the n body problem in the shootout - I've tried

23 messages 2005/03/15

[#133616] will '@@' disapear in ruby2? — Lionel Thiry <lthiryidontwantspam@...>

Hello there!

13 messages 2005/03/15

[#133688] eval/binding question — Stefan Kaes <skaes@...>

I tried to create local variables from a name=>value hash passed as a

23 messages 2005/03/15
[#133703] Re: eval/binding question — Yukihiro Matsumoto <matz@...> 2005/03/15

Hi,

[#133719] Re: eval/binding question — Stefan Kaes <skaes@...> 2005/03/15

Yukihiro Matsumoto wrote:

[#133748] FAQ for comp.lang.ruby — hal9000@...

RUBY NEWSGROUP FAQ -- Welcome to comp.lang.ruby! (Revised 2004-10-16)

15 messages 2005/03/15

[#133785] Examples for racc? — Ben Giddings <bg-rubytalk@...>

Hey all,

15 messages 2005/03/15

[#133852] Fibonacci Benchmark Correction — jzakiya@...

The Great Computer Language Shootout Benchmarks

26 messages 2005/03/16

[#133875] Symbol vs String — Sebesty駭 G畸or <segabor@...>

Hi,

20 messages 2005/03/16

[#133909] bug? ruby doesn't flush stdio on exit! — Sam Roberts <sroberts@...>

This can't be a feature... stdio should flush on exit!

11 messages 2005/03/17

[#133959] new language shootout — Martin Ankerl <martin.ankerl@...>

Hi, I have been thinking a bit on creating a new language shootout. All

11 messages 2005/03/17

[#133981] Maximum stack depth — Glenn Parker <glenn.parker@...>

It would be useful to have a Ruby command-line option to specify a

27 messages 2005/03/17

[#133999] Free Rails hosting? — Aquila <braempje@...>

I know a lot of free hosters who support PHP etc. but I'd rather try Rails.

23 messages 2005/03/17

[#134022] encapsulating rubygems so that my users don't need to be aware of it — Csaba Henk <csaba@..._for_avoiding_spam.org>

Hi!

9 messages 2005/03/17

[#134074] Crobjob problem with ruby script. — "andreas.cahen@..." <andreas.cahen@...>

Hi!

19 messages 2005/03/18

[#134078] - E03 - jamLang Evaluation Case Applied to Ruby — Ilias Lazaridis <ilias@...>

[EVALUATION] - E02 - Nitro, a Ruby Based WebFramework

75 messages 2005/03/18
[#134092] Re: [EVALUATION] - E03 - jamLang Evaluation Case Applied to Ruby — Martin DeMello <martindemello@...> 2005/03/18

Ilias Lazaridis <ilias@lazaridis.com> wrote:

[#136612] Re: [EVALUATION] - E03 - jamLang Evaluation Case Applied to Ruby — Csaba Henk <csaba@..._for_avoiding_spam.org> 2005/04/03

On 2005-04-03, Ilias Lazaridis <ilias@lazaridis.com> wrote:

[#136628] Re: [EVALUATION] - E03 - jamLang Evaluation Case Applied to Ruby — Ilias Lazaridis <ilias@...> 2005/04/03

Csaba Henk wrote:

[#136631] Re: [EVALUATION] - E03 - jamLang Evaluation Case Applied to Ruby — Saynatkari <ruby-ml@...> 2005/04/03

[#136640] Re: [EVALUATION] - E03 - jamLang Evaluation Case Applied to Ruby — Ilias Lazaridis <ilias@...> 2005/04/03

Saynatkari wrote:

[#136702] Re: [EVALUATION] - E03 - jamLang Evaluation Case Applied to Ruby — Csaba Henk <csaba@..._for_avoiding_spam.org> 2005/04/04

On 2005-04-04, Robert Klemme <bob.news@gmx.net> wrote:

[#136713] Re: [EVALUATION] - E03 - jamLang Evaluation Case Applied to Ruby — Ilias Lazaridis <ilias@...> 2005/04/04

Csaba Henk wrote:

[#134080] Texas Hold'Em (#24) — Ruby Quiz <james@...>

The three rules of Ruby Quiz:

17 messages 2005/03/18

[#134103] Iterating through a string and removing leading characters — Randy Kramer <rhkramer@...>

This is going to seem a little strange (for a number of reasons I might

44 messages 2005/03/18

[#134158] Paul Graham recommends Ruby — Joe Van Dyk <joevandyk@...>

Paul wrote an article about his recommendations for current

93 messages 2005/03/19
[#134244] Re: Paul Graham recommends Ruby — Martin DeMello <martindemello@...> 2005/03/19

Navindra Umanee <navindra@cs.mcgill.ca> wrote:

[#134248] Re: Paul Graham recommends Ruby — "Florian Frank" <flori@...> 2005/03/19

Martin DeMello wrote:

[#134250] Re: Paul Graham recommends Ruby — "David A. Black" <dblack@...> 2005/03/19

Hi --

[#134304] Re: Paul Graham recommends Ruby — Navindra Umanee <navindra@...> 2005/03/20

David A. Black <dblack@wobblini.net> wrote:

[#134270] Re: Paul Graham recommends Ruby — Yukihiro Matsumoto <matz@...> 2005/03/19

Hi,

[#134169] Re: Paul Graham recommends Ruby — Premshree Pillai <premshree.pillai@...> 2005/03/19

On Sat, 19 Mar 2005 11:54:41 +0900, Joe Van Dyk <joevandyk@gmail.com> wrote:

[#134182] Re: Paul Graham recommends Ruby — Christian Neukirchen <chneukirchen@...> 2005/03/19

Premshree Pillai <premshree.pillai@gmail.com> writes:

[#134218] Re: Paul Graham recommends Ruby — Navindra Umanee <navindra@...> 2005/03/19

Christian Neukirchen <chneukirchen@gmail.com> wrote:

[#134221] Re: Paul Graham recommends Ruby — Laurent Sansonetti <laurent.sansonetti@...> 2005/03/19

On Sun, 20 Mar 2005 02:35:50 +0900, Navindra Umanee

[#134227] Re: Paul Graham recommends Ruby — Navindra Umanee <navindra@...> 2005/03/19

Laurent Sansonetti <laurent.sansonetti@gmail.com> wrote:

[#134232] Re: Paul Graham recommends Ruby — Christian Neukirchen <chneukirchen@...> 2005/03/19

Navindra Umanee <navindra@cs.mcgill.ca> writes:

[#134234] Re: Paul Graham recommends Ruby — Navindra Umanee <navindra@...> 2005/03/19

Christian Neukirchen <chneukirchen@gmail.com> wrote:

[#134236] Re: Paul Graham recommends Ruby — Christian Neukirchen <chneukirchen@...> 2005/03/19

Navindra Umanee <navindra@cs.mcgill.ca> writes:

[#134237] Re: Paul Graham recommends Ruby — Navindra Umanee <navindra@...> 2005/03/19

Christian Neukirchen <chneukirchen@gmail.com> wrote:

[#134242] Re: Paul Graham recommends Ruby — Christian Neukirchen <chneukirchen@...> 2005/03/19

Navindra Umanee <navindra@cs.mcgill.ca> writes:

[#134200] strip and its evil brother strip! — Aquila <braempje@...>

Possibly a stupid question: why does strip! of a string with a single

37 messages 2005/03/19
[#134203] Re: strip and its evil brother strip! — Glenn Parker <glenn.parker@...> 2005/03/19

Aquila wrote:

[#134207] Re: strip and its evil brother strip! — Florian Gross <flgr@...> 2005/03/19

Glenn Parker wrote:

[#134220] Re: strip and its evil brother strip! — Glenn Parker <glenn.parker@...> 2005/03/19

Florian Gross wrote:

[#134223] Re: strip and its evil brother strip! — Florian Gross <flgr@...> 2005/03/19

Glenn Parker wrote:

[#134210] Re: strip and its evil brother strip! — Jason Sweat <jason.sweat@...> 2005/03/19

On Sun, 20 Mar 2005 01:07:15 +0900, Glenn Parker

[#134213] Re: strip and its evil brother strip! — "David A. Black" <dblack@...> 2005/03/19

Hi --

[#134215] Re: strip and its evil brother strip! — Daniel Amelang <daniel.amelang@...> 2005/03/19

I ranted about this very behavior 2 days ago. I'm willing to do an RCR

[#134262] RCR 296: Destructive methods return self — Daniel Amelang <daniel.amelang@...>

I know that it's not standard policy to announce RCRs on ruby-talk,

90 messages 2005/03/19
[#134276] Re: RCR 296: Destructive methods return self — Daniel Amelang <daniel.amelang@...> 2005/03/19

For those interested in an alternative, I just put this up on the RCR:

[#134577] Re: RCR 296: Destructive methods return self — Yukihiro Matsumoto <matz@...> 2005/03/22

Hi,

[#134594] Re: RCR 296: Destructive methods return self — Daniel Amelang <daniel.amelang@...> 2005/03/22

Yes, I am liking the proposal less and less as time goes on. And I'm

[#134697] Re: RCR 296: Destructive methods return self — Ben Giddings <bg-rubytalk@...> 2005/03/22

Yukihiro Matsumoto wrote:

[#134370] can WEBrick bind to port 0, and then tell me what port was allocated? — Sam Roberts <sroberts@...>

I don't want to use a hard-coded port number, I want it to bind to

12 messages 2005/03/20

[#134413] Ruby, brother of VB? — "Mike Cox" <mikecoxlinux@...>

Hi. I am researching a language to switch to after Microsoft EOL'd classic

16 messages 2005/03/21

[#134481] FMOD or other sound libraries...anyone? — david@... (David Casal)

I'm looking for a good Ruby sound library...

19 messages 2005/03/21

[#134517] Support for 10x Productivity Increase with Rails! — "Curt Hibbs" <curt@...>

I got a lot of flack for what I wrote in my ONLamp.com article on Rails when

27 messages 2005/03/21

[#134555] Ruby newbie: 3 week learning project — "Al Abut - alabut.com" <alabut@...>

Hi all, I'm (very) new to Ruby and I'm blogging out every day of a 3

16 messages 2005/03/21

[#134642] Getting the word to conventional programmers — claird@... (Cameron Laird)

*DevSource* profiles "The State of the Scripting Universe" in

25 messages 2005/03/22

[#134660] RubyConf 2005 Preregistration now open! — "David A. Black" <dblack@...>

17 messages 2005/03/22

[#134710] Any guides for good coding in Ruby? — "Arfin" <arfinmail@...>

Is there some kind of class to format numbers? Something to let you

75 messages 2005/03/22
[#134718] Re: Any guides for good coding in Ruby? — "David A. Black" <dblack@...> 2005/03/22

Hi --

[#134724] Re: Any guides for good coding in Ruby? — Martin Ankerl <martin.ankerl@...> 2005/03/22

> I try to follow the style that is predominant in the Ruby parts of the

[#134730] Re: Any guides for good coding in Ruby? — James Edward Gray II <james@...> 2005/03/22

On Mar 22, 2005, at 4:24 PM, Martin Ankerl wrote:

[#134747] Re: Any guides for good coding in Ruby? — Nikolai Weibull <mailing-lists.ruby-talk@...> 2005/03/23

* James Edward Gray II (Mar 22, 2005 23:50):

[#134736] Re: Any guides for good coding in Ruby? [OT] tabs vs. spaces — Ben Giddings <bg-rubytalk@...> 2005/03/22

Martin Ankerl wrote:

[#134740] Re: Any guides for good coding in Ruby? [OT] tabs vs. spaces — Sam Roberts <sroberts@...> 2005/03/22

Quoting bg-rubytalk@infofiend.com, on Wed, Mar 23, 2005 at 08:17:53AM +0900:

[#134866] Dwemthy's Array -- the Ruby mini_adventure — why the lucky stiff <ruby-talk@...>

Since you were a very young rabbit in little cotton pants, Dwemthy's

17 messages 2005/03/23
[#134885] Re: [ANN] Dwemthy's Array -- the Ruby mini_adventure — ptkwt@... (Phil Tomson) 2005/03/23

In article <50756767050323100730f7f739@mail.gmail.com>,

[#134892] Re: [ANN] Dwemthy's Array -- the Ruby mini_adventure — Patrick Hurley <phurley@...> 2005/03/23

> No doubt _why has put some magic in DwemthysArray that we're missing.

[#134896] Ruby article on DevSource — Hal Fulton <hal9000@...>

FWIW, DevSource.com (previously mentioned here) now has

13 messages 2005/03/23

[#134990] Syntax 0.7.0 — Jamis Buck <jamis@37signals.com>

Syntax is a pure-Ruby framework for doing lexical analysis (and, in

23 messages 2005/03/24
[#135020] Re: [ANN] Syntax 0.7.0 — Sam Roberts <sroberts@...> 2005/03/24

Quoting jamis@37signals.com, on Thu, Mar 24, 2005 at 02:54:20PM +0900:

[#135038] Re: [ANN] Syntax 0.7.0 — gabriele renzi <surrender_it@...> 2005/03/24

Sam Roberts ha scritto:

[#135042] Re: [ANN] Syntax 0.7.0 — Sam Roberts <sroberts@...> 2005/03/24

Quoting jamis@37signals.com, on Fri, Mar 25, 2005 at 01:27:37AM +0900:

[#135013] Syntax for gem list file when hosting own rubygems repository — James Britt <james_b@...>

Are there online docs for creating the YAML file needed when

10 messages 2005/03/24

[#135092] OO database concepts... — Hal Fulton <hal9000@...>

I've been thinking about OO databases -- never having really

24 messages 2005/03/25

[#135147] A Poll — "jeem" <jeem.hughes@...>

Hello group. Please take a minute to satisfy my idle curiousity. I'll

72 messages 2005/03/25

[#135168] Hash::MixIn and Python style Object#dict — Florian Gross <flgr@...>

Moin.

17 messages 2005/03/25
[#135179] Re: Hash::MixIn and Python style Object#dict — gabriele renzi <surrender_it@...> 2005/03/25

Florian Gross ha scritto:

[#135200] English Numerals (#25) — Ruby Quiz <james@...>

The three rules of Ruby Quiz:

22 messages 2005/03/25

[#135236] Rake 0.5.0 Release — Jim Weirich <jim@...>

= Rake 0.5.0 Released

14 messages 2005/03/25

[#135253] comment on today's poll and more questions — ptkwt@... (Phil Tomson)

15 messages 2005/03/26

[#135265] Evaluator for a mini-Ruby in Haskell — "Daniel Berger" <djberg96@...>

Maybe I need to rethink my view of Haskell after all:

17 messages 2005/03/26

[#135372] RubyScript2Exe 0.3.3 — "Erik Veenstra" <pan@...>

17 messages 2005/03/26

[#135393] ! haphazard — bertrandmuscle@...

is ! haphazardly implemented for a reason?

18 messages 2005/03/27
[#135395] Re: ! haphazard — Daniel Amelang <daniel.amelang@...> 2005/03/27

Tell us what you mean by 'haphazardly' ?

[#135399] Re: ! haphazard — Lyle Johnson <lyle.johnson@...> 2005/03/27

On Sun, 27 Mar 2005 10:47:15 +0900, Daniel Amelang

[#135400] Re: ! haphazard — bertrandmuscle@... 2005/03/27

>>Tell us what you mean by 'haphazardly' ?

[#135404] Re: ! haphazard — Daniel Amelang <daniel.amelang@...> 2005/03/27

Gotcha. Well, I can tell you firsthand about the controversies of the

[#135480] Ruby Weekly News 21st - 27th March 2005 — timsuth@... (Tim Sutherland)

http://www.rubyweeklynews.org/20050327.html

17 messages 2005/03/28
[#135826] Re: Ruby Weekly News 21st - 27th March 2005 — timsuth@... (Tim Sutherland) 2005/03/30

In article <slrnd4ffpm.98l.timsuth@europa.zone>, Tim Sutherland wrote:

[#135484] Best (Windows) Ruby editor — "Peter C. Verhage" <usenet2@...>

Hi,

36 messages 2005/03/28
[#135554] Re: Best (Windows) Ruby editor — "B. K. Oxley (binkley)" <binkley@...> 2005/03/28

Lothar Scholz wrote:

[#135485] Re: Best (Windows) Ruby editor — "Neville Burnell" <Neville.Burnell@...>

I'm using jedit [www.jedit.org]

26 messages 2005/03/28
[#135519] Re: Best (Windows) Ruby editor — Chris Morris <the.chrismo@...> 2005/03/28

> I'm using jedit [www.jedit.org ]

[#135615] Re: Java for Rubyists — "Albert Chou" <achou@...>

I'm not anything like a Java expert, but I do refer to Bruce Eckel's

18 messages 2005/03/29
[#135623] Re: Java for Rubyists — Tom Willis <tom.willis@...> 2005/03/29

I second Eckel

[#135686] Re: Java for Rubyists — Lyndon Samson <lyndon.samson@...> 2005/03/29

> I fell the original posters pain. My work world is filled with long

[#135699] FreeBSD Rubyists? Do Remote Objects work for you? — Miles Keaton <mileskeaton@...>

Looking for any Ruby users on FreeBSD.

11 messages 2005/03/29

[#135708] attr :<symbol>? — Luke Renn <goseigen@...>

What is the proper term for things like attr :<id> and belongs_to

18 messages 2005/03/29

[#135770] Open letter to anyone developing a Ruby IDE — "Adelle Hartley" <adelle@...>

It has been said that features like "intellisense" or "autocomplete" are

25 messages 2005/03/30
[#135778] Re: Open letter to anyone developing a Ruby IDE — Lothar Scholz <mailinglists@...> 2005/03/30

Hello Adelle,

[#135784] Blah-Blah List (and why line counts are a bad metric) — Ben Giddings <bg-rubytalk@...>

So, I did a search for Ruby on Rails today, and my interest was piqued

13 messages 2005/03/30

[#135806] - Time for "comp.lang.ruby.announce" ? — Ilias Lazaridis <ilias@...>

I've noticed a high ammount of announcements ("[ANN]") on this group.

21 messages 2005/03/30

[#135820] Poor efficency of Ruby... — JZ <spamerom@...>

I have prior experiency with php and recently pythonic application servers

48 messages 2005/03/30

[#135841] look-behind regexp ? — Shajith <demerzel@...>

Hi!

14 messages 2005/03/30

[#135859] Defining a Class Accessor — James Edward Gray II <james@...>

I was playing around with an idea in another thread and ran into a

13 messages 2005/03/30

[#135863] Respect and Disappointment — Curt Hibbs <curt@...>

I've finally started a blog. I really didn't want to go public with it

148 messages 2005/03/30
[#136024] Re: Respect and Disappointment — Josef Pospisil <perails@...> 2005/03/31

Hello Curt,

[#136033] Re: Respect and Disappointment — Bill Atkins <batkins57@...> 2005/03/31

Ridiculous. You're saying Rails (I'm assuming that's what you mean by

[#136048] Re: Respect and Disappointment — Francis Hwang <sera@...> 2005/03/31

My .02 cents:

[#136087] Re: Respect and Disappointment — Austin Ziegler <halostatue@...> 2005/03/31

On Mar 31, 2005 6:17 AM, Francis Hwang <sera@fhwang.net> wrote:

[#136122] Re: Respect and Disappointment [OT] — Ben Giddings <bg-rubytalk@...> 2005/03/31

Austin Ziegler wrote:

[#136127] Re: Respect and Disappointment [OT] — Austin Ziegler <halostatue@...> 2005/03/31

On Mar 31, 2005 12:11 PM, Ben Giddings <bg-rubytalk@infofiend.com> wrote:

[#136135] Re: Respect and Disappointment [OT] — Nikolai Weibull <mailing-lists.ruby-talk@...> 2005/03/31

* Austin Ziegler (Mar 31, 2005 19:30):

[#136159] Re: Respect and Disappointment [OT] — Austin Ziegler <halostatue@...> 2005/03/31

On Mar 31, 2005 1:01 PM, Nikolai Weibull

[#136147] Re: Respect and Disappointment — David Heinemeier Hansson <david@...> 2005/03/31

> I've finally started a blog. I really didn't want to go public with it

[#136171] Re: Respect and Disappointment — Stephen Kellett <snail@...> 2005/03/31

In message <6c87a002d5858216dd00a4abe83e032d@loudthinking.com>, David

[#136006] Complete beginner in programming — "Roger Grosswiler" <roger@...>

Hi,

11 messages 2005/03/31

Naming tips for popen4-style library?

From: Jonathan Paisley <jp-www@...>
Date: 2005-03-15 16:32:16 UTC
List: ruby-talk #133720
Hello,

I've been developing a library for communicating with sub processes via 
pipes, which is modelled somewhat after Python's Popen4 class [1] 
(although the semantics are slightly different).

I'm looking for some suggestions for a better name for the class (and 
any other comments, too).

I initially wrote this because I wanted to be able to do popen() type 
things without the shell getting in the way. You can pass arguments to 
sub processes without need for quoting etc.

Main features:

  * Object-oriented interface
    - procedural interface could easily be built on top, but haven't 
decided on best way yet
  * Access to stdin, stdout and stderr independently
  * Optional redirection of each of the above, to file/socket or 
/dev/null
  * Can get exit status of child process (including signals)
  * Send signals to child process
  * Thread safe

For example:

    Popen4.new('echo','$PATH') do |p|
      puts p.stdout.readline            #=> $PATH         (and not the 
expansion of that env var!)
      puts p.wait.exitstatus            #=> 0
    end

Any comments?

Thanks.

[1] http://www.python.org/doc/2.4/lib/module-popen2.html

Attachments (1)

open4.rb (8.57 KB, text/x-ruby)
# This class provides extended popen3-style functionality
# by keeping track of running processes, supporting argument
# lists rather than shell command lines, and allowing
# +stdin+, +stdout+ and +stderr+ to be configured separately.
#
# = Example
#
#   require 'open4'
#
#   child = Popen4.new("echo hello; echo there >&2; cat; exit 4")
#   p child.stdout.readline           #=> "hello\n"
#   p child.stderr.readline           #=> "there\n" 
#   child.stdin.puts "Read by cat"
#   p child.stdout.readline           #=> "Read by cat\n"
#   child.stdin.close
#   p child.wait.exitstatus           #=> 4
#
# Beware of the deadlocks that can arise when interacting with
# processes in this manner. If you allow +stderr+ to be made into
# a pipe (the default here) and do not read from it, a process
# will block once it has written a pipe full of data (typically 4k).
# In this case, specify <code>:stdout=>false</code> in the constructor.
#
# To get started, look at the documentation for Popen4.new.
#
#--
# $Id: open4.rb 644 2005-03-15 15:24:02Z jp $

require 'thread'

class Popen4
  @@active = []

  # call-seq:
  #    Popen4.new(command [, arg, ...] [,options = {}])
  #
  # Starts a process in the background with the same semantics
  # as <code>Kernel::exec</code>. In summary, if a single argument is given,
  # the string is passed to the shell, otherwise the second and subsequent 
  # arguments are passed as parameters to _command_ with no shell 
  # expansion.
  #
  #   Popen4.new("echo *").stdout.read      #=> "file1 file2\n"
  #   Popen4.new("echo","*").stdout.read    #=> "*\n"
  #   Popen4.new("exit 2;").wait.exitstatus #=> 2
  #
  # Keyword options may given to specify the redirection of 
  # +stdin+, +stdout+ and +stderr+. The objects given should be capable
  # of being an argument to IO::reopen, +nil+ to specify
  # no redirection, or a symbol listed below.
  #
  # <code>:stdout</code> or <code>:stderr</code> may be specified to make the
  # file descriptor in question be a copy of an already-allocated
  # pipe. <code>:null</code> indicates redirection to <code>/dev/null</code>.
  #
  # For example, 
  #
  #   child = Popen4.new("command",:stdin=>:null,:stderr=>:stdout)
  #
  # will connect +stdin+ to <code>/dev/null</code> and make both +stdout+ and
  # +stderr+ of the child process available on the <code>child.stdout</code> 
  # stream.
  #
  #   child = Popen4.new("ssh","somewhere",:stderr=>false)
  #
  # The above would be used to make the child process +stdin+ and
  # +stdout+ available to the Ruby script via pipes, but leave +stderr+ 
  # where it was (a terminal, for example).
  #
  # This last example will copy the data between two
  # file objects (they must be backed by a real file descriptor).
  #
  #   Popen4.new("cat",:stdin=>file1,:stdout=>file2).wait
  #
  # Yields self if given a block and closes the pipes before returning.

  def initialize(*cmd)
    Popen4::cleanup

    if Hash === cmd.last then
      options = cmd.pop
    else
      options = {}
    end
    
    @wait_mutex = Mutex.new

    @stdin = nil
    @stdout = nil
    @stderr = nil
    @status = nil
    # List of file handles to close in the parent
    to_close = []

    if options.has_key?(:stdin) then
      child_stdin = options[:stdin]
      if child_stdin == :null then
        child_stdin = File.open("/dev/null","r")
        to_close << child_stdin
      end
    else
      child_stdin, @stdin = IO::pipe
      to_close << child_stdin
    end

    if options.has_key?(:stdout) then
      child_stdout = options[:stdout]
    else
      @stdout, child_stdout = IO::pipe
      to_close << child_stdout
    end

    if options.has_key?(:stderr) then
      child_stderr = options[:stderr]
    else
      @stderr, child_stderr = IO::pipe
      to_close << child_stderr
    end

    # Handle redirections to /dev/null
    if child_stdout == :null then
      child_stdout = File.open("/dev/null","w") 
      to_close << child_stdout
    end
    if child_stderr == :null then
      child_stderr = File.open("/dev/null","w")
      to_close << child_stderr
    end

    # Handle redirections from stdout<->stderr
    child_stdout = child_stderr if child_stdout == :stderr
    child_stderr = child_stdout if child_stderr == :stdout

    @pid = fork do
      if child_stdin then
        @stdin.close if @stdin
        STDIN.reopen(child_stdin)
        child_stdin.close
      end

      if child_stdout then
        @stdout.close if @stdout
        STDOUT.reopen(child_stdout)
      end

      if child_stderr then
        @stderr.close if @stderr
        STDERR.reopen(child_stderr)
        child_stderr.close
      end
      
      if child_stdout
        child_stdout.close unless child_stdout.closed?
      end
      
      begin
        Kernel::exec(*cmd)
      ensure 
        exit!(1)
      end
    end

    to_close.each { |fd| fd.close }
    @stdin.sync = true if @stdin

    Thread.exclusive { @@active << self }
    if block_given? then
      begin
        yield self
      ensure
        close
      end
    end
  end

  # Reap any child processes (by calling poll) as necessary
  def self.cleanup
    active = Thread.exclusive { @@active.dup }
    active.each do |inst|
      inst.poll
    end
  end

  # File handle for pipes to the slave process.
  # Will be +nil+ if a corresponding alternative file
  # was given in the constructor.
  attr_reader :stdin, :stdout, :stderr

  # Process ID of the child
  attr_reader :pid

  # Close the stdin/stdout/stderr pipes from the child process
  # (if they were created in the constructor).
  def close
    [@stdin, @stdout, @stderr].each do |fp|
      begin
        fp.close if fp and not fp.closed?
      rescue
      end
    end
  end
  
  # Wait for the exit status of the process, returning
  # a <code>Process::Status</code> object. The _flags_
  # argument is interpreted as in <code>Process::wait</code>.
  #
  # NB: This wait only returns once the process has actually
  # exited. It does not return for stopped (signaled) processes.
  def wait(flags=0)
    @wait_mutex.synchronize do
      wait_no_lock(flags)
    end
  end
  
  def wait_no_lock(flags=0) #:nodoc:
    return @status if @status

    while result = Process::waitpid2(@pid, flags)
      # Only return exit status
      if result[0] == @pid and (result[1].exited? or result[1].signaled?) then
        @status = result[1]
        Thread.exclusive { @@active.delete(self) }
        return @status
      end
    end
    nil
  end

  private :wait_no_lock

  # Test to see if process has exited without blocking. Returns
  # a <code>Process::Status</code> object or +nil+.
  def poll
    if @wait_mutex.try_lock then
      begin
        wait_no_lock(Process::WNOHANG)
      ensure
        @wait_mutex.unlock
      end
    else
      nil
    end
  end

  alias :status :poll

  # Send the given signal to the process
  def kill(signal)
    Process::kill(signal,@pid)
  end

end

if $0 == __FILE__
  require 'test/unit'

  class TC_Open4 < Test::Unit::TestCase

    def test_default
      p = Popen4.new('read X;echo hello; echo "X was $X"; echo there>&2; exit 4')
      p.stdin.puts "asdf"
      assert_equal "hello",p.stdout.readline.chomp
      assert_equal "X was asdf",p.stdout.readline.chomp
      assert_equal "there",p.stderr.readline.chomp
      assert_equal 4,p.wait.exitstatus
      p.close
    end

    def test_no_stderr
      p = Popen4.new('echo hello; echo ignore this message >&2',:stderr=>false)
      assert_equal "hello",p.stdout.readline.chomp
      assert_equal nil,p.stderr
      assert_equal 0,p.wait.exitstatus
      p.close
    end
    
    def test_no_shell
      Popen4.new('echo','$PATH') do |p|
        # This should be literal '$PATH' and not expanded by the shell
        assert_equal "$PATH", p.stdout.readline.chomp
      end
    end
    
    def test_threaded
      threads = (0..5).map do |idx|
        Thread.new do
          3.times do
            Popen4.new("echo A#{idx};sleep 1;echo B#{idx}",:stderr=>false) do |p|
              assert_equal "A#{idx}", p.stdout.readline.chomp
              assert_equal "B#{idx}", p.stdout.readline.chomp
              assert_equal 0, p.wait.exitstatus  
            end
          end
        end
      end
      threads.each { |t| t.join }  
    end

    def test_kill
      p = Popen4.new <<-EOT
          trap "echo BYE_stderr>&2;echo BYE_stdout" EXIT
          echo start
          sleep 10
          echo notreached
      EOT
      
      assert_equal "start",p.stdout.readline.chomp
      sleep 1
      p.kill('TERM')
      assert_equal "BYE_stdout",p.stdout.readline.chomp
      assert_equal "BYE_stderr",p.stderr.readline.chomp
      assert_equal nil,p.wait.exitstatus
      assert_equal Signal.list['TERM'],p.wait.termsig
    end
  end

end

In This Thread

Prev Next