[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Re: DRY fanatics?

Gennady Bystritsky

10/24/2006 11:44:00 PM

Rick DeNatale wrote:
> On 10/24/06, Martin DeMello <martindemello@gmail.com> wrote:
>> On 10/22/06, Giles Bowkett <gilesb@gmail.com> wrote:
>>> Anybody know a way to make this DRYer?
>>>
>>> when /^([A-Za-z0-9,]+), '([^']+)', '([^']+)', '([^']+)'/
>>
>> grp = %{ '([^']+)'}
>> rx = /^([A-Za-z0-9,]+),#{grp},#{grp},#{grp}/
>
> Still too WET!
>
> grp = %{,'([^']+)'}
> rx = /^([A-Za-z0-9,]+)#{grp*3}/
>
> Now, can someone how to make this DRYer?

rx = Regexp.new ['^([\w,]+)', *["'(.+?)'"]*3].join(', ')

;-)

(assuming '_' in the first field is acceptable)

Gennady.

3 Answers

Giles Bowkett

10/25/2006 12:21:00 AM

0

> >>> Anybody know a way to make this DRYer?
> >>>
> >>> when /^([A-Za-z0-9,]+), '([^']+)', '([^']+)', '([^']+)'/
> >>
> >> grp = %{ '([^']+)'}
> >> rx = /^([A-Za-z0-9,]+),#{grp},#{grp},#{grp}/
> >
> > Still too WET!
> >
> > grp = %{,'([^']+)'}
> > rx = /^([A-Za-z0-9,]+)#{grp*3}/
> >
> > Now, can someone how to make this DRYer?
>
> rx = Regexp.new ['^([\w,]+)', *["'(.+?)'"]*3].join(', ')
>
> ;-)
>
> (assuming '_' in the first field is acceptable)

Beautiful! Or wait, did I mean beautiful? Maybe I meant sick and wrong.

But you know what, just to taunt you Perlish types...

The initial regex I posted was actually wrong.

It was this:

when /^([A-Za-z0-9,]+), '([^']+)', '([^']+)', '([^']+)'/

It needed to be this instead:

when /^([A-Za-z0-9,]+), '([^']+)', '([^']+)', '([^']*)'/

Bet you can't DRY that!

--
Giles Bowkett
http://www.gilesg...

Rick DeNatale

10/25/2006 2:33:00 AM

0

On 10/24/06, Gennady Bystritsky <Gennady.Bystritsky@quest.com> wrote:
> Rick DeNatale wrote:
> > On 10/24/06, Martin DeMello <martindemello@gmail.com> wrote:
> >> On 10/22/06, Giles Bowkett <gilesb@gmail.com> wrote:
> >>> Anybody know a way to make this DRYer?
> >>>
> >>> when /^([A-Za-z0-9,]+), '([^']+)', '([^']+)', '([^']+)'/
> >>
> >> grp = %{ '([^']+)'}
> >> rx = /^([A-Za-z0-9,]+),#{grp},#{grp},#{grp}/
> >
> > Still too WET!
> >
> > grp = %{,'([^']+)'}
> > rx = /^([A-Za-z0-9,]+)#{grp*3}/
> >
> > Now, can someone how to make this DRYer?
>
> rx = Regexp.new ['^([\w,]+)', *["'(.+?)'"]*3].join(', ')
>
> ;-)
>
> (assuming '_' in the first field is acceptable)

NO NO NO!

I meant make

x = 111

DRYER, all that needless repetition of the digit 1! <G>
---
Rick DeNatale

My blog on Ruby
http://talklikeaduck.denh...

Giles Bowkett

10/25/2006 3:26:00 AM

0

> NO NO NO!
>
> I meant make
>
> x = 111
>
> DRYER, all that needless repetition of the digit 1! <G>

lol

sorry, flew over my head.

--
Giles Bowkett
http://www.gilesg...