fileorganizer 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|