Permission problem under WinXP

Hi All,

I generated a Ruby on Rails app, which among other things, had to
import content from a bunch of CSV files from time to time. When I
generated the app, I had a typo: I used cvs instead of csv. When I
started coding, I used csv. It got to be a mess. Being pigheaded I
decided to write a ruby script to transform all file-names and file
content to conform to csv.

The transformation script is posted at http://www.pastie.org/323198.
I've tested the code thoroughly, so I think its really a Windows
problem: it's keeping a lock on the file(s) I'm using despite the
fact that I issued Ruby close commands.

I wonder if anyone has a quick fix for this problem. If not, I'll
walk the extra mile and write my filename changes to disk and write a
stand-alone app to apply those changes. But if there's a slick way to
solves this, I'd like to learn it.

Thanks in Advance,
Richard

RichardOnRails wrote:

Hi All,

I generated a Ruby on Rails app, which among other things, had to
import content from a bunch of CSV files from time to time. When I
generated the app, I had a typo: I used cvs instead of csv. When I
started coding, I used csv. It got to be a mess. Being pigheaded I
decided to write a ruby script to transform all file-names and file
content to conform to csv.

The transformation script is posted at http://www.pastie.org/323198\.
I've tested the code thoroughly, so I think its really a Windows
problem: it's keeping a lock on the file(s) I'm using despite the
fact that I issued Ruby close commands.

I wonder if anyone has a quick fix for this problem. If not, I'll
walk the extra mile and write my filename changes to disk and write a
stand-alone app to apply those changes. But if there's a slick way to
solves this, I'd like to learn it.

Line 26:

data = File.open(name).readlines

There's your open handle. Replace that with:

IO.readlines(name)

Regards,

Dan

RichardOnRails wrote:
> Hi All,

> I generated a Ruby on Rails app, which among other things, had to
> import content from a bunch of CSV files from time to time. When I
> generated the app, I had a typo: I used cvs instead of csv. When I
> started coding, I used csv. It got to be a mess. Being pigheaded I
> decided to write a ruby script to transform all file-names and file
> content to conform to csv.

> The transformation script is posted athttp://www.pastie.org/323198.
> I've tested the code thoroughly, so I think its really a Windows
> problem: it's keeping a lock on the file(s) I'm using despite the
> fact that I issued Ruby close commands.

> I wonder if anyone has a quick fix for this problem. If not, I'll
> walk the extra mile and write my filename changes to disk and write a
> stand-alone app to apply those changes. But if there's a slick way to
> solves this, I'd like to learn it.

Line 26:

data = File.open(name).readlines

There's your open handle. Replace that with:

IO.readlines(name)

Regards,

Dan

Hi Dan,

I just wrote my son, for whom I'm writing this app, that I was
hoping I'd get a magic bullet so that I didn't have to write my array
of name-changes to disk, read them in in second program and copy in my
change algorithm.

There's your open handle ...

And there's my magic bullet. Now I have to apologize for falsely
claiming that Windows was at fault :slight_smile:

Thank you very much for post such a neat solution.

Best wishes,
Richard

···

On Nov 24, 11:55 pm, Daniel Berger <djber...@gmail.com> wrote:

Hey Dan,

Final word: It worked perfectly. Many thanks.

Best wishes,
Richard

···

On Nov 24, 11:55 pm, Daniel Berger <djber...@gmail.com> wrote:

RichardOnRails wrote:
> Hi All,

> I generated a Ruby on Rails app, which among other things, had to
> import content from a bunch of CSV files from time to time. When I
> generated the app, I had a typo: I used cvs instead of csv. When I
> started coding, I used csv. It got to be a mess. Being pigheaded I
> decided to write a ruby script to transform all file-names and file
> content to conform to csv.

> The transformation script is posted athttp://www.pastie.org/323198.
> I've tested the code thoroughly, so I think its really a Windows
> problem: it's keeping a lock on the file(s) I'm using despite the
> fact that I issued Ruby close commands.

> I wonder if anyone has a quick fix for this problem. If not, I'll
> walk the extra mile and write my filename changes to disk and write a
> stand-alone app to apply those changes. But if there's a slick way to
> solves this, I'd like to learn it.

Line 26:

data = File.open(name).readlines

There's your open handle. Replace that with:

IO.readlines(name)

Regards,

Dan

RichardOnRails wrote:

···

On Nov 24, 11:55 pm, Daniel Berger <djber...@gmail.com> wrote:

RichardOnRails wrote:

Hi All,
I generated a Ruby on Rails app, which among other things, had to
import content from a bunch of CSV files from time to time. When I
generated the app, I had a typo: I used cvs instead of csv. When I
started coding, I used csv. It got to be a mess. Being pigheaded I
decided to write a ruby script to transform all file-names and file
content to conform to csv.
The transformation script is posted athttp://www.pastie.org/323198.
I've tested the code thoroughly, so I think its really a Windows
problem: it's keeping a lock on the file(s) I'm using despite the
fact that I issued Ruby close commands.
I wonder if anyone has a quick fix for this problem. If not, I'll
walk the extra mile and write my filename changes to disk and write a
stand-alone app to apply those changes. But if there's a slick way to
solves this, I'd like to learn it.

Line 26:

data = File.open(name).readlines

There's your open handle. Replace that with:

IO.readlines(name)

Regards,

Dan

Hey Dan,

Final word: It worked perfectly. Many thanks.

Excellent, glad to hear it.

Regards,

Dan