Renamer 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -42,3 +42,8 @@ See the COPYING file for more information.
42
42
 
43
43
  Renamer (c) Copyright 2004-2008
44
44
  by Nicolas Cavigneaux <nico@bounga.org>
45
+
46
+ === Other
47
+ More information on project homepage (http://www.bitbucket.org/Bounga/renamer)
48
+
49
+ Comments, suggestions, patches are welcome on the ticket system (http://www.bitbucket.org/Bounga/renamer/issues/new/)
@@ -82,17 +82,21 @@ opts.on("--downcase_ext", _("Downcase FILENAMES extensions")) { action = :downca
82
82
  opts.on("--upcase_ext", _("Upcase FILENAMES extensions")) { action = :upcase_ext }
83
83
  opts.on("-s", "--space", _("Replace spaces by underscores in FILENAMES")) { action = :space }
84
84
  opts.on("-U", "--underscore", _("Replace underscores by spaces in FILENAMES")) { action = :underscore }
85
+ opts.on("--date", _("Add current date to the beginning of FILENAMES")) { action = :date }
86
+ opts.on("--datetime", _("Add current datetime to the beginning of FILENAMES")) { action = :datetime }
85
87
  opts.on("-b", _("--basename BASENAME"), _("Rename FILENAMES using the specified"), _("BASENAME followed by an incremental number")) { |bn| action = :basename; arg = bn }
86
88
  opts.on("-e", _("--ext NEW"), _("Rename FILENAMES from their actual extension"), _("to the NEW one")) { |new| action = :ext; arg = new }
89
+ opts.on("-f", "--trim-first n", _("Rename FILENAMES by trimming first n characters")) { |n| action = :trim_first; arg = n }
90
+ opts.on("-l", "--trim-last n", _("Rename FILENAMES by trimming last n characters"), _("to the NEW one")) { |n| action = :trim_last; arg = n }
87
91
  opts.on("-r", "--recursive", _("Run %s recursively across directories") % Const::NAME) { recursive = true }
88
92
  opts.on("-o", "--overwrite", _("Overwrite existing files if needed") % Const::NAME) { overwrite = true }
89
93
 
90
94
  opts.separator ""
91
95
  opts.separator _("Common options:")
92
96
 
93
- opts.on("-h", "--help", _("Show this help")) { puts opts.to_s; exit(0) }
97
+ opts.on_tail("-h", "--help", _("Show this help")) { puts opts.to_s; exit(0) }
94
98
  opts.on("-v", "--version", _("Show %s version") % Const::NAME) { puts Const::NAME + " v" + Const::VER; exit(0) }
95
- opts.on("-l", "--license", _("Show some information about %s license") % Const::NAME) { puts Const::LICENSE; exit(0) }
99
+ opts.on("-L", "--license", _("Show some information about %s license") % Const::NAME) { puts Const::LICENSE; exit(0) }
96
100
  opts.on("-V", "--verbose", _("Run %s in verbose mode (quiet by default)") % Const::NAME) { $VERBOSE = true }
97
101
 
98
102
  ###################
@@ -111,23 +115,31 @@ r = Renamer.new(filenames, recursive, overwrite)
111
115
 
112
116
  case action
113
117
  when :downcase
114
- r.downcase
118
+ r.downcase
115
119
  when :upcase
116
- r.upcase
120
+ r.upcase
117
121
  when :downcase_ext
118
- r.downcase_ext
122
+ r.downcase_ext
119
123
  when :upcase_ext
120
- r.upcase_ext
124
+ r.upcase_ext
121
125
  when :capitalize
122
- r.capitalize
126
+ r.capitalize
123
127
  when :word
124
- r.capitalize_words
128
+ r.capitalize_words
125
129
  when :space
126
- r.space_to_underscore
130
+ r.space_to_underscore
127
131
  when :underscore
128
- r.underscore_to_space
132
+ r.underscore_to_space
129
133
  when :basename
130
- r.basename(arg)
134
+ r.basename(arg)
131
135
  when :ext
132
- r.ext(arg)
136
+ r.ext(arg)
137
+ when :trim_first
138
+ r.trim_first(arg)
139
+ when :trim_last
140
+ r.trim_last(arg)
141
+ when :date
142
+ r.current_date(Time.now)
143
+ when :datetime
144
+ r.current_datetime(Time.now)
133
145
  end
@@ -1,6 +1,7 @@
1
1
  = Renamer - The perfect tool to easily rename your files
2
2
 
3
3
  == Known bugs:
4
- Last Modified: 2006-04-24
4
+ Last Modified: 2008-10-30
5
5
 
6
6
  * Using of wildcards on the command-line only works for unix shells we must use Dir[] if we want this feature to be available on other systems (MS-Windows for example).
7
+ * Test test_mv fails
@@ -3,11 +3,13 @@
3
3
 
4
4
  === Renamer 0.5.0
5
5
 
6
- 2008-10-22 Nicolas Cavigneaux <nico@bounga.org>
6
+ 2008-10-30 Nicolas Cavigneaux <nico@bounga.org>
7
7
 
8
8
  * Improved Rakefile
9
9
  * Now explicitly use RDoc format for documentation
10
10
  * Updated infos
11
+ * Added current date/time renaming
12
+ * Added renaming by delete the "n" first/last characters
11
13
 
12
14
  === Renamer 0.4.4
13
15
 
@@ -56,24 +56,15 @@ It will show you some help about the possible options and how to use them.
56
56
 
57
57
  === 3.1. How should I report bugs?
58
58
 
59
- You have 3 ways to report bugs:
60
- * You can submit your bug at this url: http://rubyforge.org/tracker/?func=browse&group_id=1450&atid=5661
61
- * You can join us on IRC: <em>irc.freenode.net</em>, and try to contact a developer. If no one can help you (huh?), try another way.
62
- * You can mail your problem to a developer. Look at the support page for developer's mails: http://rubyforge.org/project/memberlist.php?group_id=1450
59
+ You can submit your bug at http://bounga.lighthouseapp.com/projects/18642-renamer/tickets/new with <em>bug</em> tag
63
60
 
64
61
  === 3.2. How should I submit patches?
65
62
 
66
- There is 3 ways to submit patches:
67
- * You can submit your patch at this url: http://rubyforge.org/tracker/?atid=5663&group_id=1450&func=browse
68
- * You can join us on IRC: <em>irc.freenode.net</em>, and try to contact a developer. If no one can help you (huh?), try another way.
69
- * You can mail your patch, look at support page for developer's mails: http://rubyforge.org/project/memberlist.php?group_id=1450
63
+ You can submit your patch at http://bounga.lighthouseapp.com/projects/18642-renamer/tickets/new with <em>patch</em> tag
70
64
 
71
65
  === 3.3. How should I submit new feature request?
72
66
 
73
- There is 3 ways to submit your feature request:
74
- * You can join us on IRC: <em>irc.freenode.net</em>, and try to contact a developer. If no one can help you (huh?), try another way.
75
- * You can submit your request at this url: http://rubyforge.org/tracker/?atid=5664&group_id=1450&func=browse
76
- * You can mail your feature request, look at support page for developer's mails: http://rubyforge.org/project/memberlist.php?group_id=1450
67
+ You can submit your request at http://bounga.lighthouseapp.com/projects/18642-renamer/tickets/new with <em>feature</em> tag
77
68
 
78
69
  === 3.4. Will Renamer be ported to *BSD, QNX, MacOS X, Microsoft Windows ?
79
70
 
@@ -85,8 +76,8 @@ Unix-like OS so it's was not tested on Microsoft Windows.
85
76
  === 3.5. I want to help Renamer developers. What can I do?
86
77
 
87
78
  There's many tasks to do (code, documentation, ...). Please contact us
88
- using IRC or e-mail, and look at this page: http://rubyforge.org/pm/task.php?group_project_id=1517&group_id=1450&func=browse
89
- It lists all the pending tasks. You can also look at the TODO and BUGS files
79
+ using IRC or e-mail, and look at this page: http://bounga.lighthouseapp.com/projects/18642-renamer/tickets?q=state%3Aopen
80
+ It lists all the open tasks. You can also look at the TODO and BUGS files
90
81
  available in the package.
91
82
 
92
83
  === 3.6. Can I give money or other things to Renamer developers?
@@ -16,7 +16,7 @@ need to stick to in order to get your patches accepted.
16
16
  It can be a little annoying to change your coding style if you're used to something else, but we need to use only one style
17
17
  to allow people to read the code and understand it easily.
18
18
 
19
- * Use 4-space tabs for indentation and expand tabs to spaces (if you use VIM, <tt>set ts=4</tt> and <tt>set et</tt>). Don't use tabs at all.
19
+ * Use 2-space tabs for indentation and expand tabs to spaces (if you use VIM, <tt>set ts=2</tt> and <tt>set et</tt>). Don't use tabs at all.
20
20
  * Join words of class names by capitalizing the first letter of each word (CamelCase)
21
21
  * Join words of method names and variables with underscores
22
22
  * Constants should always be in uppercase and should have words separated by undescores
@@ -34,4 +34,4 @@ to allow people to read the code and understand it easily.
34
34
  * Always provide patches in unified form (diff -u) and with a ChangeLog entry
35
35
  * Always provide Unit Test for all the functionnalities you've added
36
36
 
37
- If you think that your patch sticks these requirements you can send it using: http://rubyforge.org/tracker/?atid=5663&group_id=1450&func=browse
37
+ If you think that your patch sticks these requirements you can send at http://bounga.lighthouseapp.com/projects/18642-renamer/tickets/new with <em>patch</em> tag
@@ -2,15 +2,12 @@
2
2
 
3
3
  == To Do List
4
4
 
5
- Send suggestions for this list to mailto:nico@bounga.org or on
6
- http://rubyforge.org/tracker/?atid=5664&group_id=1450&func=browse.
5
+ Send suggestions for this list on
6
+ http://bounga.lighthouseapp.com/projects/18642-renamer/tickets/new with <em>feature</em> tag.
7
7
 
8
8
 
9
9
  === Before next release
10
10
 
11
- * Add a method to rename files using current date/time
12
- * Add a method to delete the "n" first/last characters
13
-
14
11
  === Future releases
15
12
 
16
13
  * Any idea ? Feel free to contact developers
@@ -80,14 +80,18 @@ Available options for Renamer are:
80
80
  * --upcase_ext : Upcase filename extensions
81
81
  * -s, --space : Delete spaces in filenames
82
82
  * -U, --underscore : Replace underscores by spaces in filenames
83
- * -b, --basename : Rename filenames using the specified basename followed by an incremental number
84
- * -e, --ext : Rename filenames from their actual extension to the specified one
83
+ * --date : Add current date to the beginning of filenames
84
+ * --datetime : Add current datetime to the beginning of filenames
85
+ * -b, --basename : Rename file using the specified basename followed by an incremental number
86
+ * -e, --ext : Rename file from their actual extension to the specified one
87
+ * -f, --trim-first : Rename file by trimming first n characters
88
+ * -l, --trim-last : Rename file by trimming last n characters
85
89
  * -r, --recursive : Run Renamer recursively across directories
86
90
  * -o, --overwrite : Overwrite existing files if needed
87
91
  * -V, --verbose : Run Renamer in verbose mode (quiet by default)
88
92
  * -h, --help : Show some help
89
93
  * -v, --version : Show Renamer version
90
- * -l, --license : Show some information about Renamer license
94
+ * -L, --license : Show some information about Renamer license
91
95
 
92
96
  == Authors / Support
93
97
 
@@ -19,7 +19,7 @@
19
19
 
20
20
  module Const
21
21
  NAME = "Renamer"
22
- VER = "0.5.0"
22
+ VER = "0.5.1"
23
23
  LICENSE = "
24
24
  Copyright (c) 2004-2008 by Nicolas Cavigneaux <nico@bounga.org>
25
25
  See COPIYNG for License detail.
@@ -195,6 +195,64 @@ class Renamer
195
195
  end
196
196
  run(proc_ext, e)
197
197
  end
198
+
199
+ # Trim first n characters
200
+ def trim_first(n)
201
+ proc_trim_first = Proc.new do |file, n|
202
+ # Grabbing name and ext
203
+ elements = file.split(".")
204
+ if elements.size < 2
205
+ name = elements.first
206
+ ext = nil
207
+ else
208
+ name = elements[0...-1].join('.')
209
+ ext = elements[-1, 1].first
210
+ end
211
+
212
+ # trimming the n first characters
213
+ new = [name[n..-1], ext].compact.join('.')
214
+ rename(file, new)
215
+ end
216
+ run(proc_trim_first, n)
217
+ end
218
+
219
+ # Trim last n characters
220
+ def trim_last(n)
221
+ proc_trim_last = Proc.new do |file, n|
222
+ # Grabbing name and ext
223
+ elements = file.split(".")
224
+ if elements.size < 2
225
+ name = elements.first
226
+ ext = nil
227
+ else
228
+ name = elements[0...-1].join('.')
229
+ ext = elements[-1, 1].first
230
+ end
231
+
232
+ # trimming the n last characters
233
+ new = [name[0, name.length - n], ext].compact.join('.')
234
+ rename(file, new)
235
+ end
236
+ run(proc_trim_last, n)
237
+ end
238
+
239
+ # Add date (using time arg) to the beginning of the filename
240
+ def current_date(time)
241
+ proc_current_date = Proc.new do |file, date|
242
+ new = [date, file].join('_')
243
+ rename(file, new)
244
+ end
245
+ run(proc_current_date, time.strftime("%Y-%m-%d"))
246
+ end
247
+
248
+ # Add datetime (using time arg) to the beginning of the filename
249
+ def current_datetime(datetime)
250
+ proc_current_datetime = Proc.new do |file, datetime|
251
+ new = [datetime, file].join('_')
252
+ rename(file, new)
253
+ end
254
+ run(proc_current_datetime, datetime.strftime("%Y-%m-%d_%H-%M"))
255
+ end
198
256
 
199
257
  private
200
258
  # Helper to test files and run the specific job
@@ -6,8 +6,8 @@
6
6
  # Nicolas Cavigneaux <nico@bounga.org>, 2005, 2006.
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: renamer\n"
10
- "POT-Creation-Date: 2006-05-17 15:52+0200\n"
9
+ "Project-Id-Version: 0.5.0\n"
10
+ "POT-Creation-Date: 2008-10-27 20:48+0100\n"
11
11
  "PO-Revision-Date: 2006-05-17 15:54+0200\n"
12
12
  "Last-Translator: Nicolas Cavigneaux <nico@bounga.org>\n"
13
13
  "Language-Team: Français <fr@li.org>\n"
@@ -58,54 +58,72 @@ msgid "Replace underscores by spaces in FILENAMES"
58
58
  msgstr "Remplace les blancs soulignés par des espaces dans FICHIERS "
59
59
 
60
60
  #: bin/renamer:85
61
+ msgid "Add current date to the beginning of FILENAMES"
62
+ msgstr "Ajouter la date courante en début de FICHIERS"
63
+
64
+ #: bin/renamer:86
65
+ msgid "Add current datetime to the beginning of FILENAMES"
66
+ msgstr "Ajouter la date et l'heure courante en début de FICHIERS"
67
+
68
+ #: bin/renamer:87
61
69
  msgid "--basename BASENAME"
62
70
  msgstr "--basename NOM_DE_BASE"
63
71
 
64
- #: bin/renamer:85
72
+ #: bin/renamer:87
65
73
  msgid "Rename FILENAMES using the specified"
66
74
  msgstr "Renomme FICHIERS. en utilisant le"
67
75
 
68
- #: bin/renamer:85
76
+ #: bin/renamer:87
69
77
  msgid "BASENAME followed by an incremental number"
70
78
  msgstr "NOM_DE_BASE spécifié suivit d'un nombre incrémental"
71
79
 
72
- #: bin/renamer:86
80
+ #: bin/renamer:88
73
81
  msgid "--ext NEW"
74
82
  msgstr "--ext NOUVELLE"
75
83
 
76
- #: bin/renamer:86
84
+ #: bin/renamer:88
77
85
  msgid "Rename FILENAMES from their actual extension"
78
86
  msgstr "Renomme FICHIERS de leur extension actuelle"
79
87
 
80
- #: bin/renamer:86
88
+ #: bin/renamer:88 bin/renamer:90
81
89
  msgid "to the NEW one"
82
90
  msgstr "à la NOUVELLE"
83
91
 
84
- #: bin/renamer:87
92
+ #: bin/renamer:89
93
+ #, fuzzy
94
+ msgid "Rename FILENAMES by trimming first n characters"
95
+ msgstr "Renomme FICHIERS de leur extension actuelle"
96
+
97
+ #: bin/renamer:90
98
+ #, fuzzy
99
+ msgid "Rename FILENAMES by trimming last n characters"
100
+ msgstr "Renomme FICHIERS de leur extension actuelle"
101
+
102
+ #: bin/renamer:91
85
103
  msgid "Run %s recursively across directories"
86
104
  msgstr "Éxécute %s récurisivement à travers les répertoires"
87
105
 
88
- #: bin/renamer:88
106
+ #: bin/renamer:92
89
107
  msgid "Overwrite existing files if needed"
90
108
  msgstr "Écrase les fichiers existants si nécessaire"
91
109
 
92
- #: bin/renamer:91
110
+ #: bin/renamer:95
93
111
  msgid "Common options:"
94
112
  msgstr "Options habituelles"
95
113
 
96
- #: bin/renamer:93
114
+ #: bin/renamer:97
97
115
  msgid "Show this help"
98
116
  msgstr "Affiche cette aide"
99
117
 
100
- #: bin/renamer:94
118
+ #: bin/renamer:98
101
119
  msgid "Show %s version"
102
120
  msgstr "Affiche la version de %s"
103
121
 
104
- #: bin/renamer:95
122
+ #: bin/renamer:99
105
123
  msgid "Show some information about %s license"
106
124
  msgstr "Affiche quelques informations à propos de la licence de %s"
107
125
 
108
- #: bin/renamer:96
126
+ #: bin/renamer:100
109
127
  msgid "Run %s in verbose mode (quiet by default)"
110
128
  msgstr "Éxécute %s en mode verbeux (silencieux par défaut) "
111
129
 
@@ -113,11 +131,10 @@ msgstr "Éxécute %s en mode verbeux (silencieux par défaut) "
113
131
  msgid "%s: %s file already exists!"
114
132
  msgstr "%s : Le fichier %s existe déjà !"
115
133
 
116
- #: lib/renamer.rb:207
134
+ #: lib/renamer.rb:265
117
135
  msgid "%s: You don't have write access on %s"
118
136
  msgstr "%s : Vous n'avez pas les droits en écriture sur %s"
119
137
 
120
- #: lib/renamer.rb:210
138
+ #: lib/renamer.rb:268
121
139
  msgid "%s: File %s doesn't exists!"
122
140
  msgstr "%s : Le fichier %s n'existe pas !"
123
-
@@ -6,8 +6,8 @@
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: 0.4.3\n"
10
- "POT-Creation-Date: 2006-05-17 15:52+0200\n"
9
+ "Project-Id-Version: 0.5.0\n"
10
+ "POT-Creation-Date: 2008-10-27 20:48+0100\n"
11
11
  "PO-Revision-Date: 2005-12-16 21:30+0100\n"
12
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -57,54 +57,70 @@ msgid "Replace underscores by spaces in FILENAMES"
57
57
  msgstr ""
58
58
 
59
59
  #: bin/renamer:85
60
+ msgid "Add current date to the beginning of FILENAMES"
61
+ msgstr ""
62
+
63
+ #: bin/renamer:86
64
+ msgid "Add current datetime to the beginning of FILENAMES"
65
+ msgstr ""
66
+
67
+ #: bin/renamer:87
60
68
  msgid "--basename BASENAME"
61
69
  msgstr ""
62
70
 
63
- #: bin/renamer:85
71
+ #: bin/renamer:87
64
72
  msgid "Rename FILENAMES using the specified"
65
73
  msgstr ""
66
74
 
67
- #: bin/renamer:85
75
+ #: bin/renamer:87
68
76
  msgid "BASENAME followed by an incremental number"
69
77
  msgstr ""
70
78
 
71
- #: bin/renamer:86
79
+ #: bin/renamer:88
72
80
  msgid "--ext NEW"
73
81
  msgstr ""
74
82
 
75
- #: bin/renamer:86
83
+ #: bin/renamer:88
76
84
  msgid "Rename FILENAMES from their actual extension"
77
85
  msgstr ""
78
86
 
79
- #: bin/renamer:86
87
+ #: bin/renamer:88 bin/renamer:90
80
88
  msgid "to the NEW one"
81
89
  msgstr ""
82
90
 
83
- #: bin/renamer:87
91
+ #: bin/renamer:89
92
+ msgid "Rename FILENAMES by trimming first n characters"
93
+ msgstr ""
94
+
95
+ #: bin/renamer:90
96
+ msgid "Rename FILENAMES by trimming last n characters"
97
+ msgstr ""
98
+
99
+ #: bin/renamer:91
84
100
  msgid "Run %s recursively across directories"
85
101
  msgstr ""
86
102
 
87
- #: bin/renamer:88
103
+ #: bin/renamer:92
88
104
  msgid "Overwrite existing files if needed"
89
105
  msgstr ""
90
106
 
91
- #: bin/renamer:91
107
+ #: bin/renamer:95
92
108
  msgid "Common options:"
93
109
  msgstr ""
94
110
 
95
- #: bin/renamer:93
111
+ #: bin/renamer:97
96
112
  msgid "Show this help"
97
113
  msgstr ""
98
114
 
99
- #: bin/renamer:94
115
+ #: bin/renamer:98
100
116
  msgid "Show %s version"
101
117
  msgstr ""
102
118
 
103
- #: bin/renamer:95
119
+ #: bin/renamer:99
104
120
  msgid "Show some information about %s license"
105
121
  msgstr ""
106
122
 
107
- #: bin/renamer:96
123
+ #: bin/renamer:100
108
124
  msgid "Run %s in verbose mode (quiet by default)"
109
125
  msgstr ""
110
126
 
@@ -112,10 +128,10 @@ msgstr ""
112
128
  msgid "%s: %s file already exists!"
113
129
  msgstr ""
114
130
 
115
- #: lib/renamer.rb:207
131
+ #: lib/renamer.rb:265
116
132
  msgid "%s: You don't have write access on %s"
117
133
  msgstr ""
118
134
 
119
- #: lib/renamer.rb:210
135
+ #: lib/renamer.rb:268
120
136
  msgid "%s: File %s doesn't exists!"
121
137
  msgstr ""
@@ -18,25 +18,8 @@
18
18
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
19
  =end
20
20
 
21
- # Loading needed libs
22
- begin
23
- require 'rubygems'
24
- rescue LoadError
25
- warn "Not using RubyGems" if $DEBUG
26
- end
27
-
28
- $:.unshift(File.dirname(__FILE__) + "/../lib/")
29
-
30
- require 'test/unit'
31
- require 'rubygems'
32
- require 'gettext'
33
- require 'tempfile'
34
- require 'fileutils'
35
- require 'const'
36
- require 'renamer'
37
-
38
- # Testing
39
- class TestRenamer < Test::Unit::TestCase
21
+ # Testing procs
22
+ class TestRenamerProcs < Test::Unit::TestCase
40
23
  def setup
41
24
  $VERBOSE = nil
42
25
  @files = Array.new
@@ -44,7 +27,7 @@ class TestRenamer < Test::Unit::TestCase
44
27
  Dir.chdir("tmp_files")
45
28
  end
46
29
 
47
- def teardown
30
+ def teardown
48
31
  Dir.chdir("..")
49
32
  FileUtils.rm_rf("tmp_files")
50
33
  end
@@ -55,9 +38,9 @@ class TestRenamer < Test::Unit::TestCase
55
38
 
56
39
  r = Renamer.new(@files)
57
40
  r.downcase
58
-
59
- assert_raise(Errno::ENOENT) { File.open("PLOP.txt") }
60
- assert_raise(Errno::ENOENT) { File.open("TesT.Hop") }
41
+
42
+ assert(!File.exist?("PLOP"))
43
+ assert(!File.exist?("TesT.Hop"))
61
44
  end
62
45
 
63
46
  def test_subdirectory
@@ -69,8 +52,8 @@ class TestRenamer < Test::Unit::TestCase
69
52
  r = Renamer.new(@files)
70
53
  r.downcase
71
54
 
72
- assert_nothing_raised(Errno::ENOENT) { File.open("test1/plop.txt") }
73
- assert_nothing_raised(Errno::ENOENT) { File.open("test2/plop.txt") }
55
+ assert(File.exist?("test1/plop.txt"))
56
+ assert(File.exist?("test2/plop.txt"))
74
57
  end
75
58
 
76
59
  def test_recursivity
@@ -86,10 +69,10 @@ class TestRenamer < Test::Unit::TestCase
86
69
  r = Renamer.new(@files, true)
87
70
  r.downcase
88
71
 
89
- assert_nothing_raised(Errno::ENOENT) { File.open("test1/plop.txt") }
90
- assert_nothing_raised(Errno::ENOENT) { File.open("test1/test3/plop.txt") }
91
- assert_nothing_raised(Errno::ENOENT) { File.open("test1/test3/test4/plop.txt") }
92
- assert_nothing_raised(Errno::ENOENT) { File.open("test2/plop.txt") }
72
+ assert(File.exist?("test1/plop.txt"))
73
+ assert(File.exist?("test1/test3/plop.txt"))
74
+ assert(File.exist?("test1/test3/test4/plop.txt"))
75
+ assert(File.exist?("test2/plop.txt"))
93
76
  end
94
77
 
95
78
  def test_overwrite
@@ -100,8 +83,8 @@ class TestRenamer < Test::Unit::TestCase
100
83
  r = Renamer.new(@files, false, false)
101
84
  r.underscore_to_space
102
85
 
103
- assert_nothing_raised(Errno::ENOENT) { File.open("plop_plop") }
104
- assert_nothing_raised(Errno::ENOENT) { File.open("plop plop") }
86
+ assert(File.exist?("plop_plop"))
87
+ assert(File.exist?("plop plop"))
105
88
 
106
89
  # Now we test that files are overwrited when overwrite is true
107
90
  @files.clear
@@ -111,8 +94,8 @@ class TestRenamer < Test::Unit::TestCase
111
94
  r = Renamer.new(@files, false, true)
112
95
  r.underscore_to_space
113
96
 
114
- assert_raise(Errno::ENOENT) { File.open("test_test") }
115
- assert_nothing_raised(Errno::ENOENT) { File.open("test test") }
97
+ assert(!File.exist?("test_test"))
98
+ assert(File.exist?("test test"))
116
99
  end
117
100
 
118
101
  def test_downcase
@@ -126,12 +109,12 @@ class TestRenamer < Test::Unit::TestCase
126
109
  r = Renamer.new(@files)
127
110
  r.downcase
128
111
 
129
- assert_nothing_raised(Errno::ENOENT) { File.open("plop") }
130
- assert_nothing_raised(Errno::ENOENT) { File.open("plop.txt") }
131
- assert_nothing_raised(Errno::ENOENT) { File.open("plop.jpg") }
132
- assert_nothing_raised(Errno::ENOENT) { File.open("test.hop") }
133
- assert_nothing_raised(Errno::ENOENT) { File.open("test.txt") }
134
- assert_nothing_raised(Errno::ENOENT) { File.open("test.jpg.txt") }
112
+ assert(File.exist?("plop"))
113
+ assert(File.exist?("plop.txt"))
114
+ assert(File.exist?("plop.jpg"))
115
+ assert(File.exist?("test.hop"))
116
+ assert(File.exist?("test.txt"))
117
+ assert(File.exist?("test.jpg.txt"))
135
118
  end
136
119
 
137
120
  def test_upcase
@@ -144,13 +127,13 @@ class TestRenamer < Test::Unit::TestCase
144
127
 
145
128
  r = Renamer.new(@files)
146
129
  r.upcase
147
-
148
- assert_nothing_raised(Errno::ENOENT) { File.open("PLOP") }
149
- assert_nothing_raised(Errno::ENOENT) { File.open("PLOP.TXT") }
150
- assert_nothing_raised(Errno::ENOENT) { File.open("PLOP.JPG") }
151
- assert_nothing_raised(Errno::ENOENT) { File.open("TEST.HOP") }
152
- assert_nothing_raised(Errno::ENOENT) { File.open("TEST.TXT") }
153
- assert_nothing_raised(Errno::ENOENT) { File.open("TEST.JPG.TXT") }
130
+
131
+ assert(File.exist?("PLOP"))
132
+ assert(File.exist?("PLOP.TXT"))
133
+ assert(File.exist?("PLOP.JPG"))
134
+ assert(File.exist?("TEST.HOP"))
135
+ assert(File.exist?("TEST.TXT"))
136
+ assert(File.exist?("TEST.JPG.TXT"))
154
137
  end
155
138
 
156
139
  def test_space_to_underscore
@@ -164,12 +147,12 @@ class TestRenamer < Test::Unit::TestCase
164
147
  r = Renamer.new(@files)
165
148
  r.space_to_underscore
166
149
 
167
- assert_nothing_raised(Errno::ENOENT) { File.open("plop_plop") }
168
- assert_nothing_raised(Errno::ENOENT) { File.open("PLOP.txt") }
169
- assert_nothing_raised(Errno::ENOENT) { File.open("PLOP_PLOP_PLOP.avi") }
170
- assert_nothing_raised(Errno::ENOENT) { File.open("TesT_.Hop") }
171
- assert_nothing_raised(Errno::ENOENT) { File.open("test._txt") }
172
- assert_nothing_raised(Errno::ENOENT) { File.open("teST.jpg.txt") }
150
+ assert(File.exist?("plop_plop"))
151
+ assert(File.exist?("PLOP.txt"))
152
+ assert(File.exist?("PLOP_PLOP_PLOP.avi"))
153
+ assert(File.exist?("TesT_.Hop"))
154
+ assert(File.exist?("test._txt"))
155
+ assert(File.exist?("teST.jpg.txt"))
173
156
  end
174
157
 
175
158
  def test_underscore_to_space
@@ -183,12 +166,12 @@ class TestRenamer < Test::Unit::TestCase
183
166
  r = Renamer.new(@files)
184
167
  r.underscore_to_space
185
168
 
186
- assert_nothing_raised(Errno::ENOENT) { File.open("plop plop") }
187
- assert_nothing_raised(Errno::ENOENT) { File.open("PLOP.txt") }
188
- assert_nothing_raised(Errno::ENOENT) { File.open("PLOP PLOP PLOP.avi") }
189
- assert_nothing_raised(Errno::ENOENT) { File.open("TesT .Hop") }
190
- assert_nothing_raised(Errno::ENOENT) { File.open("test. txt") }
191
- assert_nothing_raised(Errno::ENOENT) { File.open("teST.jpg.txt") }
169
+ assert(File.exist?("plop plop"))
170
+ assert(File.exist?("PLOP.txt"))
171
+ assert(File.exist?("PLOP PLOP PLOP.avi"))
172
+ assert(File.exist?("TesT .Hop"))
173
+ assert(File.exist?("test. txt"))
174
+ assert(File.exist?("teST.jpg.txt"))
192
175
  end
193
176
 
194
177
  def test_capitalize
@@ -202,12 +185,12 @@ class TestRenamer < Test::Unit::TestCase
202
185
  r = Renamer.new(@files)
203
186
  r.capitalize
204
187
 
205
- assert_nothing_raised(Errno::ENOENT) { File.open("Plop_plop") }
206
- assert_nothing_raised(Errno::ENOENT) { File.open("Plop.txt") }
207
- assert_nothing_raised(Errno::ENOENT) { File.open("Plop.avi") }
208
- assert_nothing_raised(Errno::ENOENT) { File.open("Test_.hop") }
209
- assert_nothing_raised(Errno::ENOENT) { File.open("Test test.txt") }
210
- assert_nothing_raised(Errno::ENOENT) { File.open("Test.jpg.txt") }
188
+ assert(File.exist?("Plop_plop"))
189
+ assert(File.exist?("Plop.txt"))
190
+ assert(File.exist?("Plop.avi"))
191
+ assert(File.exist?("Test_.hop"))
192
+ assert(File.exist?("Test test.txt"))
193
+ assert(File.exist?("Test.jpg.txt"))
211
194
  end
212
195
 
213
196
  def test_capitalize_words
@@ -223,14 +206,14 @@ class TestRenamer < Test::Unit::TestCase
223
206
  r = Renamer.new(@files)
224
207
  r.capitalize_words
225
208
 
226
- assert_nothing_raised(Errno::ENOENT) { File.open("Plop_Plop") }
227
- assert_nothing_raised(Errno::ENOENT) { File.open("Plop.txt") }
228
- assert_nothing_raised(Errno::ENOENT) { File.open("Plop.avi") }
229
- assert_nothing_raised(Errno::ENOENT) { File.open("Test_.hop") }
230
- assert_nothing_raised(Errno::ENOENT) { File.open("Test Test.txt") }
231
- assert_nothing_raised(Errno::ENOENT) { File.open("Test Test_Test.txt") }
232
- assert_nothing_raised(Errno::ENOENT) { File.open("Test.Jpg.txt") }
233
- assert_nothing_raised(Errno::ENOENT) { File.open(".dotfile") }
209
+ assert(File.exist?("Plop_Plop"))
210
+ assert(File.exist?("Plop.txt"))
211
+ assert(File.exist?("Plop.avi"))
212
+ assert(File.exist?("Test_.hop"))
213
+ assert(File.exist?("Test Test.txt"))
214
+ assert(File.exist?("Test Test_Test.txt"))
215
+ assert(File.exist?("Test.Jpg.txt"))
216
+ assert(File.exist?(".dotfile"))
234
217
  end
235
218
 
236
219
  def test_basename
@@ -246,13 +229,13 @@ class TestRenamer < Test::Unit::TestCase
246
229
  r = Renamer.new(@files)
247
230
  r.basename("test")
248
231
 
249
- assert_nothing_raised(Errno::ENOENT) { File.open("test0000.txt") }
250
- assert_nothing_raised(Errno::ENOENT) { File.open("test0001.txt") }
251
- assert_nothing_raised(Errno::ENOENT) { File.open("test0002.txt") }
252
- assert_nothing_raised(Errno::ENOENT) { File.open("test0003.txt") }
253
- assert_nothing_raised(Errno::ENOENT) { File.open("test0005.txt") }
254
- assert_nothing_raised(Errno::ENOENT) { File.open("test0006.txt") }
255
- assert_nothing_raised(Errno::ENOENT) { File.open("test0000") }
232
+ assert(File.exist?("test0000.txt"))
233
+ assert(File.exist?("test0001.txt"))
234
+ assert(File.exist?("test0002.txt"))
235
+ assert(File.exist?("test0003.txt"))
236
+ assert(File.exist?("test0005.txt"))
237
+ assert(File.exist?("test0006.txt"))
238
+ assert(File.exist?("test0000"))
256
239
  end
257
240
 
258
241
  def test_ext
@@ -270,15 +253,15 @@ class TestRenamer < Test::Unit::TestCase
270
253
  r = Renamer.new(@files)
271
254
  r.ext("rnm")
272
255
 
273
- assert_nothing_raised(Errno::ENOENT) { File.open("plop_plop.rnm") }
274
- assert_nothing_raised(Errno::ENOENT) { File.open("PLOP.rnm") }
275
- assert_nothing_raised(Errno::ENOENT) { File.open("Plop.rnm") }
276
- assert_nothing_raised(Errno::ENOENT) { File.open("TesT_.rnm") }
277
- assert_nothing_raised(Errno::ENOENT) { File.open("test test.rnm") }
278
- assert_nothing_raised(Errno::ENOENT) { File.open("test test_test.rnm") }
279
- assert_nothing_raised(Errno::ENOENT) { File.open("teST.jpg.rnm") }
280
- assert_nothing_raised(Errno::ENOENT) { File.open(".dotfile") }
281
- assert_nothing_raised(Errno::ENOENT) { File.open("tmp_files2/.dotfile") }
256
+ assert(File.exist?("plop_plop.rnm"))
257
+ assert(File.exist?("PLOP.rnm"))
258
+ assert(File.exist?("Plop.rnm"))
259
+ assert(File.exist?("TesT_.rnm"))
260
+ assert(File.exist?("test test.rnm"))
261
+ assert(File.exist?("test test_test.rnm"))
262
+ assert(File.exist?("teST.jpg.rnm"))
263
+ assert(File.exist?(".dotfile"))
264
+ assert(File.exist?("tmp_files2/.dotfile"))
282
265
  end
283
266
 
284
267
  def test_downcase_ext
@@ -296,15 +279,15 @@ class TestRenamer < Test::Unit::TestCase
296
279
  r = Renamer.new(@files)
297
280
  r.downcase_ext
298
281
 
299
- assert_nothing_raised(Errno::ENOENT) { File.open("plop_plop") }
300
- assert_nothing_raised(Errno::ENOENT) { File.open("PLOP.txt") }
301
- assert_nothing_raised(Errno::ENOENT) { File.open("Plop.avi") }
302
- assert_nothing_raised(Errno::ENOENT) { File.open("TesT_.hop") }
303
- assert_nothing_raised(Errno::ENOENT) { File.open("test test.txt") }
304
- assert_nothing_raised(Errno::ENOENT) { File.open("test test_test.txt") }
305
- assert_nothing_raised(Errno::ENOENT) { File.open("teST.jpg.txt") }
306
- assert_nothing_raised(Errno::ENOENT) { File.open(".DotFile") }
307
- assert_nothing_raised(Errno::ENOENT) { File.open("tmp_files2/.DotFile") }
282
+ assert(File.exist?("plop_plop"))
283
+ assert(File.exist?("PLOP.txt"))
284
+ assert(File.exist?("Plop.avi"))
285
+ assert(File.exist?("TesT_.hop"))
286
+ assert(File.exist?("test test.txt"))
287
+ assert(File.exist?("test test_test.txt"))
288
+ assert(File.exist?("teST.jpg.txt"))
289
+ assert(File.exist?(".DotFile"))
290
+ assert(File.exist?("tmp_files2/.DotFile"))
308
291
  end
309
292
 
310
293
  def test_upcase_ext
@@ -322,14 +305,66 @@ class TestRenamer < Test::Unit::TestCase
322
305
  r = Renamer.new(@files)
323
306
  r.upcase_ext
324
307
 
325
- assert_nothing_raised(Errno::ENOENT) { File.open("plop_plop") }
326
- assert_nothing_raised(Errno::ENOENT) { File.open("PLOP.TXT") }
327
- assert_nothing_raised(Errno::ENOENT) { File.open("Plop.AVI") }
328
- assert_nothing_raised(Errno::ENOENT) { File.open("TesT_.HOP") }
329
- assert_nothing_raised(Errno::ENOENT) { File.open("test test.TXT") }
330
- assert_nothing_raised(Errno::ENOENT) { File.open("test test_test.TXT") }
331
- assert_nothing_raised(Errno::ENOENT) { File.open("teST.jpg.TXT") }
332
- assert_nothing_raised(Errno::ENOENT) { File.open(".DotFile") }
333
- assert_nothing_raised(Errno::ENOENT) { File.open("tmp_files2/.DotFile") }
308
+ assert(File.exist?("plop_plop"))
309
+ assert(File.exist?("PLOP.TXT"))
310
+ assert(File.exist?("Plop.AVI"))
311
+ assert(File.exist?("TesT_.HOP"))
312
+ assert(File.exist?("test test.TXT"))
313
+ assert(File.exist?("test test_test.TXT"))
314
+ assert(File.exist?("teST.jpg.TXT"))
315
+ assert(File.exist?(".DotFile"))
316
+ assert(File.exist?("tmp_files2/.DotFile"))
317
+ end
318
+
319
+ def test_trim_first_characters
320
+ @files << File.new("plop_plop", "w").path
321
+ @files << File.new("abracadabra.txt", "w").path
322
+ @files << File.new("abcdefij.klm.txt", "w").path
323
+
324
+ r = Renamer.new(@files)
325
+ r.trim_first(5)
326
+
327
+ assert(File.exist?("plop"))
328
+ assert(File.exist?("adabra.txt"))
329
+ assert(File.exist?("fij.klm.txt"))
330
+ end
331
+
332
+ def test_trim_last_characters
333
+ @files << File.new("plop_plouf", "w").path
334
+ @files << File.new("abracadabra.txt", "w").path
335
+ @files << File.new("abcdefij.klm.txt", "w").path
336
+
337
+ r = Renamer.new(@files)
338
+ r.trim_last(4)
339
+
340
+ assert(File.exist?("plop_p"))
341
+ assert(File.exist?("abracad.txt"))
342
+ assert(File.exist?("abcdefij.txt"))
343
+ end
344
+
345
+ def test_date
346
+ @files << File.new("plop_plouf", "w").path
347
+ @files << File.new("abracadabra.txt", "w").path
348
+
349
+ time = Time.now
350
+
351
+ r = Renamer.new(@files)
352
+ r.current_date(time)
353
+
354
+ assert(File.exist?([time.strftime("%Y-%m-%d"), "plop_plouf"].join('_')))
355
+ assert(File.exist?([time.strftime("%Y-%m-%d"), "abracadabra.txt"].join('_')))
356
+ end
357
+
358
+ def test_datetime
359
+ @files << File.new("plop_plouf", "w").path
360
+ @files << File.new("abracadabra.txt", "w").path
361
+
362
+ time = Time.now
363
+
364
+ r = Renamer.new(@files)
365
+ r.current_datetime(time)
366
+
367
+ assert(File.exist?([time.strftime("%Y-%m-%d_%H-%M"), "plop_plouf"].join('_')))
368
+ assert(File.exist?([time.strftime("%Y-%m-%d_%H-%M"), "abracadabra.txt"].join('_')))
334
369
  end
335
370
  end
@@ -18,7 +18,23 @@
18
18
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
19
  =end
20
20
 
21
+
22
+ # Loading needed libs
23
+ begin
24
+ require 'rubygems'
25
+ rescue LoadError
26
+ warn "Not using RubyGems" if $DEBUG
27
+ end
28
+
21
29
  $:.unshift(File.dirname(__FILE__))
30
+ $:.unshift(File.dirname(__FILE__) + "/../lib/")
22
31
 
23
32
  require 'test/unit'
24
- require 'tc_renamer'
33
+ require 'rubygems'
34
+ require 'gettext'
35
+ require 'tempfile'
36
+ require 'fileutils'
37
+ require 'const'
38
+ require 'renamer'
39
+
40
+ require 'tc_renamer_procs'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Renamer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nicolas Cavigneaux
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-10-22 00:00:00 +02:00
12
+ date: 2009-10-12 00:00:00 +02:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -50,14 +50,15 @@ files:
50
50
  - doc/TODO.rdoc
51
51
  - lib/const.rb
52
52
  - lib/renamer.rb
53
- - po/fr
54
53
  - po/fr/renamer.po
55
54
  - po/renamer.pot
56
- - test/tc_renamer.rb
55
+ - test/tc_renamer_procs.rb
57
56
  - test/ts_renamer.rb
58
57
  - README.rdoc
59
58
  has_rdoc: true
60
- homepage: http://rubyforge.org/projects/renamer/
59
+ homepage: http://www.bitbucket.org/Bounga/renamer/
60
+ licenses: []
61
+
61
62
  post_install_message:
62
63
  rdoc_options:
63
64
  - --title
@@ -82,9 +83,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
82
83
  requirements: []
83
84
 
84
85
  rubyforge_project: renamer
85
- rubygems_version: 1.3.0
86
+ rubygems_version: 1.3.5
86
87
  signing_key:
87
- specification_version: 2
88
+ specification_version: 3
88
89
  summary: A fast and light utility to massively rename your files
89
90
  test_files:
90
91
  - test/ts_renamer.rb