fileorganizer 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/organize.rb +9 -10
- metadata +1 -2
- data/lib/organize_spec.rb +0 -43
data/lib/organize.rb
CHANGED
@@ -5,14 +5,11 @@ class Organize
|
|
5
5
|
attr_accessor :directory_path
|
6
6
|
|
7
7
|
def initialize
|
8
|
-
# create tests
|
9
|
-
# what does "full documentation" mean?
|
10
|
-
# integrate with Travic CI
|
11
8
|
@directory_path = '/Users/brianward/Sites/fileorganizer/lib/testfiles/'
|
12
9
|
end
|
13
10
|
|
14
11
|
def directory_files
|
15
|
-
files_sorted_by_time = Dir["#{directory_path}**/*.*"].sort_by{ |f| File.mtime(f) }
|
12
|
+
files_sorted_by_time = Dir["#{@directory_path}**/*.*"].sort_by{ |f| File.mtime(f) }
|
16
13
|
end
|
17
14
|
|
18
15
|
def show_new_names
|
@@ -25,12 +22,14 @@ class Organize
|
|
25
22
|
int = 100000
|
26
23
|
directory_files.each do |filename|
|
27
24
|
file_date = File.mtime(filename).to_s
|
25
|
+
# check that file doesn't already have a date name
|
28
26
|
if !/\d{4}\-\d{2}\-\d{2}/.match(filename[10])
|
29
|
-
if
|
30
|
-
|
27
|
+
# check if a file with this date name doesn't alreday exist, and add number to end of filename if so
|
28
|
+
if File.exist?(@directory_path + file_date + filename[-4,4])
|
29
|
+
File.rename(filename, @directory_path + file_date + '_' + int.to_s + filename[-4,4])
|
31
30
|
int += 1
|
32
31
|
else
|
33
|
-
File.rename(filename, directory_path + file_date + filename[-4,4])
|
32
|
+
File.rename(filename, @directory_path + file_date + filename[-4,4])
|
34
33
|
end
|
35
34
|
end
|
36
35
|
end
|
@@ -40,14 +39,14 @@ class Organize
|
|
40
39
|
# loop over the file dates and run "mkdir" for those dates that don't have a folder yet
|
41
40
|
directory_files.each do |filename|
|
42
41
|
folder_name = filename.split('/').last[0,10]
|
43
|
-
Dir.mkdir(directory_path + folder_name) unless Dir.exists?(directory_path + folder_name)
|
44
|
-
FileUtils.copy_file(filename, directory_path + folder_name + "/" + filename.split('/').last, preserve = true)
|
42
|
+
Dir.mkdir(@directory_path + folder_name) unless Dir.exists?(@directory_path + folder_name)
|
43
|
+
FileUtils.copy_file(filename, @directory_path + folder_name + "/" + filename.split('/').last, preserve = true)
|
45
44
|
FileUtils.remove_file(filename, force = true)
|
46
45
|
end
|
47
46
|
end
|
48
47
|
|
49
48
|
def delete_non_date_folders
|
50
|
-
Dir["#{directory_path}**/**"].each do |folder_name|
|
49
|
+
Dir["#{@directory_path}**/**"].each do |folder_name|
|
51
50
|
if !/\d{4}\-\d{2}\-\d{2}/.match(folder_name)
|
52
51
|
FileUtils.remove_dir(folder_name, force = false)
|
53
52
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fileorganizer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -54,7 +54,6 @@ files:
|
|
54
54
|
- bin/fileorganizer
|
55
55
|
- lib/fileorganizer.rb
|
56
56
|
- lib/organize.rb
|
57
|
-
- lib/organize_spec.rb
|
58
57
|
- lib/testfiles/4471473910_14e267969c.jpg
|
59
58
|
- lib/testfiles/4474268581_2b1ebba1c1.jpg
|
60
59
|
- lib/testfiles/4477744959_27ba8a402b_z.jpg
|
data/lib/organize_spec.rb
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
require './organize.rb'
|
2
|
-
|
3
|
-
describe Organize do
|
4
|
-
|
5
|
-
before :all do
|
6
|
-
@newTask = Organize.new
|
7
|
-
@newTask.directory_path = Dir.pwd + "/testfiles/"
|
8
|
-
end
|
9
|
-
|
10
|
-
after(:all) do
|
11
|
-
FileUtils.rm_rf(@newTask.directory_path)
|
12
|
-
current_directory = Dir.pwd
|
13
|
-
FileUtils.cp_r current_directory + '/testfiles_copy', current_directory + '/testfiles/', :preserve => true
|
14
|
-
end
|
15
|
-
|
16
|
-
it "should have a directory path" do
|
17
|
-
@newTask.should respond_to "directory_path"
|
18
|
-
end
|
19
|
-
|
20
|
-
it "should return a list of existing files in directory" do
|
21
|
-
existing_files = Dir[@newTask.directory_path + '**/*.*'].map { |a| File.basename(a) }
|
22
|
-
existing_files.should eq ["4471473910_14e267969c.jpg", "4474268581_2b1ebba1c1.jpg", "4477744959_27ba8a402b_z.jpg", "5241024543_4d024eaa09_b.jpg", "5241024587_9ce803aafe_b.jpg", "5241619844_a02287bb21_b.jpg", "5241620170_91d55ef233_o.jpg", "5384868249_80bcb10aa2_b.jpg", "photo (1).JPG", "photo (2).JPG", "photo.JPG", "0f8109ddc4c5d699bbf4d9fbef2bcfcb.jpg", "3e54bfc519c423f3aa3b67d46d2684f4.jpg"]
|
23
|
-
end
|
24
|
-
|
25
|
-
it "should rename the existing files in directory" do
|
26
|
-
@newTask.rename_files
|
27
|
-
new_files = Dir[@newTask.directory_path + '**/*.*'].map { |a| File.basename(a) }
|
28
|
-
new_files.should eq ["2011-02-04 14:31:58 -0800.jpg", "2011-02-04 14:34:42 -0800.jpg", "2011-02-04 14:35:32 -0800.jpg", "2011-02-04 14:35:48 -0800.jpg", "2011-02-04 14:35:56 -0800.jpg", "2011-02-04 14:37:02 -0800.jpg", "2011-02-04 14:37:26 -0800.jpg", "2011-02-04 14:37:58 -0800.jpg", "2011-02-21 10:55:15 -0800.jpg", "2011-02-21 10:56:09 -0800.jpg", "2011-03-19 22:24:33 -0700.JPG", "2011-03-19 22:24:45 -0700.JPG", "2011-03-19 22:24:56 -0700.JPG"]
|
29
|
-
end
|
30
|
-
|
31
|
-
it "should create new folders from dates" do
|
32
|
-
@newTask.move_files
|
33
|
-
new_folders = Dir[@newTask.directory_path + '*/'].map { |a| File.basename(a) }
|
34
|
-
new_folders.should eq ["2011-02-04", "2011-02-21", "2011-03-19", "testfolder"]
|
35
|
-
end
|
36
|
-
|
37
|
-
it "should delete old folders that are now dates" do
|
38
|
-
@newTask.delete_non_date_folders
|
39
|
-
new_folders = Dir[@newTask.directory_path + '*/'].map { |a| File.basename(a) }
|
40
|
-
new_folders.should eq ["2011-02-04", "2011-02-21", "2011-03-19"]
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|