fileorganizer 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/organize.rb +9 -10
  2. metadata +1 -2
  3. data/lib/organize_spec.rb +0 -43
@@ -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 File.exist?(directory_path + file_date + filename[-4,4])
30
- File.rename(filename, directory_path + file_date + '_' + int.to_s + filename[-4,4])
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
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
@@ -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