roopap 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d6ac579de7168a9d5246e411bd15fb26e61e5a72
4
- data.tar.gz: 2b1ac479d21076e58815abbcc898adee79ba246a
3
+ metadata.gz: 89351518736a65641e7e7183848e0627c5658d5f
4
+ data.tar.gz: 96f1c05f4f3636e17297c13437264c2035690a04
5
5
  SHA512:
6
- metadata.gz: a83dc9d84382eeced69a946b83ec7963a69a044767b167e5132c4bfc1ab0eacab33693b1c933d5a2ea15a58dbf875ff353f938d69ea4c2ebdd93b6a126a21848
7
- data.tar.gz: 716f0e16532acaeaa7e725be30da85e56f697ed5d35ed8063fcb4d7dd5d583df6ecd0680edf97f98bb6b97d15482a45c6320749325e388b0189453d825d58d8a
6
+ metadata.gz: 7a1fdfbb244964b1b9c72d7bc87701daa1c22eef9005ed8c144fb1d2352864e022e97ee52c029f5d1aac2d4e1746a5af4ec7ee8aa50c97d68fee25c3e7af377f
7
+ data.tar.gz: bb2b5da421a751c12355c21bb383eb45e768e3b32a447bec29e36067f46c0ac1b21c608f6f3f04638a249a1c836dbdb1319ec511e6f82257e11d513050917b83
@@ -1,4 +1,6 @@
1
1
  require 'exifr'
2
+ require 'pathname'
3
+ require 'time'
2
4
 
3
5
  module Roopap
4
6
  class Organizer
@@ -33,14 +35,20 @@ module Roopap
33
35
 
34
36
  def dest_for(filepath, root)
35
37
  photo = EXIFR::JPEG.new(filepath)
36
- time = photo.date_time_original
37
- time = photo.date_time if (time.nil? || time == '')
38
+ time = get_time(photo)
38
39
  dir_name = time.utc.strftime('%Y-%m')
39
40
  File.join(root, dir_name)
40
41
  end
41
42
 
43
+ def get_time(photo)
44
+ time = photo.date_time_original
45
+ time = photo.date_time if (time.nil? || time == '')
46
+ time = Time.parse(time) if time.instance_of?(String)
47
+ time
48
+ end
49
+
42
50
  def prepare_dir(path)
43
- FileUtils.mkdir(path)
51
+ FileUtils.mkdir_p(path)
44
52
  end
45
53
 
46
54
  def copy(filepath, dest)
@@ -1,3 +1,3 @@
1
1
  module Roopap
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -1,3 +1,4 @@
1
+ require 'ostruct'
1
2
  require 'minitest/autorun'
2
3
  require 'fileutils'
3
4
  require 'roopap/organizer'
@@ -10,7 +11,7 @@ module Roopap
10
11
  FileUtils.mkdir_p(output_dir)
11
12
  end
12
13
 
13
- after do
14
+ after do
14
15
  FileUtils.rm_r(output_dir)
15
16
  end
16
17
 
@@ -44,5 +45,17 @@ module Roopap
44
45
 
45
46
  assert_equal out, 2, "Number of organized files"
46
47
  end
48
+
49
+ it "works with date_time in String format" do
50
+ source = 'spec/fixtures/1'
51
+ target = output_dir
52
+ o = Organizer.new
53
+
54
+ EXIFR::JPEG.stub :new, OpenStruct.new(date_time_original: '16 Feb 2011 20:35:30') do
55
+ o.perform(source, target)
56
+ end
57
+
58
+ assert FileTest.exists?("#{target}/2011-02/a.jpg"), "No file in the target directory"
59
+ end
47
60
  end
48
61
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: roopap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nuttanart Pornprasitsakul
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-26 00:00:00.000000000 Z
11
+ date: 2013-09-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler