[#64] Assigning a block to a variable in Ruby — ajmayo@...

I am new to Ruby and curious as to how you emulate the following

30 messages 2005/12/15

[#110] challenge - regex which matches nothing — ara.t.howard@...

15 messages 2005/12/15

[#168211] require! — "Ross Bamford" <rosco@...>

It (finally) clicked now, 'require' is just a method...

24 messages 2005/12/01

[#168265] What is the best way to edit a file to eliminate a line using Ruby? — "Steve [RubyTalk]" <steve_rubytalk@...>

This sounds an easy task, but I'm certain that I'm yet to find the most

17 messages 2005/12/01
[#168269] Re: What is the best way to edit a file to eliminate a line using Ruby? — "William James" <w_a_x_man@...> 2005/12/01

Steve [RubyTalk] wrote:

[#168273] Re: What is the best way to edit a file to eliminate a line using Ruby? — "Steve [RubyTalk]" <steve_rubytalk@...> 2005/12/01

William James wrote:

[#168275] Re: What is the best way to edit a file to eliminate a line — Mike Fletcher <lemurific+rforum@...> 2005/12/01

steve_rubytalk wrote:

[#168309] Re: What is the best way to edit a file to eliminate a line — "Steve [RubyTalk]" <steve_rubytalk@...> 2005/12/01

Mike Fletcher wrote:

[#168271] Good Ruby Examples? — "Hampton" <hcatlin@...>

I'm planning on doing a tutorial about Ruby for Ryerson University's CS

19 messages 2005/12/01

[#168342] [ANN} Komodo 3.5.1 -- a professional Ruby IDE — Curt Hibbs <curt.hibbs@...>

Yesterday, ActiveState released Komodo

73 messages 2005/12/01
[#168492] Re: [ANN} Komodo 3.5.1 -- a professional Ruby IDE — Christer Nilsson <janchrister.nilsson@...> 2005/12/02

I've tried it on Win XP. It's terribly slow, one minute just to see my

[#169050] Re: [ANN} Komodo 3.5.1 -- a professional Ruby IDE — Wayne Vucenic <nightphotos@...> 2005/12/06

Hi Christer,

[#169084] Re: [ANN} Komodo 3.5.1 -- a professional Ruby IDE — Curt Hibbs <curt.hibbs@...> 2005/12/06

On 12/5/05, Wayne Vucenic <nightphotos@gmail.com> wrote:

[#169085] ArachnoRuby -- a professional Ruby IDE — Christer Nilsson <janchrister.nilsson@...> 2005/12/06

curt.hibbs wrote:

[#169185] Re: ArachnoRuby -- a professional Ruby IDE — Wayne Vucenic <nightphotos@...> 2005/12/06

Hi Christer,

[#170386] Re: ArachnoRuby -- a professional Ruby IDE — "soxinbox" <faker@...> 2005/12/13

I think it should be free or have documentation. I don't think I should have

[#170472] Re: ArachnoRuby -- a professional Ruby IDE — tony summerfelt <snowzone5@...> 2005/12/13

soxinbox wrote on 12/12/2005 8:07 PM:

[#170476] Re: ArachnoRuby -- a professional Ruby IDE — Christer Nilsson <janchrister.nilsson@...> 2005/12/13

tony summerfelt wrote:

[#170537] Re: ArachnoRuby -- a professional Ruby IDE — tony summerfelt <snowzone5@...> 2005/12/13

Christer Nilsson wrote on 12/13/2005 9:09 AM:

[#170552] Re: ArachnoRuby -- a professional Ruby IDE — "Gene Tani" <gene.tani@...> 2005/12/13

[#189067] Test post — Javaman49 <shosking@...> 2006/04/17

My first post. <b>testing html</b>

[#189068] Newbie's Ruby IDE Editor Roundup, April 2006 — Javaman49 <shosking@...> 2006/04/17

By a Newbie, for Newbies.

[#168344] need some Ruby magic — Hammed Malik <hammed@...>

I'd like to sort collections randomly. This is what I tried first:

47 messages 2005/12/01
[#168643] Re: need some Ruby magic — Reinder Verlinde <reinder@...> 2005/12/03

In article <dd3f270e4d20842e121bb970bc9a8386@ruby-forum.com>,

[#168675] Re: need some Ruby magic — Jim Weirich <jim@...> 2005/12/03

reinder wrote:

[#168687] Re: need some Ruby magic — Mauricio Fern疣dez <mfp@...> 2005/12/04

On Sun, Dec 04, 2005 at 08:48:11AM +0900, Jim Weirich wrote:

[#168688] Re: need some Ruby magic — ara.t.howard@... 2005/12/04

On Sun, 4 Dec 2005, Mauricio [iso-8859-1] Fern疣dez wrote:

[#168963] Shuffling an array, sort_by{rand}'s bias (was Re: need some Ruby magic) — Mauricio Fern疣dez <mfp@...> 2005/12/05

On Sun, Dec 04, 2005 at 10:21:02AM +0900, ara.t.howard@noaa.gov wrote:

[#168977] Re: Shuffling an array, sort_by{rand}'s bias (was Re: need some Ruby magic) — ara.t.howard@... 2005/12/05

On Tue, 6 Dec 2005, Mauricio [iso-8859-1] Fern疣dez wrote:

[#169082] Re: Shuffling an array, sort_by{rand}'s bias (was Re: need some Ruby — Uwe Schmitt <schmitt@...> 2005/12/06

||

[#169091] Re: Shuffling an array, sort_by{rand}'s bias (was Re: need some Ruby — Mauricio Fern疣dez <mfp@...> 2005/12/06

On Tue, Dec 06, 2005 at 07:32:34PM +0900, Uwe Schmitt wrote:

[#169100] Re: Shuffling an array, sort_by{rand}'s bias (was Re: need some Ruby — Uwe Schmitt <schmitt@...> 2005/12/06

||

[#169108] Re: Shuffling an array, sort_by{rand}'s bias (was Re: need some Ruby — Michael Ulm <michael.ulm@...> 2005/12/06

Uwe Schmitt wrote:

[#168455] how can I install ruby-xslt ? — Daniel R <draens@...>

Hello,

15 messages 2005/12/02
[#168530] Re: how can I install ruby-xslt ? — Daniel R <draens@...> 2005/12/02

Please, could someone help me ?

[#168468] Problem with method that starts process, yields pid then yields return code — x1 <caldridge@...>

I'm trying to create a method that will kick off a new process, return

12 messages 2005/12/02
[#168545] Re: Problem with method that starts process, yields pid then yields return code — ara.t.howard@... 2005/12/02

On Fri, 2 Dec 2005, x1 wrote:

[#168599] Re: Problem with method that starts process, yields pid then yields return code — x1 <caldridge@...> 2005/12/03

it seems to work!!

[#168602] Re: Problem with method that starts process, yields pid then yields return code — ara.t.howard@... 2005/12/03

On Sat, 3 Dec 2005, x1 wrote:

[#168469] Weird Numbers (#57) — Ruby Quiz <james@...>

The three rules of Ruby Quiz:

25 messages 2005/12/02

[#168482] Re: [QUIZ] Weird Numbers (#57) — "Kroeger, Simon (ext)" <simon.kroeger.ext@...>

If I got I right, 70 would be such a number.

12 messages 2005/12/02

[#168557] Studying in the US — Daniel Schierbeck <daniel.schierbeck@...>

Hi fellow Rubyists!

22 messages 2005/12/02

[#168699] injecting dynamic methods into a class — johanatan <zjll9@...>

hi All,

72 messages 2005/12/04
[#168702] Re: injecting dynamic methods into a class — "Trans" <transfire@...> 2005/12/04

If you don't mind while I'm at this I'm going to touch up the code to

[#168825] Re: injecting dynamic methods into a class — "johanatan <zjll9@...> <zjll9@...>" <zjll9@...> 2005/12/05

transfire wrote:

[#169031] Re: injecting dynamic methods into a class — "Ross Bamford" <rosco@...> 2005/12/06

On Tue, 06 Dec 2005 02:10:51 -0000, Trans <transfire@gmail.com> wrote:

[#169046] Re: injecting dynamic methods into a class — "Trans" <transfire@...> 2005/12/06

Ross Bamford wrote:

[#169047] Re: injecting dynamic methods into a class — "Trans" <transfire@...> 2005/12/06

> 'Ad hoc' has too many negative connotations and singleton has a fairly

[#169462] Re: injecting dynamic methods into a class — jonathan <zjll9@...> 2005/12/08

transfire wrote:

[#169468] Re: injecting dynamic methods into a class — "jonathan <zjll9@...>" <zjll9@...> 2005/12/08

jonathan wrote:

[#169054] Re: injecting dynamic methods into a class — "David A. Black" <dblack@...> 2005/12/06

Hi --

[#169087] Re: injecting dynamic methods into a class — "Trans" <transfire@...> 2005/12/06

[#169098] Re: injecting dynamic methods into a class — "David A. Black" <dblack@...> 2005/12/06

Hi --

[#169160] Re: injecting dynamic methods into a class — "Trans" <transfire@...> 2005/12/06

Okay David, its obvious you're getting upset. Though you say the

[#169165] Re: injecting dynamic methods into a class — "David A. Black" <dblack@...> 2005/12/06

Hi --

[#169169] Re: injecting dynamic methods into a class — "Trans" <transfire@...> 2005/12/06

[#169170] Re: injecting dynamic methods into a class — "David A. Black" <dblack@...> 2005/12/06

Hi --

[#169184] Re: injecting dynamic methods into a class — MenTaLguY <mental@...> 2005/12/06

On Wed, 2005-12-07 at 04:42 +0900, David A. Black wrote:

[#169187] Re: injecting dynamic methods into a class — "David A. Black" <dblack@...> 2005/12/06

Hi --

[#168716] Weird Numbers (#57) Solution — "Hampton" <hcatlin@...>

Here is my solution. Its not the most beautiful thing in the world, but

39 messages 2005/12/04
[#168730] Re: [QUIZ] Weird Numbers (#57) Solution — James Edward Gray II <james@...> 2005/12/04

On Dec 4, 2005, at 7:27 AM, Hampton wrote:

[#168750] Re: [QUIZ] Weird Numbers (#57) Solution — Ryan Leavengood <leavengood@...> 2005/12/04

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

[#168772] Re: [QUIZ] Weird Numbers (#57) Solution — James Edward Gray II <james@...> 2005/12/04

On Dec 4, 2005, at 11:29 AM, Ryan Leavengood wrote:

[#168780] Re: [QUIZ] Weird Numbers (#57) Solution — Ryan Leavengood <leavengood@...> 2005/12/04

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

[#168763] Getting Over Symbols — gwtmp01@...

When I was first learning Ruby, symbols were a bit of a mystery.

14 messages 2005/12/04

[#168861] lib for optional static typing — "robertj" <robert_kuzelj@...>

hi,

29 messages 2005/12/05

[#168871] increasing counter whithin loop? — Patrick Gundlach <clr9.10.randomuser@...>

Hi,

36 messages 2005/12/05

[#168920] Colorized Ruby Source Listings/Printing — Patrick Hurley <phurley@...>

I guess I am just old fashion, but sometimes when I am working on

11 messages 2005/12/05

[#168989] Subclassing Class. — John Carter <john.carter@...>

Ok. This is a wild idea.

25 messages 2005/12/06

[#168992] Speed Golf - Remove Early Dups — "Phrogz" <gavin@...>

SUMMARY

12 messages 2005/12/06

[#169057] getting around access control — "Ara.T.Howard" <ara.t.howard@...>

17 messages 2005/12/06

[#169149] Screen scraping an html text contents into a file — "basi" <basi_lio@...>

Hello,

16 messages 2005/12/06
[#169181] Re: Screen scraping an html text contents into a file — "Gene Tani" <gene.tani@...> 2005/12/06

[#169183] Re: Screen scraping an html text contents into a file — Edward Faulkner <ef@...> 2005/12/06

> basi wrote:

[#169314] Syntax checker? — "William E. Rubin" <williamerubin@...>

Ruby doesn't seem to check for class names, function names, and so

22 messages 2005/12/07
[#169323] Re: Syntax checker? — Pit Capitain <pit@...> 2005/12/07

William E. Rubin schrieb:

[#169339] Re: Syntax checker? — "William E. Rubin" <williamerubin@...> 2005/12/07

Thanks for the explanation. But there certainly could at least be a

[#169400] What's your opinion? ArachnoRuby, Komodo, Eclipse/RDT, RadRails, etc. — Curt Hibbs <curt.hibbs@...>

There's been a couple really good threads that are still ongoing about Ruby

10 messages 2005/12/07

[#169410] RubyScript — dpersik@...

I have done some searching on the web and have found very little about

16 messages 2005/12/07
[#169414] Re: RubyScript — Dan Diebolt <dandiebolt@...> 2005/12/07

>I have done some searching on the web and have found very little about

[#169419] Re: RubyScript — Jacob Fugal <lukfugl@...> 2005/12/07

On 12/7/05, Dan Diebolt <dandiebolt@yahoo.com> wrote:

[#169423] Standard Library questions — Joe Van Dyk <joevandyk@...>

I'm spending an hour or two today going through Ruby's standard

13 messages 2005/12/07

[#169466] They say I write Ruby like Perl — Steve Litt <slitt@...>

Hi all,

58 messages 2005/12/08
[#169570] Re: They say I write Ruby like Perl — Chris Game <chrisgame@...> 2005/12/08

Ryan Leavengood wrote:

[#169577] Re: They say I write Ruby like Perl — James Edward Gray II <james@...> 2005/12/08

On Dec 8, 2005, at 7:27 AM, Chris Game wrote:

[#169582] Re: They say I write Ruby like Perl — Rich <rjseagraves@...> 2005/12/08

I'd be interested to know *why* it is a language convention, and more

[#169516] About class methods — Hank Gong <hankgong@...>

Hi! When I read the Ruby manual, I noticed that for class Array, there are

56 messages 2005/12/08
[#169522] Re: About class methods — James Britt <james_b@...> 2005/12/08

Hank Gong wrote:

[#169524] Re: About class methods — "Trans" <transfire@...> 2005/12/08

> They're not eigenmethods are they?

[#169587] Re: About class methods — "Trans" <transfire@...> 2005/12/08

Sorry Hank, if you are unware of what were talking about in these last

[#169658] Re: About class methods — Hank Gong <hankgong@...> 2005/12/08

I carefully read two articles about classmethods and singleton concept.

[#169669] Re: About class methods — dblack@... 2005/12/08

Hi --

[#169709] Re: About class methods — "Trans" <transfire@...> 2005/12/08

[#169721] Re: About class methods — "jonathan <zjll9@...> <zjll9@...> <zjll9@...>" <zjll9@...> 2005/12/08

transfire wrote:

[#169743] Re: About class methods — gwtmp01@... 2005/12/08

[#169806] Re: About class methods — jonathan <zjll9@...> 2005/12/09

>

[#169810] Re: About class methods — "jonathan <zjll9@...>" <zjll9@...> 2005/12/09

My understanding of 'singleton' methods or 'ad hoc' methods or

[#169861] Re: About class methods — "Trans" <transfire@...> 2005/12/09

J,

[#170016] Re: About class methods — jonathan leonard <zjll9@...> 2005/12/10

transfire wrote:

[#170019] Re: About class methods — "jonathan leonard <zjll9@...>" <zjll9@...> 2005/12/10

T,

[#170025] Re: About class methods — "Trans" <transfire@...> 2005/12/10

[#170035] Re: About class methods — "jonathan <zjll9@...> <zjll9@...> <zjll9@...>" <zjll9@...> 2005/12/10

transfire wrote:

[#170053] Re: About class methods — dblack@... 2005/12/10

Hi --

[#170106] Re: About class methods — "jonathan <zjll9@...> <zjll9@...> <zjll9@...> <zjll9@...>" <zjll9@...> 2005/12/11

dblack wrote:

[#170201] Re: About class methods — Mark Ericson <mark.ericson@...> 2005/12/12

I'm curious why "class method" is being avoided? It certainly seems

[#169578] do/end vs braces — Steve Litt <slitt@...>

Hi all,

31 messages 2005/12/08

[#169642] ordered/sorted hash — "robertj" <robert_kuzelj@...>

hi,

21 messages 2005/12/08

[#169660] New guy... Intoduction and first question on some direction. — Oscar Gonzalez <rakxzo@...>

Hi everyone. I'm new to these forums. I am sysadmin in California and

16 messages 2005/12/08
[#169666] Re: New guy... Intoduction and first question on some direction. — "ako..." <akonsu@...> 2005/12/08

hello,

[#169680] Re: New guy... Intoduction and first question on some direct — Oscar Gonzalez <rakxzo@...> 2005/12/08

akonsu wrote:

[#169698] Subversion support on RubyForge — Tom Copeland <tom@...>

Hi all -

14 messages 2005/12/08

[#169854] Equation graphing software? — Steve Litt <slitt@...>

Hi all,

14 messages 2005/12/09
[#169904] Re: Equation graphing software? — "Eric Lavigne" <lavigne.eric@...> 2005/12/09

>Does Ruby have any modules useful in graphing equations like y=x**2+5,

[#169857] Kalah (#58) — Ruby Quiz <james@...>

The three rules of Ruby Quiz:

26 messages 2005/12/09
[#170216] [SOLUTION] Kalah (#58) — Rob Leslie <rob@...> 2005/12/12

Here's my solution. I'm still playing with it, but I'm posting it now

[#169913] new to Ruby - pls help in translating this — Sam Dela Cruz <sam.dela.cruz@...>

Hi,

45 messages 2005/12/09
[#169922] Re: new to Ruby - pls help in translating this — pat eyler <pat.eyler@...> 2005/12/09

On 12/9/05, Sam Dela Cruz <sam.dela.cruz@philips.com> wrote:

[#169927] Re: new to Ruby - pls help in translating this — Eric Hodel <drbrain@...7.net> 2005/12/09

On Dec 9, 2005, at 11:23 AM, pat eyler wrote:

[#170175] Calculating single-digit summands — "draq" <boyang.xia@...>

I have tried to make an algorithm that finds all possible combinations

12 messages 2005/12/11

[#170196] [SOLUTION] Kalah (#58) — David Balmain <dbalmain.ml@...>

Hey guys,

12 messages 2005/12/12

[#170244] A question about recursive programming — Hank Gong <hankgong@...>

I want to calculate all sum possibility of interger array. I know there are

24 messages 2005/12/12

[#170348] Idiom wanted: do-while — Adam Shelly <adam.shelly@...>

So I was working on the quiz solution, and

23 messages 2005/12/12
[#170349] Re: Idiom wanted: do-while — James Edward Gray II <james@...> 2005/12/12

On Dec 12, 2005, at 4:34 PM, Adam Shelly wrote:

[#170371] Using Float For Currency — "Hunter's Lists" <lists@...>

Howdy,

20 messages 2005/12/13
[#170373] Re: Using Float For Currency — mental@... 2005/12/13

Quoting Hunter's Lists <lists@lastonepicked.com>:

[#170400] Accessing C structures in Ruby — Joe Van Dyk <joevandyk@...>

(I've already looked at Swig, btw. I'd like to do this one by hand.)

11 messages 2005/12/13

[#170478] Iconv weirdness on Windows XP — Wilson Bilkovich <wilsonb@...>

Is anyone else having this problem?

14 messages 2005/12/13

[#170564] Java is so 90s - thought you'd all like this — Stephen Kellett <snail@...>

Doesn't mention Ruby directly but does talk about whats hip (LAMP which

18 messages 2005/12/13

[#170571] Puby 1.0 Release! — "Hampton" <hcatlin@...>

21 messages 2005/12/14

[#170594] Ruby as a MUD language — malcolm.ryan@...

I'm thinking about building a new MUD server (for those who are less

13 messages 2005/12/14

[#170634] English Ruby Home as a second class citizen — <slonik.az@...>

Hi Everyone,

18 messages 2005/12/14
[#170654] Re: English Ruby Home as a second class citizen — James Britt <james_b@...> 2005/12/14

slonik.az@gmail.com wrote:

[#170657] Re: English Ruby Home as a second class citizen — "cap" <capitain@...> 2005/12/14

I use

[#170661] Re: English Ruby Home as a second class citizen — James Britt <james_b@...> 2005/12/14

cap wrote:

[#170672] Re: English Ruby Home as a second class citizen — Jacob Fugal <lukfugl@...> 2005/12/14

On 12/14/05, James Britt <james_b@neurogami.com> wrote:

[#170676] ruby beats them all — "Peter Ertl" <pertl@...>

that why I love ruby (and functional languages in general)

15 messages 2005/12/14

[#170706] regular expressions question — "ako..." <akonsu@...>

hello,

58 messages 2005/12/14
[#170748] Re: regular expressions question — "Ross Bamford" <rosco@...> 2005/12/14

On Wed, 14 Dec 2005 21:59:27 -0000, ako... <akonsu@gmail.com> wrote:

[#170751] Re: regular expressions question — Jeff Wood <jeff.darklight@...> 2005/12/15

You should be able to tell who this message is meant for:

[#170789] Re: regular expressions question — James Edward Gray II <james@...> 2005/12/15

On Dec 14, 2005, at 6:16 PM, Jeff Wood wrote:

[#170803] Re: regular expressions question — Jeff Wood <jeff.darklight@...> 2005/12/15

James Edward Gray II wrote:

[#170953] Re: regular expressions question — Neil Stevens <neil@...> 2005/12/15

Jeff Wood wrote:

[#170958] Re: regular expressions question — James Edward Gray II <james@...> 2005/12/15

On Dec 15, 2005, at 2:12 PM, Neil Stevens wrote:

[#170974] Re: regular expressions question — Neil Stevens <neil@...> 2005/12/15

James Edward Gray II wrote:

[#170978] Re: regular expressions question — James Edward Gray II <james@...> 2005/12/15

On Dec 15, 2005, at 3:07 PM, Neil Stevens wrote:

[#170981] Re: regular expressions question — Neil Stevens <neil@...> 2005/12/15

James Edward Gray II wrote:

[#170993] Re: regular expressions question — Ezra Zygmuntowicz <ezra@...> 2005/12/15

[#171034] Re: regular expressions question — "jeff.darklight@..." <jeff.darklight@...> 2005/12/16

I know I said I'd shut up, and I am, but I did feel that after some of

[#170708] can someone improve on this multiple inheritence methodology? — "Ara.T.Howard" <ara.t.howard@...>

11 messages 2005/12/14

[#170735] Forthcoming 2nd ed. of _The Ruby Way_ — rubyhacker@...

Hello, all.

33 messages 2005/12/14

[#171075] Ruby tail recursion — Mark Ericson <mark.ericson@...>

In another thread someone mentioned tail recursion doesn't work right

19 messages 2005/12/16

[#171099] How come I get two e-mails? — Francis Vidal <francisv.list@...>

Hi,

11 messages 2005/12/16

[#171112] nonblocking TCPSocket in multithread software. — Arto Pastinen <arto.pastinen@...>

Hi!

12 messages 2005/12/16

[#171134] RRobots (#59) — Ruby Quiz <james@...>

The three rules of Ruby Quiz:

13 messages 2005/12/16

[#171159] End matching — Steve Litt <slitt@...>

Hi all,

14 messages 2005/12/16

[#171246] New to coding, lost as hell — Stephen None <mikari@...>

I've been looking into coding for a while now and would really like to

16 messages 2005/12/17

[#171288] Ruby and Debian — Hal Fulton <hal9000@...>

I don't wish to open a can of worms here. I'm not even a Debian

24 messages 2005/12/17

[#171289] Recruitment translators for new Ruby-GetText-Package — Masao Mutoh <mutoh@...>

Hi all,

16 messages 2005/12/17

[#171410] Any TextMate Editor equivelent for Windows ? — "Jules" <Roseanna80@...>

Hello

43 messages 2005/12/18
[#171415] Re: Any TextMate Editor equivelent for Windows ? — James Britt <james_b@...> 2005/12/18

Jules wrote:

[#171520] Re: Any TextMate Editor equivelent for Windows ? — "Jules" <Roseanna80@...> 2005/12/19

Hello

[#171527] Re: Any TextMate Editor equivelent for Windows ? — James Edward Gray II <james@...> 2005/12/19

On Dec 19, 2005, at 10:32 AM, Jules wrote:

[#171529] Re: Any TextMate Editor equivelent for Windows ? — "Gary Allum" <shadarach@...> 2005/12/19

On Mon, 19 Dec 2005 09:10:04 -0800, James Edward Gray II

[#171564] Re: Any TextMate Editor equivelent for Windows ? — Chad Perrin <perrin@...> 2005/12/19

On Tue, Dec 20, 2005 at 02:21:59AM +0900, Gary Allum wrote:

[#171743] Unix is not an *I*DE (Was: Any TextMate Editor equivelent for Windows ?) — "Josef 'Jupp' SCHUGT" <jupp@...> 2005/12/20

Hi!

[#171419] Newbie: require 'filename' - undefined local variable or method... — "Grehom" <grehom@...>

I have one line of code in a file called 'stuff.rb':

14 messages 2005/12/18

[#171653] iterate chars in a string — shinya <piccionevolante@...>

Hi there!

25 messages 2005/12/20

[#171671] Nitro Screencasts — George Moschovitis <george.moschovitis@...>

Dear devs,

18 messages 2005/12/20

[#171708] Bruce Eckel wouldn't know why to switch from Python to Ruby — "cyberco" <cyberco@...>

Bruce Eckel (author of amongst other popular books 'Thinking in Java')

34 messages 2005/12/20
[#171744] Re: Bruce Eckel wouldn't know why to switch from Python to Ruby — "rcoder" <rcoder@...> 2005/12/20

Eckel's article is getting pretty long in the tooth at this point -- I

[#171793] Re: Bruce Eckel wouldn't know why to switch from Python to Ruby — gabriele renzi <surrender_it@...> 2005/12/20

rcoder ha scritto:

[#171802] Re: Bruce Eckel wouldn't know why to switch from Python to Ruby — "Doug H" <doug00@...> 2005/12/20

[#172100] Re: Bruce Eckel wouldn't know why to switch from Python to Ruby — tony summerfelt <snowzone5@...> 2005/12/22

Doug H wrote on 12/20/2005 6:42 PM:

[#172150] Re: Bruce Eckel wouldn't know why to switch from Python to Ruby — gabriele renzi <surrender_it@...> 2005/12/22

tony summerfelt ha scritto:

[#172159] Re: Bruce Eckel wouldn't know why to switch from Python to Ruby — Chad Perrin <perrin@...> 2005/12/22

On Fri, Dec 23, 2005 at 03:42:50AM +0900, gabriele renzi wrote:

[#172227] Re: Bruce Eckel wouldn't know why to switch from Python to Ruby — gabriele renzi <surrender_it@...> 2005/12/23

Chad Perrin ha scritto:

[#172229] Re: Bruce Eckel wouldn't know why to switch from Python to Ruby — Chad Perrin <perrin@...> 2005/12/23

On Fri, Dec 23, 2005 at 12:17:50PM +0900, gabriele renzi wrote:

[#171758] Bruce Eckel and Ruby — Hal Fulton <hal9000@...>

<sigh>

64 messages 2005/12/20
[#171760] Re: Bruce Eckel and Ruby — Ryan Leavengood <leavengood@...> 2005/12/20

On 12/20/05, Hal Fulton <hal9000@hypermetrics.com> wrote:

[#171830] The "ruby way" to break apart a name? — Jeff Cohen <cohen.jeff@...>

Switching from C# to Ruby, and learning to write "the Ruby way"... is

26 messages 2005/12/21
[#172006] Re: The "ruby way" to break apart a name? — mathew <meta@...> 2005/12/21

Jeff Cohen wrote:

[#173538] Re: The "ruby way" to break apart a name? — Gerardo Santana Gez Garrido <gerardo.santana@...> 2006/01/02

We had a similar problem at work.

[#171851] Merging two Word documents with Ruby? — Denver Mike <denvermike@...>

I've got a bugger of a problem and I thought I'd toss it out there to

15 messages 2005/12/21

[#171908] ruby videos — olczyk <doctlo-usenet@...>

Aside from the Rails demo, are there any ruby videos online?

16 messages 2005/12/21

[#171926] Looking for better Ruby/Tk references... — Chris Dagnon <chris.dagnon@...>

... or better GUI APIs for Ruby.

12 messages 2005/12/21

[#171943] Why not Python? (No, no, I am not a spy) — "Tolga" <tolgacavdar@...>

First of all and very first of all, I must state that I am not an enemy

44 messages 2005/12/21
[#172131] Re: Why not Python? (No, no, I am not a spy) — "Gene Tani" <gene.tani@...> 2005/12/22

[#172144] Re: Why not Python? (No, no, I am not a spy) — Steve Litt <slitt@...> 2005/12/22

On Thursday 22 December 2005 11:07 am, Gene Tani wrote:

[#172146] Re: Why not Python? (No, no, I am not a spy) — Jeff Wood <jeff.darklight@...> 2005/12/22

Actually, the one comparison that gets touched on a bit too lightly ... is

[#171976] move to front of array — Payton Swick <payton@...>

Hi,

19 messages 2005/12/21

[#172010] String > Integer Conversion Problem — Matthew Feadler <matthew@...>

Retro thanks to all who helped me with my last post. I'm certainly more

34 messages 2005/12/21
[#172116] Re: String > Integer Conversion Problem — "Ross Bamford" <rosco@...> 2005/12/22

On Thu, 22 Dec 2005 14:07:03 -0000, jwesley <justin.w.smith@gmail.com>

[#172024] unit tests == ugly code? — Joe Van Dyk <joevandyk@...>

I've found that when I write the tests first, and then write the code,

14 messages 2005/12/21

[#172089] Strange StringScanner behaviour — Neowulf <neowulf@...>

Hi all,

16 messages 2005/12/22

[#172151] Ruby version of UMENU — Steve Litt <slitt@...>

Hi all,

13 messages 2005/12/22
[#172156] Re: Ruby version of UMENU — Gregory Brown <gregory.t.brown@...> 2005/12/22

On 12/22/05, Steve Litt <slitt@earthlink.net> wrote:

[#172163] Diff of opinion on dynamic stuff — "Drew Mills" <drewmills@...>

Let me preface this post by saying that I'm no Ruby expert. I like it.

38 messages 2005/12/22
[#172172] Re: Diff of opinion on dynamic stuff — Yukihiro Matsumoto <matz@...> 2005/12/22

Hi,

[#172176] Re: Diff of opinion on dynamic stuff — Bob Hutchison <hutch@...> 2005/12/22

[#172179] Re: Diff of opinion on dynamic stuff — Patrick Hurley <phurley@...> 2005/12/22

On 12/22/05, Bob Hutchison <hutch@recursive.ca> wrote:>> On Dec 22, 2005, at 4:27 PM, Drew Mills wrote:>> > Let me preface this post by saying that I'm no Ruby expert. I like> > it.> > It's fun. But I won't claim extensive knowledge on it.> >> > So when this guy blogs about a Python quality that he feel is better> > than a Ruby quality:> >> > It's the second generation that's going to be less enthused,> > that's going to stare in bafflement at these classes that> > mysteriously spawn methods, and trying to figure out what's> > going when there's an exception in dynamically generated> > code. You can monkeypatch code in Python pretty easily, but we> > look down on it enough that we call it "monkeypatching". In> > Ruby they call it "opening a class" and think it's a cool> > feature. I will assert: we are right, they are wrong.> >> > -- http://blog.ianbicking.org/theres-so-much-more-than-rails.html> >> > I am curious what this means. Is Python against dynamic stuff? And> > Ruby for it? And so we just agree to disagree? Or do I> > misunderstand?>> Well, Python is plenty dynamic. I think he is complaining about> Ruby's ability to re-open a class. This can make it difficult to find> the complete definition of a class (imagine doing this in a> completely random way in multiple files). So while it can be abused,> it can also be an incredible simplification of the code you write.> One thing it does is flattens inheritance hierarchies, you don't> need to introduce specialising classes just to add a few methods.> Using xampl as an illustration: the Ruby version of xampl generates 1> class for every 3 generated by the Java version of xampl, one of> those classes is eliminated because I can re-open classes (the other> is eliminated due to duck typing). Another thing reopening classes> does is, obviously, to allow you to extend the built in Ruby classes> (they are just classes after all). I suppose Ian would think things> even worse because in Ruby you can do this to objects as well as> classes.>> This 'monkeypatching' is very similar to concepts in Smalltalk and> CLOS (Common Lisp's object system). Nobody in those communities> complains too much (though Smalltalk's browser reassembles classes> for you, and new CLOS programmers are sometimes at a bit of a loss> because in CLOS methods may belong to two or more classes and it> doesn't seem that the obvious thing to do is the right thing). Ruby> just makes thing a lot easier.>> Just be careful where you aim that thing.>> Cheers,> Bob>> >> > Just curious.> >> > Drew> >> >>> ----> Bob Hutchison -- blogs at <http://www.recursive.ca/hutch/>> Recursive Design Inc. -- <http://www.recursive.ca/>> Raconteur -- <http://www.raconteur.info/>>>>>

[#172320] multithreaded file access — Matias Surdi <matiassurdi@...>

Hi...

15 messages 2005/12/23
[#172329] Re: multithreaded file access — "Jellen" <jellenchan@...> 2005/12/23

Well, I think it's OK to do that.

[#172334] Re: multithreaded file access — "J. Ryan Sobol" <ryansobol@...> 2005/12/23

On Dec 23, 2005, at 12:12 PM, Jellen wrote:

[#172371] Re: multithreaded file access — Ilmari Heikkinen <ilmari.heikkinen@...> 2005/12/23

On 12/23/05, J. Ryan Sobol <ryansobol@gmail.com> wrote:> Correct me if I'm wrong, but your examples only prove that the thread> on the CPU will be able to append the file. I *think* Matias wants> to know if the statement ( File.new('filename','a').puts("this is the> string") ) is atomic. Or in other words, do you need to enforce> mutual exclusive access to the file with a mutex? Unfortunately, I> don't have an answer to that question.

[#172428] Merry Christmas! — Christian Neukirchen <chneukirchen@...>

14 messages 2005/12/24

[#172435] ruby 1.8.4 released — Yukihiro Matsumoto <matz@...>

Merry Christmas!

14 messages 2005/12/24

[#172462] Ruby 1.8.4 Mac OS X readline problems — Daniel Harple <dharple@...>

Is anyone else having this problem?

11 messages 2005/12/24
[#172492] Re: Ruby 1.8.4 Mac OS X readline problems — "J. Ryan Sobol" <ryansobol@...> 2005/12/25

[#172515] Re: Ruby 1.8.4 Mac OS X readline problems — Jim Menard <jim.menard@...> 2005/12/25

On 12/24/05, J. Ryan Sobol <ryansobol@gmail.com> wrote:

[#172553] Re: Ruby 1.8.4 Mac OS X readline problems — Michal Suchanek <hramrach@...> 2005/12/26

On 12/25/05, Jim Menard <jim.menard@gmail.com> wrote:> On 12/24/05, J. Ryan Sobol <ryansobol@gmail.com> wrote:> >> > On Dec 24, 2005, at 12:58 PM, Daniel Harple wrote:> >> > > Is anyone else having this problem?>> Yes, I am. I don't want to install Fink or Darwin ports. I got> readline working with 1.8.2, and am now struggling to get it to work> with 1.8.4. readline.bundle is in ruby/1.8/powerpc-darwin8.3.0.>> I used "./configure --with-readline --enable-shared" to configure> Ruby, then make, then make install. When I tried running "rake test"> on a random Rails 1.0 project, the unit tests fail with>> /usr/local/bin/ruby -Ilib:test> "/usr/local/lib/ruby/gems/1.8/gems/rake-0.6.2/lib/rake/rake_test_loader.rb"> "test/unit/bookmark_test.rb" "test/unit/group_test.rb"> "test/unit/inbox_test.rb" "test/unit/user_test.rb"> dyld: NSLinkModule() error> dyld: Symbol not found: _rl_filename_completion_function> Referenced from: /usr/local/lib/ruby/1.8/powerpc-darwin8.3.0/readline.bundle> Expected in: flat namespace>> rake aborted!> Command failed with status (): [/usr/local/bin/ruby -Ilib:test "/usr/local...]>Hello

[#172494] why there's no ruby 1.8.4 for win-one-click-installer? — "Arie Kusuma Atmaja" <ariekusumaatmaja@...>

http://rubyforge.org/frs/?group_id=167

12 messages 2005/12/25

[#172611] Found a neat trick for doing recursive one-liners — Gary Watson <pfharlock@...>

This is probably something everyone in here already knows about, but I

23 messages 2005/12/27

[#172638] (Real) Primitive Ruby Generics support — Isaac Devine <isaac.devine@...>

Hi all,

20 messages 2005/12/27
[#172772] Re: [ANN] (Real) Primitive Ruby Generics support — Florian Gro<florgro@...> 2005/12/28

Isaac Devine wrote:

[#172649] Re: The Expert Ruby Programmer — "Robert Klemme" <bob.news@...>

basi <basi_lio@hotmail.com> wrote:

22 messages 2005/12/27

[#172653] Blunyx game library for Ruby — Alexander Jakopin <setrodox@...>

I'm very new at Ruby, and I like it very much. :)

12 messages 2005/12/27

[#172721] Command-line option parsing — "Eric J. Roode" <sdn.girths00869@...>

Greetings,

18 messages 2005/12/27

[#172779] Ruby Curriculum for coworkers — ssmoot@...

I've been tasked with coming up with a curriculum for Rails coworkers.

14 messages 2005/12/28

[#172818] What is the difference between :foo and "foo" ? — "Surgeon" <biyokuantum@...>

Hi,

152 messages 2005/12/28
[#172819] Re: What is the difference between :foo and "foo" ? — Alex Knaub <aknaub@...> 2005/12/28

2005/12/28, Surgeon <biyokuantum@gmail.com>:

[#172822] Re: What is the difference between :foo and "foo" ? — Steve Litt <slitt@...> 2005/12/28

On Wednesday 28 December 2005 02:32 pm, Alex Knaub wrote:

[#172841] Re: What is the difference between :foo and "foo" ? — Johannes Friestad <johannes.friestad@...> 2005/12/28

attr_reader :fname, :lname (attr_reader "fname", "lname" works too)

[#172848] Re: What is the difference between :foo and "foo" ? — ara.t.howard@... 2005/12/28

On Thu, 29 Dec 2005, Johannes Friestad wrote:

[#172916] Re: What is the difference between :foo and "foo" ? — Johannes Friestad <johannes.friestad@...> 2005/12/29

On 12/28/05, ara.t.howard@noaa.gov <ara.t.howard@noaa.gov> wrote:

[#172921] Re: What is the difference between :foo and "foo" ? — Johannes Friestad <johannes.friestad@...> 2005/12/29

BTW: Ruby version 1.8.2, Win XP Pro, Pentium M 2.0 GHz

[#172924] Re: What is the difference between :foo and "foo" ? — ara.t.howard@... 2005/12/29

On Thu, 29 Dec 2005, Johannes Friestad wrote:

[#172939] Re: What is the difference between :foo and "foo" ? — Jim Weirich <jim@...> 2005/12/29

ara wrote:

[#172954] Re: What is the difference between :foo and "foo" ? — "Surgeon" <biyokuantum@...> 2005/12/29

[#172976] Re: What is the difference between :foo and "foo" ? — Steve Litt <slitt@...> 2005/12/29

On Thursday 29 December 2005 03:03 am, Surgeon wrote:

[#172986] Re: What is the difference between :foo and "foo" ? — dblack@... 2005/12/29

Hi --

[#172994] Re: What is the difference between :foo and "foo" ? — Steve Litt <slitt@...> 2005/12/29

On Thursday 29 December 2005 10:16 am, dblack@wobblini.net wrote:

[#172996] Re: What is the difference between :foo and "foo" ? — dblack@... 2005/12/29

Hi --

[#173000] Re: What is the difference between :foo and "foo" ? — Kirk Haines <khaines@...> 2005/12/29

On Thursday 29 December 2005 8:45 am, Steve Litt wrote:

[#173008] Re: What is the difference between :foo and "foo" ? — Steve Litt <slitt@...> 2005/12/29

On Thursday 29 December 2005 11:20 am, Kirk Haines wrote:

[#173020] Re: What is the difference between :foo and "foo" ? — Austin Ziegler <halostatue@...> 2005/12/29

On 29/12/05, Steve Litt <slitt@earthlink.net> wrote:

[#173069] Re: What is the difference between :foo and "foo" ? — Devin Mullins <twifkak@...> 2005/12/30

Austin Ziegler wrote:

[#173003] Re: What is the difference between :foo and "foo" ? — Austin Ziegler <halostatue@...> 2005/12/29

On 29/12/05, Steve Litt <slitt@earthlink.net> wrote:

[#173012] Re: What is the difference between :foo and "foo" ? — Steve Litt <slitt@...> 2005/12/29

On Thursday 29 December 2005 11:30 am, Austin Ziegler wrote:

[#173108] Re: What is the difference between :foo and "foo" ? — Christian Neukirchen <chneukirchen@...> 2005/12/30

Steve Litt <slitt@earthlink.net> writes:

[#173124] Re: What is the difference between :foo and "foo" ? — Steve Litt <slitt@...> 2005/12/30

On Friday 30 December 2005 08:06 am, Christian Neukirchen wrote:

[#173178] Re: What is the difference between :foo and "foo" ? — Steve Litt <slitt@...> 2005/12/30

On Friday 30 December 2005 10:35 am, Steve Litt wrote:

[#173180] Re: What is the difference between :foo and "foo" ? — Austin Ziegler <halostatue@...> 2005/12/30

On 30/12/05, Steve Litt <slitt@earthlink.net> wrote:

[#173211] Re: What is the difference between :foo and "foo" ? — Chad Perrin <perrin@...> 2005/12/30

On Sat, Dec 31, 2005 at 05:03:20AM +0900, Austin Ziegler wrote:

[#173223] Re: What is the difference between :foo and "foo" ? — Austin Ziegler <halostatue@...> 2005/12/31

On 30/12/05, Chad Perrin <perrin@apotheon.com> wrote:

[#173225] Re: What is the difference between :foo and "foo" ? — Chad Perrin <perrin@...> 2005/12/31

On Sat, Dec 31, 2005 at 09:37:00AM +0900, Austin Ziegler wrote:

[#173226] Re: What is the difference between :foo and "foo" ? — Austin Ziegler <halostatue@...> 2005/12/31

On 30/12/05, Chad Perrin <perrin@apotheon.com> wrote:

[#173238] Re: What is the difference between :foo and "foo" ? — Chad Perrin <perrin@...> 2005/12/31

On Sat, Dec 31, 2005 at 09:43:54AM +0900, Austin Ziegler wrote:

[#173242] Re: What is the difference between :foo and "foo" ? — Austin Ziegler <halostatue@...> 2005/12/31

On 30/12/05, Chad Perrin <perrin@apotheon.com> wrote:

[#173243] Re: What is the difference between :foo and "foo" ? — Chad Perrin <perrin@...> 2005/12/31

On Sat, Dec 31, 2005 at 11:50:27AM +0900, Austin Ziegler wrote:

[#173245] Re: What is the difference between :foo and "foo" ? — Austin Ziegler <halostatue@...> 2005/12/31

On 30/12/05, Chad Perrin <perrin@apotheon.com> wrote:

[#172832] Re: What is the difference between :foo and "foo" ? — Yohanes Santoso <ysantoso-rubytalk@...> 2005/12/28

Alex Knaub <aknaub@gmail.com> writes:

[#172854] Re: What is the difference between :foo and "foo" ? — James Britt <james_b@...> 2005/12/28

Yohanes Santoso wrote:

[#172909] Re: What is the difference between :foo and "foo" ? — Eero Saynatkari <ruby-forum-reg@...> 2005/12/29

Yohanes Santoso wrote:

[#172983] Re: What is the difference between :foo and "foo" ? — Yohanes Santoso <ysantoso-rubytalk@...> 2005/12/29

Eero Saynatkari <ruby-forum-reg@mailinator.com> writes:

[#173005] Re: What is the difference between :foo and "foo" ? — Chad Perrin <perrin@...> 2005/12/29

On Thu, Dec 29, 2005 at 11:37:59PM +0900, Yohanes Santoso wrote:

[#173025] Re: What is the difference between :foo and "foo" ? — Yohanes Santoso <ysantoso-rubytalk@...> 2005/12/29

Chad Perrin <perrin@apotheon.com> writes:

[#173056] Re: What is the difference between :foo and "foo" ? — Chad Perrin <perrin@...> 2005/12/30

On Fri, Dec 30, 2005 at 05:07:35AM +0900, Yohanes Santoso wrote:

[#172820] new project: Ruby Message System (RMS) — "Mark Watson" <mark.watson@...>

I have relied on guarenteed delivery asynchronous messaging to build

13 messages 2005/12/28

[#172861] Directory and file listing — adam beazley <abeazley@...>

Hello,

18 messages 2005/12/28
[#172871] Re: Directory and file listing — Detlef Reichl <detlef.reichl@...> 2005/12/28

Am Donnerstag, den 29.12.2005, 07:07 +0900 schrieb adam beazley:

[#172881] Re: Directory and file listing — adam beazley <abeazley@...> 2005/12/28

[#172887] Re: Directory and file listing — Johannes Friestad <johannes.friestad@...> 2005/12/28

> thanks for your reply, I believe i understand, however I dont know how

[#172888] Re: Directory and file listing — Johannes Friestad <johannes.friestad@...> 2005/12/28

> > But on the string answer of your question:

[#172885] Real-time image processing in Ruby — John Koschwanez <ishkaprog@...>

I'm a Ruby newbie - "Programming Ruby" was great Xmas break reading!

10 messages 2005/12/28

[#173032] Path Separator and Windows — Justin Johnson <justinjohnson@...>

Using ruby 1.8.2 on Windows XP, the path separator used for things like

21 messages 2005/12/29
[#173035] Re: Path Separator and Windows — Bob Showalter <bob_showalter@...> 2005/12/29

Justin Johnson wrote:

[#173039] Re: Path Separator and Windows — Justin Johnson <justinjohnson@...> 2005/12/29

Bob Showalter wrote:

[#173063] Using Ruby to Invest in the Market? — Michael Gorsuch <michael.gorsuch@...>

An idea popped in my head today. Has anyone ever used a stock

14 messages 2005/12/30

[#173083] Fixnums can have instance variables? Cool. — gwtmp01@...

This really surprises me:

15 messages 2005/12/30

[#173110] Numeric Maze (#60) — Ruby Quiz <james@...>

The three rules of Ruby Quiz:

126 messages 2005/12/30
[#173201] Re: [QUIZ] Numeric Maze (#60) — "J. Ryan Sobol" <ryansobol@...> 2005/12/30

On Dec 30, 2005, at 8:37 AM, Ruby Quiz wrote:

[#173204] Re: [QUIZ] Numeric Maze (#60) — James Edward Gray II <james@...> 2005/12/30

On Dec 30, 2005, at 4:17 PM, J. Ryan Sobol wrote:

[#173356] Re: [QUIZ] Numeric Maze (#60) — Stephen Waits <steve@...> 2005/12/31

[#173413] Re: [QUIZ] Numeric Maze (#60) — Peter Burns <rictic@...> 2006/01/01

On 12/31/05, Stephen Waits <steve@waits.net> wrote:

[#173416] Re: [QUIZ] Numeric Maze (#60) — Stephen Waits <steve@...> 2006/01/01

[#173429] Re: [QUIZ] Numeric Maze (#60) — Wilson Bilkovich <wilsonb@...> 2006/01/01

On 12/31/05, Stephen Waits <steve@waits.net> wrote:

[#173438] Re: [QUIZ] Numeric Maze (#60) — "Dominik Bathon" <dbatml@...> 2006/01/01

On Sun, 01 Jan 2006 04:59:32 +0100, Wilson Bilkovich <wilsonb@gmail.com>

[#173443] Re: [QUIZ] Numeric Maze (#60) — Ilmari Heikkinen <ilmari.heikkinen@...> 2006/01/01

On 1/1/06, Dominik Bathon <dbatml@gmx.de> wrote:>> $ time ruby num_maze.rb 22222 99999> [22222, 22224, 11112, 5556, 2778, 2780, 1390, 1392, 696, 348, 174, 87, 89,> 91, 93, 95, 97, 194, 388, 390, 780, 1560, 1562, 3124, 6248, 12496, 12498,> 24996, 24998, 49996, 49998, 99996, 199992, 199994, 99997, 99999]>> real 0m1.768s> user 0m1.725s> sys 0m0.022s>> ;-)

[#173463] Numeric Maze (#60) — James Edward Gray II <james@...> 2006/01/01

On Dec 30, 2005, at 7:37 AM, Ruby Quiz wrote:

[#173468] Re: [SOLUTION] Numeric Maze (#60) — Matthew Smillie <M.B.Smillie@...> 2006/01/01

On Jan 1, 2006, at 15:47, James Edward Gray II wrote:

[#173470] Re: [SOLUTION] Numeric Maze (#60) — Stephen Waits <steve@...> 2006/01/01

[#173478] Re: [SOLUTION] Numeric Maze (#60) — Maurice Codik <maurice.codik@...> 2006/01/01

I guess we're allowed to submit solutions now... here's my first ever ruby

[#173477] Numeric Maze (#60) — Ilmari Heikkinen <ilmari.heikkinen@...> 2006/01/01

On 12/30/05, Ruby Quiz <james@grayproductions.net> wrote:> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=>> by Christer Nilsson>> You have a starting point and a target, say 2 and 9.>> You have a set of three operations:>> double> halve (Odd numbers cannot be halved.)> add_two>> Problem: Move from the starting point to the target, minimizing the number of> operations.>> Examples:>> solve(2,9) # => [2,4,8,16,18,9]> solve(9,2) # => [9,18,20,10,12,6,8,4,2]>>

[#173111] On Symbols — Devin Mullins <twifkak@...>

Hey, all you lurkers:

34 messages 2005/12/30

[#173116] Fwd: [SOLUTION] Sudoku — James Edward Gray II <james@...>

Begin forwarded message:

12 messages 2005/12/30

[#173125] Method for turning strings into code — Steve Litt <slitt@...>

Hi all,

12 messages 2005/12/30

[#173149] About Steve Yegge's 'Opinions considered harmful' post — Gregory Brown <gregory.t.brown@...>

Excuse me, but where in this post does anything about Ruby arise?

11 messages 2005/12/30

[#173179] Another Newb asks questions. — Joseph Divelbiss <joseph@...>

Ok, recently started "trying" to learn this wonderful language, but am

13 messages 2005/12/30

[#173279] A few questions of function and style from a newbie — "Sven Johansson" <sven_u_johansson@...>

Hi, good people of clr,

12 messages 2005/12/31

[ANN] el4r-1.0.0 - EmacsLisp for Ruby

From: rubikitch@...
Date: 2005-12-01 18:01:09 UTC
List: ruby-talk #168327
Hi,

El4r enables you to write Emacs programs in Ruby as well as in EmacsLisp.
I call the Ruby language to manipulate Emacs `EmacsRuby'.

El4r and Test::Unit enables you to test EmacsLisp/EmacsRuby programs automatically.

El4r is available at 
http://www.rubyist.net/~rubikitch/computer/el4r/index.en.html


== What's new

=== [2005/12/01] 1.0.0 released

* Installer.
* Packaging policy.
* Fixed fatal error bug.
* Fixed defun-GC problem.
* Renamed: el4r-runtest.rb -> el4r-runtest
* New command: el4r
* New EmacsRuby functions.
  * define_minor_mode
  * define_derived_mode
  * eval_after_load

=== [2005/10/11] 0.9.3 released

* el4r-runtest.rb: Raise when the test-script file is not found.
* Now output builtin functions (p, print, puts ...) are usable in EmacsRuby.
* Fixed an error-handling bug.
* More stable.

=== [2005/10/05] 0.9.2 released

* ~/.el4rrc.rb contains all the el4r setting.
* Automatic configuration.
* Now el4r can be installed in arbitrary directory.
* A block is accepted in El4r::ELMethodsMixin#newbuf .
* New class: ElApp
* Works with Windows(WINE).
* Introduced el4r_load search path.
* New EmacsRuby library in el4r/ directory.


== Download / Install / Setup
Since version 1.0.0, el4r introduced installer.
If you got error when downloading, you must update Ruby.
Here is the shell commands to download, install and setup.
el4r-rctool setups and updates your dotfiles automatically.

To update older el4r (<= 0.9.1), you must remove these lines from ~/.emacs,
  (add-to-list 'load-path "~/src/el4r/elisp/")
  (require 'el4r)
  (el4r-boot)
and this line from ~/.el4r/init.rb by hand.
  el4r_load "el4r-mode.rb"
In newer el4r, el4r-rctool updates your dotfiles automatically.

  ruby -ropen-uri -e 'URI("http://www.rubyist.net/~rubikitch/archive/el4r-1.0.0.tar.gz").read.display' | tar xzf -
  cd el4r-1.0.0
  ruby setup.rb

  ruby -S el4r-rctool -p
  ruby -S el4r-rctool -i


The diretory to put EmacsRuby scripts is ~/.el4r by default.
The environment variable EL4R_HOME sets the directory to put EmacsRuby scripts.
  

Here is a test program of el4r.

#    el4r - EmacsLisp for Ruby 
#    Copyright (C) 2005 rubikitch <rubikitch@ruby-lang.org>
#    Version: $Id: test-el4r.rb 953 2005-11-30 17:47:46Z rubikitch $

#    This program is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program; if not, write to the Free Software
#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

require 'test/unit'

require 'tempfile'
require 'tmpdir'
require 'pathname'
require 'fileutils'
class << Tempfile
  def path(content, dir=Dir.tmpdir)
    x = Tempfile.open("content", dir)
    x.write content
    x.close
    x.open
    x.path
  end

  def pathname(content, dir=Dir.tmpdir)
    Pathname.new(path(content, dir=Dir.tmpdir))
  end
end


# El4r self test.
class TestEl4r < Test::Unit::TestCase
  # ElMixin is already included/extended.
  # So we can write EmacsRuby in this class.

  # Testing ELListCell#to_ary.
  # This method enables us to multiple assignment.
  def test_to_ary
    list = el4r_lisp_eval(%q((list 1 2)))
    one, two = list

    assert_equal(list.to_a, list.to_ary)
    assert_equal(1, one)
    assert_equal(2, two)
  end

  # Testing with and match-string.
  def test_match_string
    lisp = %q((progn
                (switch-to-buffer "a")

              (save-excursion
                (insert "abcdefg\n")
                (goto-char 1)
                (re-search-forward "^\\\\(.+\\\\)$")
                )
              (match-string 1)))

    ruby = lambda{
##### [with]
      with(:save_excursion) do
        goto_char 1
        re_search_forward('^\\(.+\\)$')
      end
      match_string 1
##### [/with]
    }
    assert_equal(el4r_lisp_eval(lisp), ruby[])

  end


  # helper method:
  # execute a block with temporary buffer.
  # and return the contents of buffer.
  def with_temp_buffer_string(&block)
    with(:with_temp_buffer){
      self.instance_eval(&block)
      buffer_string
    }
  end

  # this test was in test.el
  def test_test_el__debug_ruby_eval_report
    actual = with_temp_buffer_string {
      el4r_lisp_eval %q((progn
(el4r-debug-ruby-eval-report "nil")
(el4r-debug-ruby-eval-report "true")
(el4r-debug-ruby-eval-report "false")
(el4r-debug-ruby-eval-report "1 + 6")
(el4r-debug-ruby-eval-report "\"String\"")
))
    }
    expected = <<EOB
nil
  => nil
true
  => t
false
  => nil
1 + 6
  => 7
"String"
  => "String"
EOB
    assert_equal(expected, actual)
  end

  def test_test_el__condition_case

    # (mode-info-describe-function 'signal 'elisp)
    # (mode-info-describe-function 'condition-case 'elisp)
    el4r_lisp_eval %q((progn
(put 'test-error
     'error-conditions                        
     '(error test-error))
(put 'test-error 'error-message "Test Error")
    ))
    #'
    el4r_lisp_eval %q((progn
(setq error-desc nil)
(condition-case err
    (signal 'test-error '(123))
  (test-error (setq error-desc (format "Error is passed: %s" err)))
  )
))
    #'
    assert_equal("Error is passed: (test-error 123)", elvar.error_desc)

    el4r_lisp_eval %q((progn
(setq error-desc nil)
(condition-case err
    (el4r-ruby-eval "el4r_lisp_eval(\"(signal 'test-error '(123))\")")
  (test-error (setq error-desc (format "Error is passed: %s" err)))
  )
))
    #'
    assert_equal("Error is passed: (test-error 123)", elvar.error_desc)
  end

  # eval test
  def test_el4r_eval
    result = with_temp_buffer_string{
      el4r_lisp_eval(<<'EOF')
        (insert-string (el4r-ruby-eval "\"Hello from ruby from emacs from ruby!\n\""))
EOF
    }
    assert_equal("Hello from ruby from emacs from ruby!\n", result)
    assert_equal(true, el4r_lisp_eval('t'))
  end


  # list: cons, car/cdr
  def test_list
    list = el("'(3 2 1)")
    list = cons(4, list)
    assert_equal("(4 3 2 1)", prin1_to_string(list))

    ary = []
    while list
      ary << car(list)
      list = cdr(list)
    end
    assert_equal("[4, 3, 2, 1]", ary.inspect)
  end

  # pass a Ruby object to Emacs
  def test_object
    obj = Object.new
    assert_equal("Is ruby object passed? ... true",
                 "Is ruby object passed? ... #{car(cons(obj, nil)) == obj}")
  end    

  

  # Using defun ( Proc -> Lambda conversion )
  def test_defun_function
    defun(:my_ruby_func) { |a|
      0
    }
    # redefine
    defun(:my_ruby_func) { |a|
      "String from my_ruby_func: '#{a}'"
    }
    assert_equal("String from my_ruby_func: 'Hello!'", my_ruby_func("Hello!"))
  end

  # defun a command
  def test_defun_command_1
    defun(:my_command, :interactive => true) {
      insert_string("My Interactive command from Ruby."); newline
    }

    assert_equal("My Interactive command from Ruby.\n",
                 with_temp_buffer_string{ call_interactively(:my_command) })

  end

  # defun a command with docstring
  def test_defun_command_2
##### [my_command2]
    defun(:my_command2,
          :interactive => "d", :docstring => "description...") { |point|
      insert_string("Current point is #{point}."); newline
    }
##### [/my_command2]
    assert_equal("d", nth(1, commandp(:my_command2)))
    assert_equal("description...", documentation(:my_command2))
    assert_equal("Current point is 1.\n",
                 with_temp_buffer_string{ call_interactively(:my_command2) })
  end

  # defining odd-named function
  def test_defun_oddname
    # Lisp can define `1+1' function! LOL
    defun("1+1"){2}
    assert_equal(2, funcall("1+1"))
  end

  # Calling lambda
  def test_lambda
    lambda = el4r_lisp_eval("(lambda (i) (+ i 1))")
    assert_equal(2, funcall(lambda, 1))
  end

  # Calling special form like save-excursion
  def test_with
    x = with_temp_buffer_string {
      insert_string("a\n")
      with(:save_excursion) {
        beginning_of_buffer
        insert_string("This is inserted at the beginning of buffer."); newline
      }
    }
    assert_equal("This is inserted at the beginning of buffer.\na\n", x)
  end

  # ELListCell
  def test_ELListCell
    assert_equal([1, 2], cons(1, cons(2, nil)).to_a )
    assert_equal([10,20], el4r_lisp_eval(%((list 1 2))).map{|x| x*10})

    assert_equal({'a'=>1, 'b'=>2}, list(cons("a",1), cons("b", 2)).to_hash)
    assert_raises(TypeError){ list(cons("a",1), "b", "c").to_hash }

    assert_equal("ELListCell[1]", list(1).inspect)
    assert_equal("ELListCell[1, 2]", list(1,2).inspect)
  end
  
  # ELConsCell
  def test_ELConsCell
    assert_equal([1,2], el4r_cons_to_rubyary(cons(1,2)))
    assert_equal("ELConsCell[1, 2]", cons(1,2).inspect)

    assert_equal("ELListCell[1, 2, ELConsCell[3, 4]]", list(1,2,cons(3,4)).inspect)
    assert_equal("ELListCell[1, 2]", cons(1, list(2)).inspect)
  end

  # ELVector
  def test_ELVector
    v = el4r_lisp_eval("[1 2]")
    assert( vectorp(v) )
    assert_equal("ELVector[1, 2]", v.inspect)
    assert_equal(1, v[0])
    assert_equal(1, v[-2])
    assert_raises(ArgumentError) { v[2] } # index is too large
    assert_raises(TypeError) { v["X"] }

    assert_equal([1, 2], v[0,2])
    assert_equal([1, 2], v.to_a)

    # Enumerable
    assert_equal(1, v.find{|x| x==1})

    # to_ary
    one, = v
    assert_equal(1, one)

    # aset
    elvar.v = v
    assert_equal(10, v[0]=10)
    assert_equal(10, v[0])
    assert_equal([10,2], v.to_a)
    assert_equal(10, elvar.v[0])
    assert_equal([10,2], elvar.v.to_a)
    assert_raises(ArgumentError) { v[2]=3 } # index is too large
    assert_raises(TypeError) { v["X"]=1 }

    v[-1]=20
    assert_equal([10,20], elvar.v.to_a)
  end

  # Accessing to lisp variables with elvar
  def test_elvar
    elvar.myvar = 123
    assert_equal(123, elvar.myvar)

    elvar["myvar"] = 456
    assert_equal(456, elvar["myvar"])
    
    assert( elvar.myvar == elvar["myvar"] )
  end

  # get/set an odd-named variable
  def test_elvar__oddname
    elvar["*an/odd+variable!*"] = 10
    assert_equal(10, elvar["*an/odd+variable!*"])
  end

  # Error passing
  def test_error
    assert_raises(RuntimeError) {
      el4r_lisp_eval(<<-'EOF')
        (el4r-ruby-eval "raise \"Is error handled correctly?\""))
      EOF
    }
  end

  # let
  def test_let
    elvar.testval = 12
    testval_in_letblock = nil
    let(:testval, 24) {
      testval_in_letblock = elvar.testval
    }

    assert_equal(24, testval_in_letblock)
    assert_equal(12, elvar.testval)
  end

  # Regexp convert: Convert Ruby regexps to MESSY Emacs regexps.
  def test_regexp
#  (find-node "(emacs-ja)Regexps")
    
    conv = lambda{|from,to| assert_equal(to, el4r_conv_regexp(from)) }
    conv[ //, '' ]
    conv[ /a/, 'a' ]
    conv[ /a./, 'a.' ]
    conv[ /a*/, 'a*' ]
    conv[ /a+/, 'a+' ]
    conv[ /a?/, 'a?' ]
    conv[ /[ab]/, '[ab]' ]
    conv[ /[^ab]/, '[^ab]' ]
    conv[ /^ab/, '^ab' ]
    conv[ /ab$/, 'ab$' ]
    conv[ /a|b/, 'a\|b' ]
    conv[ /(ab)/, '\(ab\)' ]
    conv[ /\As/, '\`s' ]
    conv[ /s\Z/, %q[s\'] ]
    # \=
    conv[ /\bball\B/, '\bball\B']
    # \<
    # \>
    conv[ /\w/, '[0-9A-Za-z_]']
    conv[ /\W/, '[^0-9A-Za-z_]']
    # \sC
    # \SC
    # \D (number)
  end

  # Now you can specify a Ruby regexp to string-match, re-search-forward and so on
  def test_string_match
    s = "a"
    assert_equal(0, string_match("a", s))
    assert_equal(0, string_match(/a/, s))
    assert_equal(0, string_match('\(a\|\b\)', s))
    assert_equal(0, string_match(/a|b/, s))
    assert_equal(0, string_match(/^a/, s))
    assert_equal(0, string_match(/a$/, s))
    assert_equal(0, string_match(/.*/, s))
    assert_equal(nil, string_match(/not-match/, s))
    
  end

  # ElMixin: elisp {}
  def test_elmixin
    eval %{
      class ::Foo
        include ElMixin
        def foo
          elisp {
            [self.class, outer.class]
          }
        end

        def one
          1
        end
      end

    }

    el4r, outer = Foo.new.foo
    assert_equal(El4r::ELInstance, el4r)
    assert_equal(Foo, outer)
  end

  # EL error
  def test_elerror
    errormsg = nil
    begin
      el4r_lisp_eval(%q((defun errorfunc0 ())))
      with(:with_current_buffer, "*scratch*"){
        let(:x, 1) {
          with(:save_excursion){
            errorfunc0 1       # wrong number of argument!!
          }
        }
      }
      flunk
    rescue
      errormsg = $!.to_s
    end

    assert_match(/\n\(errorfunc0.+save-excursion.+let.+with-current-buffer.+$/m, errormsg.to_s) 
  end

  # to_s: Implicitly call prin1_to_string
  def test_to_s
    list = funcall(:list,1)
    assert_equal("(1)", "#{list}")
    assert_equal( prin1_to_string(list), list.to_s)
  end

  # defadvice 1
  def test_defadvice_1
    defun(:adtest1){
      elvar.v = 1
    }
    with(:defadvice, el("adtest1 (after adv activate)")){
      elvar.v = 2
    }
    adtest1

    assert_equal(2, elvar.v)
  end

  # defadvice 2
  def test_defadvice_2
    elvar.w = 0
    elvar.x = 0
    defun(:adtest2){
      elvar.w += 1
      3
    }
    defadvice(:adtest2, :around, :adv2, :activate) {
      ad_do_it
      elvar.x = 10
      ad_do_it
    }
    ret = adtest2()

    assert_equal(2, elvar.w)
    assert_equal(10, elvar.x)
    assert_equal(3, ret)
  end

  # defadvice 3
  def test_defadvice_3
    begin
##### [adtest3]
      # define a function
      defun(:adtest3){ 1 }
##### [/adtest3]
      assert_equal(1, adtest3())
      assert_equal(nil, commandp(:adtest3))

##### [adtest3-advice]
      # now define an advice
      defadvice(:adtest3, :around, :adv3, :activate,
                :docstring=>"test advice", :interactive=>true) {
        ad_do_it
        elvar.ad_return_value = 2
      }
##### [/ad_return_value]
      assert(commandp(:adtest3))
      assert_equal(2, adtest3())
      assert_match(/test advice/, documentation(:adtest3))
    ensure
      ad_deactivate :adtest3
#      fmakunbound :adtest3
    end
  end

  # bufstr
  def test_bufstr
    s = bufstr(newbuf(:name=>"axx", :contents=>"foo!"))
    assert_equal("foo!", s)

    newbuf(:name=>"axxg", :contents=>"bar!", :current=>true)
    s = bufstr 
    assert_equal("bar!", s)
  end

  def xtest_ad_do_it_invalid
    assert_raises(El4r::El4rError){
      ad_do_it
    }
  end

  # el_load
  def test_el_load
    begin
      el = File.expand_path("elloadtest.el")
      open(el, "w"){|w| w.puts(%q((setq elloadtest 100)))}
      el_load(el)
      assert_equal(100, elvar.elloadtest)
    ensure
      File.unlink el
    end
  end

  # equality
  def test_EQUAL
    b1 = current_buffer
    b2 = current_buffer
    assert(b1 == b1)
    assert(b1 == b2)
    assert_equal(b1,b2)
  end

  # test delete-other-windows workaround in xemacs
  def test_delete_other_windows
    w = selected_window
    elvar.window_min_height = 1
    split_window
    split_window 
    delete_other_windows
    assert(one_window_p)
    assert(eq(w, selected_window))
  end

  # Lisp string -> Ruby string  special case
  def test_el4r_lisp2ruby__normal
    cmp = lambda{|str| assert_equal(str, eval(el4r_lisp2ruby(str)))}
# (mode-info-describe-function 'prin1-to-string 'elisp)
# (string= "\021" (el4r-ruby-eval (el4r-lisp2ruby "\021")))

    cmp[ "" ]
    cmp[ "a"*999999 ]
    cmp[ '1' ]
    cmp[ 'a' ]
    cmp[ '\\' ]
    cmp[ '\\\\' ]
    cmp[ '\\\\\\' ]
    cmp[ '""' ]
    cmp[ '"' ]
    cmp[ "''" ]
    cmp[ '#{1}' ]
    cmp[ '\#{1}' ]
    cmp[ '#{\'1\'}' ]
    cmp[ '#@a' ]
    cmp[ "\306\374\313\334\270\354" ]  # NIHONGO in EUC-JP
  end

  def test_el4r_lisp2ruby__treat_ctrl_codes
    cmp = lambda{|str| assert_equal(str, eval(el4r_lisp2ruby(str)))}
    elvar.coding_system_for_write :binary
    elvar.coding_system_for_write :binary
    set_buffer_file_coding_system :binary
    el4r_treat_ctrl_codes { 
      cmp[ "" ]
      cmp[ "a"*999999 ]
      cmp[ '1' ]
      cmp[ 'a' ]
      cmp[ '\\' ]
      cmp[ '\\\\' ]
      cmp[ '\\\\\\' ]
      cmp[ '""' ]
      cmp[ '"' ]
      cmp[ "''" ]
      cmp[ '#{1}' ]
      cmp[ '\#{1}' ]
      cmp[ '#{\'1\'}' ]
      cmp[ '#@a' ]

      cmp[ "\ca" ]
      cmp[ "\cb" ]
      cmp[ "\cc" ]
      cmp[ "\cd" ]
      cmp[ "\ce" ]
      cmp[ "\cf" ]
      cmp[ "\cg" ]
      cmp[ "\ch" ]
      cmp[ "\ci" ]
      cmp[ "\cj" ]
      cmp[ "\ck" ]
      cmp[ "\cl" ]
      # C-m
      # cmp[ "\cn" ]  failed on xemacs
      # cmp[ "\co" ]  failed on xemacs
      cmp[ "\cp" ]
      cmp[ "\cq" ]
      # C-r
      cmp[ "\cs" ]
      cmp[ "\ct" ]
      cmp[ "\cu" ]
      cmp[ "\cv" ]
      cmp[ "\cw" ]
      cmp[ "\cx" ]
      # cmp[ "\cy" ]
      cmp[ "\cz" ]
      cmp[ "\306\374\313\334\270\354" ]  # NIHONGO in EUC-JP
    }
  end

  
  def el4r_load_test_helper(dir)
    begin
      $loaded = nil
      tmpscript = "#{dir}/__testtmp__.rb"
      "$loaded = true".writef(tmpscript)
      el4r_load "__testtmp__.rb"
      assert_equal(true, $loaded)
    ensure
      FileUtils.rm_f tmpscript
    end
  end

  def test_el4r_load__load_path
    begin
      load_path_orig = el4r.conf.el4r_load_path
      tmp = Dir.tmpdir
      load_path = [ tmp, "#{tmp}/a" ]
      el4r.conf.el4r_load_path = load_path
      load_path.each do |dir|
        FileUtils.mkdir_p dir
        el4r_load_test_helper dir
      end
    ensure
      el4r.conf.el4r_load_path = load_path_orig
      FileUtils.rm_rf "#{tmp}/a"
    end
    
  end

  def test_el4r_load__not_exist
    assert_raises(LoadError) { el4r_load "__not_exist.rb" }
    assert_equal(false,  el4r_load("__not_exist.rb", true))
  end

  def test_el4r_load__order
    begin 
      $loaded = nil
      load_path = el4r.conf.el4r_load_path = [ el4r_homedir, el4r.site_dir ]
      FileUtils.mkdir_p load_path
      rb = "__testtmp__.rb"
      home_rb = File.expand_path(rb, el4r_homedir)
      site_rb = File.expand_path(rb, el4r.site_dir)
      "$loaded = :OK".writef(home_rb)
      "$loaded = :NG".writef(site_rb)
      el4r_load rb
      assert_equal(:OK, $loaded)
    ensure
      FileUtils.rm_f [home_rb, site_rb]
    end
  end

  def test_stdlib_loaded
    assert_equal(true, fboundp(:winconf_push))
  end

  def test_winconf
    # make a winconf
    switch_to_buffer "a buffer"
    insert "string"
    pt = point
    # current_window_configuration does not works with xemacs -batch. I do not know why.
    assert( one_window_p )
    buf = current_buffer

    winconf_push

    # alter the winconf
    goto_char 1
    split_window

    winconf_pop

    # revive the winconf
    assert( one_window_p )
    assert_equal(buf, current_buffer)
    assert_equal(pt, point)
  end

  def test_el4r_output
    printf("\t\n\ca!%s!","a")
    print(1)
    assert_equal("\t\n\ca!a!1", bufstr("*el4r:output*"))
  end

  def test_process_autoloads
    begin
      tmp = Dir.tmpdir
      autoload_dir = "#{tmp}/autoload"
      FileUtils.mkdir_p autoload_dir
      $ary = []
      %w[01first.rb 02second.rb 03third.rb].each_with_index do |fn, i|
        open(File.join(autoload_dir, fn), "w"){|f| f.write "$ary << #{i}" }
      end
      el4r_process_autoloads autoload_dir

      assert_equal [0,1,2], $ary
    ensure
      FileUtils.rm_rf autoload_dir
    end
  end

  def test_eval_after_load
    begin
      tmp = Dir.tmpdir
      add_to_list :load_path, tmp
      el = "#{tmp}/hoge.el"
      open(el, "w"){|f| f.write "(setq hoge 100)" }

      elvar.hoge = 1
      eval_after_load("hoge") do
        elvar.hoge = 200
      end
      assert_equal 1, elvar.hoge

      el_load "hoge"
      assert_equal 200, elvar.hoge
    ensure
      FileUtils.rm_f el
    end
  end

  def test_define_derived_mode
    @passed = false
##### [derived]
    define_derived_mode(:foo_mode, :fundamental_mode, "FOO", "doc") do
      @passed = true
    end
##### [/derived]
    assert_equal false, @passed
    foo_mode
    assert_equal true, @passed
    assert_equal "foo-mode", elvar.major_mode.to_s

    @passed = false
    define_derived_mode("bar-mode", el(:foo_mode), "Bar") do
      @passed = true
    end
    assert_equal false, @passed
    bar_mode
    assert_equal true, @passed

    define_derived_mode("baz-mode", el(:bar_mode), "Baz")
    baz_mode
    assert_equal "baz-mode", elvar.major_mode.to_s

  end

  def test_define_minor_mode
    @passed = false
##### [minor-mode]
    define_minor_mode(:a_minor_mode, "test minor mode") do
      @passed = true
    end
##### [/minor-mode]
    assert_equal false, @passed
    a_minor_mode
    assert_equal true, @passed
    assert_equal true, elvar.a_minor_mode
  end

# end of TestEl4r
end

# newbuf examples
class TestNewbuf < Test::Unit::TestCase
  include ElMixin

  def setup
    @bufname = "buffer-does-not-exist!!!"
  end

  def teardown
    kill_buffer(@bufname) if get_buffer(@bufname)
  end

  def setbuf
    set_buffer @x
  end

  def test_create
    @x = newbuf(:name=>@bufname)
    setbuf
    assert_equal(true, bufferp(@x))
    assert_equal(@bufname, buffer_name(@x))
    assert_equal("", buffer_string)

    y = newbuf(:name=>@bufname)
    assert(eq(@x,y))
  end

  def test_contents
    @x = newbuf(:name=>@bufname, :contents=>"foo")
    setbuf
    assert_equal("foo", buffer_string)
    assert_equal(4, "foo".length+1)
    assert_equal(4, point)

    # buffer is erased
    @x = newbuf(:name=>@bufname, :contents=>"bar")
    setbuf
    assert_equal("bar", buffer_string)
  end

  def test_file
    begin
      file = Tempfile.path("abcd")
      @x = newbuf(:file=>file)
      setbuf
      assert_equal(file, buffer_file_name)
      assert_equal("abcd", buffer_string)
    ensure
      kill_buffer nil
      File.unlink file
    end
  end

  def test_name_and_file
    begin
      file1 = Tempfile.path("abcd")
      @x = newbuf(:name=>@bufname, :file=>file1)
      setbuf
      assert_equal(nil, buffer_file_name)
      assert_equal("abcd", buffer_string)

      # buffer is erased
      file2 = Tempfile.path("abcde")
      @x = newbuf(:name=>@bufname, :file=>file2)
      setbuf
      assert_equal("abcde", buffer_string)
 
    ensure
      kill_buffer nil
      File.unlink file1
      File.unlink file2
    end
  end
    

  def test_argerror
    assert_raises(ArgumentError){ newbuf }
    assert_raises(ArgumentError){ newbuf(:name=>nil) }
    assert_raises(ArgumentError){ newbuf(1) }
    assert_raises(ArgumentError){ newbuf("1") } # hmm.
    assert_raises(ArgumentError){ newbuf(:name=>@bufname, :line=>"a") }
    assert_raises(ArgumentError){ newbuf(:name=>@bufname, :point=>"a") }
  end

  def test_current_line
    @x = newbuf(:name=>@bufname, :contents=>"a\nb\nc\nd", :line=>2)
    setbuf
    assert_equal("b", char_to_string(char_after))
  end

  def test_point
    @x = newbuf(:name=>@bufname, :contents=>"abcde", :point=>2)
    setbuf
    assert_equal("b", char_to_string(char_after))
  end

  def test_display
    elvar.pop_up_windows = true
    @x = newbuf(:name=>@bufname, :display=>true)
    assert(get_buffer_window(@x))
    assert_nil(one_window_p)
    assert_nil(eq(selected_window, get_buffer_window(@x)))
  end

  def test_display_pop
    elvar.pop_up_windows = true
    @x = newbuf(:name=>@bufname, :display=>:pop)
    assert(get_buffer_window(@x))
    assert_nil(one_window_p)
    assert(eq(selected_window, get_buffer_window(@x)))
  end

  def test_display_only
    elvar.pop_up_windows = true
    @x = newbuf(:name=>@bufname, :display=>:only)
    assert(get_buffer_window(@x))
    assert(one_window_p)
    assert(eq(selected_window, get_buffer_window(@x)))
  end

  def test_current
    @x = newbuf(:name=>@bufname, :current=>true)
    assert_nil(get_buffer_window(@x))
    assert(eq(current_buffer, @x))
  end

  def test_read_only
    b1 = newbuf(:name=>@bufname, :current=>true, :read_only=>true, :contents=>"a")
    assert(eq(elvar.buffer_read_only, true))
    assert_equal("a", buffer_string)

    b2 = newbuf(:name=>@bufname, :current=>true, :read_only=>true, :contents=>"c")
    assert(eq(b1,b2))
    assert(eq(elvar.buffer_read_only, true))
    assert_equal("c", buffer_string)
  end

  def test_bury
    buf = newbuf(:name=>@bufname, :display=>:pop, :bury=>true)
    assert(eq(buf, (buffer_list nil)[-1]))
  end

  def test_block
    buf = newbuf(:name=>@bufname, :current=>true) {
      text_mode
    }
    mode = with(:with_current_buffer,buf){elvar.major_mode}.to_s
    assert_equal("text-mode", mode)
  end
end

class TestDefunWithinClass < Test::Unit::TestCase

  class Foo
    include ElMixin

    def initialize(x)
      elvar.v = x[:value]
      defun(:twice_v) do
        elvar.v *= 2
      end

      defun(:str0) do
        do_str0 x[:str]
      end
    end

    def do_str0(str)
      (str*2).upcase
    end
  end

  def test0
    Foo.new(:value=>10, :str=>"ab")
    twice_v
    assert_equal(20, elvar.v)
    assert_equal("ABAB", str0)
  end
end

class TestElApp < Test::Unit::TestCase

  class Foo < ElApp
    def initialize(x)
      elvar.v = x[:value]
      defun(:twice_v) do
        elvar.v *= 2
      end

      defun(:str0) do
        do_str0 x[:str]
      end
    end

    def do_str0(str)
      (str*2).capitalize
    end
  end

  def test0
    Foo.run(:value=>10, :str=>"ab")
    twice_v
    assert_equal(20, elvar.v)
    assert_equal("Abab", str0)
  end
end



--
rubikitch
http://www.rubyist.net/~rubikitch/index.en.html

In This Thread

Prev Next