Forum: Ruby rudamentary question

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Hayden Smith (Guest)
on 2009-03-16 13:25
(Received via mailing list)
Greetings,
I'm looking to write a script to perform the functions listed as below,
would anyone have any ideas as to how I might approach this situation:
1. I have a file called "David Slater - Pensive Moments.txt" which I
wish to format to look like "David_Slater_-_Pensive_Moments.txt":
Therefore translating all spaces for underscores.
2. I have a file called "[01] I am a fish.mp3" which I want to look like
"01-I_Am_A_Fish.mp3" thus removing open brackets around numbers at the
beginning, replacing the space between the number and name with a dash
and performing the listed function as above.
3. The listed functions are required to be performed recursively across
directory trees.
Any assistance people can provide would be most appreciated.
Regards,
Hayden Smith
----------
Hayden Smith
Email - removed_email_address@domain.invalid
website - http://www.AlternateProjects.com
Blog - http://SolaceOfTheMind.BlogSpot.com
Phone--
Australia:
Gold Coast - +617-56-678-016
Melbourne - +613-86-836-894
Sydney - +612-80-617-305
United States:
+1-310-405-6408 (with extension 61756678016)
United Kingdom:
+44-292-000-7380 (with extension 61756678016)
Justin C. (Guest)
on 2009-03-16 13:47
(Received via mailing list)
Hayden Smith wrote:
> Greetings,
> I'm looking to write a script to perform the functions listed as below, would anyone 
have any ideas as to how I might approach this situation:
> 1. I have a file called "David Slater - Pensive Moments.txt" which I wish to format to 
look like "David_Slater_-_Pensive_Moments.txt": Therefore translating all spaces for 
underscores.
> 2. I have a file called "[01] I am a fish.mp3" which I want to look like 
"01-I_Am_A_Fish.mp3" thus removing open brackets around numbers at the beginning, 
replacing the space between the number and name with a dash and performing the listed 
function as above.
> 3. The listed functions are required to be performed recursively across directory trees.
> Any assistance people can provide would be most appreciated.
> Regards,
> Hayden Smith
>

Here are some places to start:

http://ruby-doc.org/core/classes/Dir.html#M002347
http://ruby-doc.org/core/classes/String.src/M000832.html
http://ruby-doc.org/core/classes/File.src/M002560.html

-Justin
Chris K. (Guest)
on 2009-03-16 14:02
(Received via mailing list)
You should be able to make something out of:

   - Dir#glob (http://www.ruby-doc.org/core/classes/Dir.html#M002347)
   - String#sub
(http://www.ruby-doc.org/core/classes/String.html#M000831)
   - String#gsub
(http://www.ruby-doc.org/core/classes/String.html#M000832)

The code is left as an exercise for the reader.  :)
badboy (Guest)
on 2009-03-16 14:56
(Received via mailing list)
Hayden Smith schrieb:
> Email - removed_email_address@domain.invalid
> +44-292-000-7380 (with extension 61756678016)
I would use a construct like this to replace the parts:
> string.gsub(/^\[(\d+)\]\s?/,
'\1-').gsub(/\s+([-+\w])/){"_#{$1.upcase}"}.gsub(/^-/, '')
where string is your filename (works for both versions ;))
This topic is locked and can not be replied to.