[#101991] Gateway appears to be working!! — "David A. Black" <dblack@...>

Hi --

13 messages 2004/06/01

[#102028] What is the equivalent of Python's "%s" % "MyString"? — "Sam Sungshik Kong" <ssk@...>

Hello!

20 messages 2004/06/01

[#102050] Obfuscating Ruby Code. — "Ken Hilton" <kenosis@...>

Does anyone know of a Ruby source code obfuscator that's reliable and

56 messages 2004/06/01

[#102170] Floating point division operator /. (or fdiv method) — Michael Neumann <mneumann@...>

Hi,

31 messages 2004/06/02
[#102247] Re: [RCR] Floating point division operator /. (or fdiv method) — "Robert Klemme" <bob.news@...> 2004/06/03

[#102231] Reply wasn't posted; will test new post — "Pe, Botp" <botp@...>

Hi ALL:

38 messages 2004/06/03
[#102236] Re: Reply wasn't posted; will test new post — "daz" <dooby@...10.karoo.co.uk> 2004/06/03

[#102241] Re: Reply wasn't posted; will test new post — "David A. Black" <dblack@...> 2004/06/03

Hi --

[#102366] Active Record 0.8.2: Inheritable callback ques — David Heinemeier Hansson <david@...>

What's new in Active Record 0.8.2?

13 messages 2004/06/04

[#102401] Problem Installing Ruby Gems 0.4.0 on XP not segfault — "Ernie" <erne@...>

I get the following error I'm running Ruby 1.8 windows version installed

10 messages 2004/06/04

[#102412] Check assertion in Ruby — Edgardo Hames <ehames@...>

Hi, everybody. I would like to use an assert like function to test the

20 messages 2004/06/04

[#102431] How to ducktype a Hash? — "Sean O'Dell" <sean@...>

I need to detect when an object is a hash-like container for other objects,

137 messages 2004/06/05
[#102456] Re: How to ducktype a Hash? — "Robert Klemme" <bob.news@...> 2004/06/05

[#102495] Re: How to ducktype a Hash? — "Sean O'Dell" <sean@...> 2004/06/05

On Saturday 05 June 2004 02:28, Robert Klemme wrote:

[#102496] Re: How to ducktype a Hash? — Dave Thomas <dave@...> 2004/06/05

[#102499] Re: How to ducktype a Hash? — "Sean O'Dell" <sean@...> 2004/06/05

On Saturday 05 June 2004 10:39, Dave Thomas wrote:

[#102507] Re: How to ducktype a Hash? — Dave Thomas <dave@...> 2004/06/05

[#102514] Re: How to ducktype a Hash? — "Sean O'Dell" <sean@...> 2004/06/06

On Saturday 05 June 2004 13:30, Dave Thomas wrote:

[#102530] Re: How to ducktype a Hash? — "John W. Long" <ng@...> 2004/06/06

Sean O'Dell wrote:

[#102535] Re: How to ducktype a Hash? — "Sean O'Dell" <sean@...> 2004/06/06

On Saturday 05 June 2004 21:05, John W. Long wrote:

[#102563] Re: How to ducktype a Hash? — David Garamond <lists@...6.isreserved.com> 2004/06/06

Sean O'Dell wrote:

[#102573] Re: How to ducktype a Hash? — "David A. Black" <dblack@...> 2004/06/06

Hi --

[#102465] Re: How to ducktype a Hash? — gabriele renzi <surrender_it@...1.vip.ukl.yahoo.com> 2004/06/05

il Sat, 5 Jun 2004 11:15:37 +0900, "Sean O'Dell" <sean@celsoft.com> ha

[#102509] Re: How to ducktype a Hash? — "John W. Long" <ng@...> 2004/06/05

[#102516] Re: How to ducktype a Hash? — "Sean O'Dell" <sean@...> 2004/06/06

On Saturday 05 June 2004 15:01, John W. Long wrote:

[#102649] Re: How to ducktype a Hash? — "Dave Burt" <burtdav@...> 2004/06/07

param.respond_to? '[]' and

[#102445] class A::B verses module A ; class B — quixoticsycophant@... (Jeff Mitchell)

module A

14 messages 2004/06/05

[#102597] Segfault on embedded ruby. — Godot <garciamj@...>

16 messages 2004/06/06

[#102601] Instiki 0.9.0: Rendering improvements, Latex integration, OS X version — David Heinemeier Hansson <david@...>

What's new in Instiki 0.9.0?

9 messages 2004/06/06

[#102675] Waiting for condor output files — Milo Thurston <nospam@...>

I've got a script that submits a whole load of condor jobs, and has to

11 messages 2004/06/07

[#102710] Re: How to ducktype a Hash? — "Austin Ziegler" <Austin.Ziegler@...>

> dblack@wobblini.evault.com

18 messages 2004/06/07

[#102716] Re: Unit tests ... not just for the young — "Kloubakov, Yura" <YKloubakov@...>

22 messages 2004/06/07
[#102729] Re: Unit tests ... not just for the young — "Sean O'Dell" <sean@...> 2004/06/08

On Monday 07 June 2004 16:13, Kloubakov, Yura wrote:

[#102789] Re: Unit tests ... not just for the young — Michael Campbell <michael.campbell@...> 2004/06/08

> I've worked with some fresh guys right

[#102796] Re: Unit tests ... not just for the young — "Sean O'Dell" <sean@...> 2004/06/08

On Tuesday 08 June 2004 07:55, Michael Campbell wrote:

[#102808] Re: Unit tests ... not just for the young — Michael Campbell <michael.campbell@...> 2004/06/08

> Non-college grads, though, never got hired unless they could prove their

[#102819] Re: Unit tests ... not just for the young — "Sean O'Dell" <sean@...> 2004/06/08

On Tuesday 08 June 2004 10:03, Michael Campbell wrote:

[#102822] Re: Unit tests ... not just for the young — Jim Freeze <jim@...> 2004/06/08

On Wednesday, 9 June 2004 at 3:52:21 +0900, Sean O'Dell wrote:

[#102823] Re: Unit tests ... not just for the young — Michael Campbell <michael.campbell@...> 2004/06/08

>

[#102824] Re: Unit tests ... not just for the young — "Sean O'Dell" <sean@...> 2004/06/08

On Tuesday 08 June 2004 12:12, Michael Campbell wrote:

[#102731] Interfaces and semantics (or, how to hashpipe a duck) — Hal Fulton <hal9000@...>

Semantics, James Thurber notwithstanding, is not a town in Ohio.

34 messages 2004/06/08
[#102814] Re: Interfaces and semantics (or, how to hashpipe a duck) — djberg96@... (Daniel Berger) 2004/06/08

"Sean O'Dell" <sean@celsoft.com> wrote in message news:<200406080736.32485.sean@celsoft.com>...

[#102818] Re: Interfaces and semantics (or, how to hashpipe a duck) — "Sean O'Dell" <sean@...> 2004/06/08

On Tuesday 08 June 2004 11:23, Daniel Berger wrote:

[#102839] Re: Interfaces and semantics (or, how to hashpipe a duck) — "David A. Black" <dblack@...> 2004/06/08

Hi --

[#102788] ruby and mustard — "Ara.T.Howard" <Ara.T.Howard@...>

20 messages 2004/06/08

[#102817] Ruby/Interface — "Sean O'Dell" <sean@...>

Ruby/Interface 0.1-1

18 messages 2004/06/08

[#102863] oddities with select — Ben Giddings <bg-rubytalk@...>

I'm trying to use Ruby to talk to an network application, and noticed

21 messages 2004/06/08

[#102890] Re: Unit tests ... not just for the young — "Pe, Botp" <botp@...>

Gennady [mailto:gfb@tonesoft.com] wrote:

39 messages 2004/06/09
[#102891] Re: Unit tests ... not just for the young — Jim Freeze <jim@...> 2004/06/09

On Wednesday, 9 June 2004 at 11:46:12 +0900, "Pe?a, Botp" wrote:

[#102896] Re: Unit tests ... not just for the young — Dan Tapp <dhtapp@..._sig_line.com> 2004/06/09

Jim Freeze wrote:

[#102900] Re: Unit tests ... not just for the young — Tyler Zesiger <mailing-lists@...> 2004/06/09

I'd be afraid to hire a code-monkey who said yes.

[#102929] Re: Unit tests ... not just for the young — Tom Copeland <tom@...> 2004/06/09

On Wed, 2004-06-09 at 01:21, Tyler Zesiger wrote:

[#102930] Re: [OT] Re: Unit tests ... not just for the young — Michael Campbell <michael.campbell@...> 2004/06/09

On Wed, 9 Jun 2004 22:48:30 +0900, Tom Copeland <tom@infoether.com> wrote:

[#102931] Re: [OT] Re: Unit tests ... not just for the young — Tom Copeland <tom@...> 2004/06/09

On Wed, 2004-06-09 at 09:56, Michael Campbell wrote:

[#102934] Re: [OT] Re: Unit tests ... not just for the young — Jim Freeze <jim@...> 2004/06/09

On Wednesday, 9 June 2004 at 23:02:22 +0900, Tom Copeland wrote:

[#102978] Re: [OT] Re: Unit tests ... not just for the young — Jean-Hugues ROBERT <jean_hugues_robert@...> 2004/06/09

At 23:21 09/06/2004 +0900, you wrote:

[#102914] strip DOS ^Ms? — Dick Davies <rasputnik@...>

15 messages 2004/06/09

[#102922] Active Record 0.8.3: Modules, mapping, and transactions — David Heinemeier Hansson <david@...>

What's new in Active Record 0.8.3?

12 messages 2004/06/09

[#102950] #include <re.h> required for Opteron but not Pentium. — Jim Freeze <jim@...>

Hi

14 messages 2004/06/09
[#103007] Re: #include <re.h> required for Opteron but not Pentium. — Tim Hunter <cyclists@...> 2004/06/09

On Thu, 10 Jun 2004 03:58:55 +0900, Jim Freeze wrote:

[#102951] History of Languages poster from O'Reilly — djberg96@... (Daniel Berger)

Hi all,

12 messages 2004/06/09

[#103072] Graphing 2Ds in Python is pretty easy... — piir@... (Todd Gardner)

Hello everyone,

16 messages 2004/06/10

[#103172] Array#rest — Charles Comstock <cc1@...>

I find myself frequently using array slice of 1..-1, to pass the rest of an

25 messages 2004/06/11

[#103217] Switch to .ruby extension? — doodpants@... (Karl von Laudermann)

The current convention for Ruby source file names is to end them with

72 messages 2004/06/11
[#103228] Re: Switch to .ruby extension? — Tyler Zesiger <mailing-lists@...> 2004/06/11

The obsessive levels of abbreviation in the *nix world infuriate me.

[#103580] Re: Switch to .ruby extension? — "SER" <ser@...> 2004/06/14

> I remember when I first started using linux (now I use FreeBSD, which

[#103599] Re: Switch to .ruby extension? — Tyler Zesiger <mailing-lists@...> 2004/06/14

I don't know how much of the thread you read through, but I repeated at

[#103602] Re: Switch to .ruby extension? — "Sean O'Dell" <sean@...> 2004/06/14

On Monday 14 June 2004 16:13, Tyler Zesiger wrote:

[#103605] Re: Switch to .ruby extension? — "Zach Dennis" <zdennis@...> 2004/06/14

>Most programmers

[#103608] Re: Switch to .ruby extension? — "Sean O'Dell" <sean@...> 2004/06/15

On Monday 14 June 2004 16:46, Zach Dennis wrote:

[#103618] Re: Switch to .ruby extension? — Sam Roberts <sroberts@...> 2004/06/15

Quoteing sean@celsoft.com, on Tue, Jun 15, 2004 at 09:40:26AM +0900:

[#103622] Re: Switch to .ruby extension? — "Sean O'Dell" <sean@...> 2004/06/15

On Monday 14 June 2004 19:09, Sam Roberts wrote:

[#103673] Re: Switch to .ruby extension? — Sam Roberts <sroberts@...> 2004/06/15

Wrote Sean O'Dell <sean@celsoft.com>, on Tue, Jun 15, 2004 at 11:36:18AM +0900:

[#103239] Re: Switch to .ruby extension? [OT] — Mark Hubbart <discord@...> 2004/06/11

[#103246] Re: Switch to .ruby extension? [OT] — Tyler Zesiger <mailing-lists@...> 2004/06/11

I think I may be earning myself a reputation as a user-friendliness

[#103252] Re: Switch to .ruby extension? [OT] — "Zach Dennis" <zdennis@...> 2004/06/11

[#103258] Re: Switch to .ruby extension? [OT] — Tyler Zesiger <mailing-lists@...> 2004/06/11

[#103225] celsoft.com/Battery 0.1.1 — "Sean O'Dell" <sean@...>

Battery is a unit testing framework for Ruby. It captures all standard error

61 messages 2004/06/11
[#103236] Re: [ANN] celsoft.com/Battery 0.1.1 — "David A. Black" <dblack@...> 2004/06/11

Hi --

[#103250] Re: [ANN] celsoft.com/Battery 0.1.1 — "Sean O'Dell" <sean@...> 2004/06/11

On Friday 11 June 2004 11:47, David A. Black wrote:

[#103267] Re: [ANN] celsoft.com/Battery 0.1.1 — "David A. Black" <dblack@...> 2004/06/12

Hi --

[#103275] Re: [ANN] celsoft.com/Battery 0.1.1 — "Sean O'Dell" <sean@...> 2004/06/12

On Friday 11 June 2004 18:08, David A. Black wrote:

[#103308] Re: [ANN] celsoft.com/Battery 0.1.1 — "David A. Black" <dblack@...> 2004/06/12

On Sat, 12 Jun 2004, Sean O'Dell wrote:

[#103329] Re: [ANN] celsoft.com/Battery 0.1.1 — "Sean O'Dell" <sean@...> 2004/06/12

On Saturday 12 June 2004 03:49, David A. Black wrote:

[#103353] Re: [ANN] celsoft.com/Battery 0.1.1 — "David A. Black" <dblack@...> 2004/06/12

> arbitrary:

[#103366] Re: [ANN] celsoft.com/Battery 0.1.1 — "Sean O'Dell" <sean@...> 2004/06/12

On Saturday 12 June 2004 13:34, David A. Black wrote:

[#103389] Re: [ANN] celsoft.com/Battery 0.1.1 — Jean-Hugues ROBERT <jean_hugues_robert@...> 2004/06/13

At 08:12 13/06/2004 +0900, you wrote:

[#103525] Re: [ANN] celsoft.com/Battery 0.1.1 — "Sean O'Dell" <sean@...> 2004/06/14

On Sunday 13 June 2004 00:13, Jean-Hugues ROBERT wrote:

[#103533] Re: [ANN] celsoft.com/Battery 0.1.1 — James Britt <jamesUNDERBARb@...> 2004/06/14

Sean O'Dell wrote:

[#103536] Re: [ANN] celsoft.com/Battery 0.1.1 — "Sean O'Dell" <sean@...> 2004/06/14

On Monday 14 June 2004 09:27, James Britt wrote:

[#103412] Re: [ANN] celsoft.com/Battery 0.1.1 — Nathaniel Talbott <nathaniel@...> 2004/06/13

On Jun 12, 2004, at 12:28, Sean O'Dell wrote:

[#103413] Re: [ANN] celsoft.com/Battery 0.1.1 — Jamis Buck <jgb3@...> 2004/06/13

Nathaniel Talbott wrote:

[#103532] Re: [ANN] celsoft.com/Battery 0.1.1 — "Sean O'Dell" <sean@...> 2004/06/14

On Sunday 13 June 2004 07:52, Jamis Buck wrote:

[#103293] Any way to get the calling method's binding? — Gavin Sinclair <gsinclair@...>

Something I've wanted to do on a few occasions recently is to evaluate

13 messages 2004/06/12

[#103328] OpenSSL: patch — Jamis Buck <jgb3@...>

Attached is a patch for the Ruby/OpenSSL module, done against the code

25 messages 2004/06/12

[#103334] undefine — tony summerfelt <snowzone5@...>

is there a way to undefine a variable?

43 messages 2004/06/12
[#103405] Re: undefine — "Robert Klemme" <bob.news@...> 2004/06/13

[#103438] undefine — tony summerfelt <snowzone5@...> 2004/06/13

On Sun, 13 Jun 2004 20:08:48 +0900, you wrote:

[#103465] Re: undefine — Claus Spitzer <DocBoobenstein@...> 2004/06/14

Again, this is where it's useful to consider the OO approach and think

[#103550] undefine — tony summerfelt <snowzone5@...> 2004/06/14

On Mon, 14 Jun 2004 16:18:32 +0900, you wrote:

[#103560] Re: undefine — Michael Campbell <michael.campbell@...> 2004/06/14

> i just need the variable to 'not exist' however it's thought about (by

[#103335] "www.ruby-lang.org" still down for maintenance - thats not good — Lothar Scholz <mailinglists@...>

Hello,

12 messages 2004/06/12

[#103381] Ruby /.'ted — Dan Tapp <dhtapp@..._sig_line.com>

Ruby was just slashdotted under "Developers: Searching for the Best

14 messages 2004/06/13

[#103404] How to read a .csv file into a 2D array? — piir@... (Todd Gardner)

Hello everyone,

16 messages 2004/06/13

[#103468] Non-standard library project — Gavin Sinclair <gsinclair@...>

Hi all,

28 messages 2004/06/14

[#103650] "Litte Ruby" book — Csaba Henk <csaba@..._for_avoiding_spam.org>

The book (or book-germ) entitled "A Little Ruby, A Lot of Objects" was

15 messages 2004/06/15

[#103697] a newbie question about main, Object... — "Sam Sungshik Kong" <ssk@...>

Hello!

14 messages 2004/06/15

[#103742] Re: [ANN] celsoft.com/Battery 0.1.1 — "Austin Ziegler" <Austin.Ziegler@...>

Sean O'Dell [mailto:sean@celsoft.com] :

17 messages 2004/06/15
[#103744] Re: [ANN] celsoft.com/Battery 0.1.1 — "Sean O'Dell" <sean@...> 2004/06/15

On Tuesday 15 June 2004 13:53, Austin Ziegler wrote:

[#103874] Bidirectional named pipes on Linux — ptkwt@... (Phil Tomson)

12 messages 2004/06/16

[#103930] introducing Hash-like mixin — gabriele renzi <surrender_it@...1.vip.ukl.yahoo.com>

Hi gurus and nubys,

17 messages 2004/06/17

[#103974] the new great computer language shootout — ptkwt@... (Phil Tomson)

26 messages 2004/06/17
[#103975] Re: the new great computer language shootout — Lennon Day-Reynolds <rcoder@...> 2004/06/17

Part of the speedup appears to be from their use of the Psyco JIT

[#103986] Re: the new great computer language shootout — Eric Hodel <drbrain@...7.net> 2004/06/17

Lennon Day-Reynolds (rcoder@gmail.com) wrote:

[#103992] Re: the new great computer language shootout — Eric Hodel <drbrain@...7.net> 2004/06/17

Eric Hodel (drbrain@segment7.net) wrote:

[#103977] How to make generic #== method? — Zakaria <zakaria@...>

Hi,

13 messages 2004/06/17

[#103993] Generating "real-time" 2D line plots in Windows 2k? — piir@... (Todd Gardner)

Hello everyone,

11 messages 2004/06/17

[#104182] rubys web performance — Florian Weber <csshsh@...>

hi!

31 messages 2004/06/20

[#104222] About top-level method — "Sam Sungshik Kong" <ssk@...>

Hello!

15 messages 2004/06/21

[#104272] A question about Class and Object — "Sam Sungshik Kong" <ssk@...>

Hello!

18 messages 2004/06/21

[#104364] Newbie question - how to replace multiple whitespace within a string? — Brian Tully <btully@...>

Sorry if this is too basic a question but I just inherited a handful of Ruby

10 messages 2004/06/22

[#104455] rubygems thoughts — Hans Fugal <fugalh@...>

My participation here is sporadic at best, so forgive me if these

34 messages 2004/06/24
[#104459] Re: rubygems thoughts — "Jim Weirich" <jim@...> 2004/06/24

[#104465] Re: rubygems thoughts — Hans Fugal <hfugal@...> 2004/06/24

Jim Weirich wrote:

[#104466] Re: rubygems thoughts — "Sean O'Dell" <sean@...> 2004/06/24

On Thursday 24 June 2004 10:18, Hans Fugal wrote:

[#104494] Is it considered Harmful? — "rolo" <rohitlodha@...>

Hi

133 messages 2004/06/24
[#104495] Re: Is it considered Harmful? — "Sean O'Dell" <sean@...> 2004/06/24

On Thursday 24 June 2004 16:15, rolo wrote:

[#104498] Re: Is it considered Harmful? — Eric Hodel <drbrain@...7.net> 2004/06/24

Sean O'Dell (sean@celsoft.com) wrote:

[#104499] Re: Is it considered Harmful? — "rolo" <rohitlodha@...> 2004/06/25

> Sean O'Dell (sean@celsoft.com) wrote:

[#104500] Re: Is it considered Harmful? — "Sean O'Dell" <sean@...> 2004/06/25

On Thursday 24 June 2004 17:23, rolo wrote:

[#104526] Re: Is it considered Harmful? — ts <decoux@...> 2004/06/25

>>>>> "S" == Sean O'Dell <sean@celsoft.com> writes:

[#104539] Re: Is it considered Harmful? — "Sean O'Dell" <sean@...> 2004/06/25

On Friday 25 June 2004 02:19, ts wrote:

[#104542] Re: Is it considered Harmful? — Dave Thomas <dave@...> 2004/06/25

[#104587] Re: Is it considered Harmful? — "Sean O'Dell" <sean@...> 2004/06/25

On Friday 25 June 2004 08:57, Dave Thomas wrote:

[#104636] Re: Is it considered Harmful? — ts <decoux@...> 2004/06/26

>>>>> "S" == Sean O'Dell <sean@celsoft.com> writes:

[#104646] Re: Is it considered Harmful? — "Sean O'Dell" <sean@...> 2004/06/26

On Saturday 26 June 2004 04:19, ts wrote:

[#104663] Re: Is it considered Harmful? — ts <decoux@...> 2004/06/27

>>>>> "S" == Sean O'Dell <sean@celsoft.com> writes:

[#104694] Re: Is it considered Harmful? — "Sean O'Dell" <sean@...> 2004/06/27

On Sunday 27 June 2004 01:41, ts wrote:

[#104699] Re: Is it considered Harmful? — Patrick May <patrick@...> 2004/06/27

I think that #become and #class= are _theoretically_ wrong. Such a

[#104700] Re: Is it considered Harmful? — "Sean O'Dell" <sean@...> 2004/06/27

On Sunday 27 June 2004 13:44, Patrick May wrote:

[#104701] Re: Is it considered Harmful? — Patrick May <patrick@...> 2004/06/27

On Sunday, June 27, 2004, at 05:20 PM, Sean O'Dell wrote:

[#104706] Re: Is it considered Harmful? — "Sean O'Dell" <sean@...> 2004/06/27

On Sunday 27 June 2004 14:48, Patrick May wrote:

[#104710] Re: Is it considered Harmful? — Patrick May <patrick@...> 2004/06/27

Sean,

[#104712] Re: Is it considered Harmful? — "Sean O'Dell" <sean@...> 2004/06/27

On Sunday 27 June 2004 15:43, Patrick May wrote:

[#104714] Re: Is it considered Harmful? — Patrick May <patrick@...> 2004/06/27

[#104715] Re: Is it considered Harmful? — "Sean O'Dell" <sean@...> 2004/06/28

On Sunday 27 June 2004 16:53, Patrick May wrote:

[#104716] Re: Is it considered Harmful? — Patrick May <patrick@...> 2004/06/28

[#104724] Re: Is it considered Harmful? — "Sean O'Dell" <sean@...> 2004/06/28

On Sunday 27 June 2004 17:30, Patrick May wrote:

[#104754] Re: Is it considered Harmful? — Patrick May <patrick@...> 2004/06/28

Sean,

[#104763] Re: Is it considered Harmful? — "Sean O'Dell" <sean@...> 2004/06/28

On Monday 28 June 2004 05:45, Patrick May wrote:

[#104764] Re: Is it considered Harmful? — Mikael Brockman <phubuh@...> 2004/06/28

"Sean O'Dell" <sean@celsoft.com> writes:

[#104766] Re: Is it considered Harmful? — "Sean O'Dell" <sean@...> 2004/06/28

On Monday 28 June 2004 08:33, Mikael Brockman wrote:

[#104767] Re: Is it considered Harmful? — Austin Ziegler <halostatue@...> 2004/06/28

On Tue, 29 Jun 2004 00:58:22 +0900, Sean O'Dell <sean@celsoft.com> wrote:

[#104769] Re: Is it considered Harmful? — "Sean O'Dell" <sean@...> 2004/06/28

On Monday 28 June 2004 09:27, Austin Ziegler wrote:

[#104787] Re: [OT] Re: Is it considered Harmful? — "Bill Kelly" <billk@...> 2004/06/28

Hi,

[#104533] Re: Is it considered Harmful? — Scott Rubin <srubin@...> 2004/06/25

I can't possibly imagine it being useful to do this except when the

[#104535] Re: Is it considered Harmful? — "Jim Weirich" <jim@...> 2004/06/25

[#104501] Building Ruby on AIX -- again — Matt Lawrence <matt@...>

I finally have a stable system to use to try to build Ruby. Here's the

18 messages 2004/06/25
[#104510] Re: Building Ruby on AIX -- again — nobu.nokada@... 2004/06/25

Hi,

[#104511] Re: Building Ruby on AIX -- again — Matt Lawrence <matt@...> 2004/06/25

On Fri, 25 Jun 2004 nobu.nokada@softhome.net wrote:

[#104512] Re: Building Ruby on AIX -- again — nobu.nokada@... 2004/06/25

Hi,

[#104513] Re: Building Ruby on AIX -- again — Matt Lawrence <matt@...> 2004/06/25

On Fri, 25 Jun 2004 nobu.nokada@softhome.net wrote:

[#104601] OSCON Ruby tutorials cancelled? — ptkwt@... (Phil Tomson)

14 messages 2004/06/25

[#104637] SQLite-Ruby and "other chrs" — Meino Christian Cramer <Meino.Cramer@...>

Hi,

13 messages 2004/06/26

[#104649] Writing UNIX 'wc' program — "@*(&SPAM&)*optonline.net" <" kboruff\""@*.*optonline.net>

Hey all,

13 messages 2004/06/27

[#104737] (oddity) applying objects with #call() implicitly — gabriele renzi <surrender_it@...1.vip.ukl.yahoo.com>

Hi gurus and nubys,

16 messages 2004/06/28

[#104864] arrayfields-3.0.0 — "Ara.T.Howard" <Ara.T.Howard@...>

URLS:

16 messages 2004/06/29

[ANN] Active Record 0.8.4: Reflections

From: David Heinemeier Hansson <david@...>
Date: 2004-06-16 10:51:04 UTC
List: ruby-talk #103818
What's new in Active Record 0.8.4?
==================================

Reflection is the big new feature in 0.8.4. You're now able to get  
information about the columns mapped to attributes, the names of all  
the attributes pulled, and full information about both aggregations and  
associations added. All this information is particularly helpful if  
you're trying to build generic handlers for Active Record objects, such  
as, say, a form builder that automatically lists the proper input field  
types and names.

Besides that, it's now possible to do multi-parameter assigns that can  
even be type-casted. This is extremely helpful to do something like  
this for date attributes:

   post.attributes = {
     "written_on(1i)" => "2004",
     "written_on(2i)" => "6",
     "written_on(3i)" => "16"
   }

If the written_on attribute is of the date type, this is turned into:

   post.written_on = Date.new(2004, 6, 16)

The number in the parenthesesepresents the position in the  
constructor and the i represents the type cast from string to integer  
(you can also cast to floats or arrays).

Full changelog:

Reflection
----------

* Added ActiveRecord::Reflection with a bunch of methods and classes  
for reflecting in aggregations and associations.

* Added Base.columns and Base.content_columns which returns arrays of  
column description (type, default, etc) objects.

* Added Base#attribute_names which returns an array of names for the  
attributes available on the object.

* Added Base#column_for_attribute(name) which returns the column  
description object for the named attribute.


Misc
----

* Added multi-parameter assignment.

* Fixed bug with custom primary key column name and Base.find on  
multiple parameters.

* Fixed bug with dependent option on has_one associations if there was  
no associated object.


Hang out with the Ruby on Rails crowd
=====================================

Come by the IRC channel #rubyonrails on Freenode. Design decisions are  
aired here and you'll be able to ask questions about Active Record and  
the framework in general. Oh, and we're really friendly too!


Call for help!
==============

Do you have working knowledge with and access to either Oracle, ODBC,  
Sybase, or DB2, I'd be really grateful if you would consider writing an  
adapter for Active Record. Adapters are usually just around 100 lines  
of code. You'll have three examples to look at, a well-specified  
interface[1], and almost 100 test cases to make it real easy. Luke  
Holden reports that he spent just a few hours getting SQLite and  
PostgreSQL adapters working.

[1]  
http://ar.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/ 
AbstractAdapter.html


Active Record -- Object-relation mapping put on rails
=====================================================

Active Record connects business objects and database tables to create a  
persistable
domain model where logic and data is presented in one wrapping. It's an  
implementation of the object-relational mapping (ORM) pattern by the  
same name as described by Martin Fowler:

   "An object that wraps a row in a database table or view, encapsulates
        the database access, and adds domain logic on that data."

Active Records main contribution to the pattern is to relieve the  
original of two stunting problems: lack of associations and  
inheritance. By adding a simple domain language-like set of macros to  
describe the former and integrating the Single Table Inheritance  
pattern for the latter, Active Record narrows the gap of functionality  
between the data mapper and active record approach.

A short rundown of the major features:

* Automated mapping between classes and tables, attributes and columns.
    class Product < ActiveRecord::Base; end

    ...is automatically mapped to the table named "products", such as:

    CREATE TABLE products (
      id int(11) NOT NULL auto_increment,
      name varchar(255),
      PRIMARY KEY  (id)
    );

    ...which again gives Product#name and Product#name=(new_name)


* Associations between objects controlled by simple meta-programming  
macros.
    class Firm < ActiveRecord::Base
      has_many  :clients
      has_one   :account
      belong_to :conglomorate
    end


* Aggregations of value objects controlled by simple meta-programming  
macros.
    class Account < ActiveRecord::Base
      composed_of :balance, :class_name => "Money",
                  :mapping => %w(balance amount)
      composed_of :address,
                  :mapping => [%w(address_street street),  
%w(address_city city)]
    end


* Validation rules that can differ for new or existing objects.
    class Post < ActiveRecord::Base
      def validate # validates on both creates and updates
        errors.add_on_empty "title"
      end

      def validate_on_update
        errors.add_on_empty "password"
      end
    end


* Callbacks as methods or ques on the entire lifecycle
   (instantiation, saving, destroying, validating, etc).

    class Person < ActiveRecord::Base
      def before_destroy # is called just before Person#destroy
        CreditCard.find(credit_card_id).destroy
      end
    end

    class Account < ActiveRecord::Base
      after_find :eager_load, 'self.class.announce(#{id})'
    end

   Learn more in link:classes/ActiveRecord/Callbacks.html


* Observers for the entire lifecycle
    class CommentObserver < ActiveRecord::Observer
      def after_create(comment) # is called just after Comment#save
        NotificationService.send_email("david@loudthinking.com", comment)
      end
    end


* Inheritance hierarchies
    class Company < ActiveRecord::Base; end
    class Firm < Company; end
    class Client < Company; end
    class PriorityClient < Client; end


* Transaction support on both a database and object level. The latter  
is implemented
   by using Transaction::Simple

     # Just database transaction
     Account.transaction do
       david.withdrawal(100)
       mary.deposit(100)
     end

     # Database and object transaction
     Account.transaction(david, mary) do
       david.withdrawal(100)
       mary.deposit(100)
     end


* Direct manipulation (instead of service invocation)

   So instead of (Hibernate example):

      long pkId = 1234;
      DomesticCat pk = (DomesticCat) sess.load( Cat.class, new  
Long(pkId) );
      // something interesting involving a cat...
      sess.save(cat);
      sess.flush(); // force the SQL INSERT

   Active Record lets you:

      pkId = 1234
      cat = Cat.find(pkId)
      # something even more interesting involving a the same cat...
      cat.save


* Database abstraction through simple adapters (~100 lines) with a  
shared connector

    ActiveRecord::Base.establish_connection(:adapter => "sqlite",  
:dbfile => "dbfile")

    ActiveRecord::Base.establish_connection(
      :adapter  => "mysql",
      :host     => "localhost",
      :username => "me",
      :password => "secret",
      :database => "activerecord"
    )


* Logging support for Log4r and Logger

     ActiveRecord::Base.logger = Logger.new(STDOUT)
     ActiveRecord::Base.logger = Log4r::Logger.new("Application Log")


Philosophy
==========

Active Record attempts to provide a coherent wrapping for the  
inconvenience that is object-relational mapping. The prime directive  
for this mapping has been to minimize the amount of code needed to  
built a real-world domain model. This is made possible by relying on a  
number of conventions that make it easy for Active Record to infer  
complex relations and structures from a minimal amount of explicit  
direction.

Convention over Configuration:
* No XML-files!
* Lots of reflection and run-time extension
* Magic is not inherently a bad word

Admit the Database:
* Lets you drop down to SQL for odd cases and performance
* Doesn't attempt to duplicate or replace data definitions



In This Thread

Prev Next