roopap 0.0.2 → 0.0.3

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: d7d417193b5eacb7b84b4939e06f2d49d1b3a7cc
4
- data.tar.gz: 9341510c5db4f4b29e42889339f46bb0e8a4eaa2
3
+ metadata.gz: 4e2206ba4cf87b2886bced9a3908d4ed3f508dca
4
+ data.tar.gz: 398a643e62e33c25ae2b2b042f79d4984481696b
5
5
  SHA512:
6
- metadata.gz: 92cc7f08b0b97a60cb905b31a76c855ba2e1531e07508348d288485a4d36c96240966498f4f97b544f3dd463589ed0b24dbc7a704896ecdc1fa6709bd0bddb0d
7
- data.tar.gz: b259b600db393c5b28ffb083d632be0f5612a5e9529838b92c374ebdf9c1d5bbd49a8ae5570c3f3ea42299ba57c96e3891eac8bd23e6b722f752ad9f93f17b69
6
+ metadata.gz: d0a3cb521a0c8a110f7ff21cec93a11deb6c3da8376983d9e25de89e85f3b6fcf8f4e1347cc9baef31f780589fe047d04fc564b17c3383ed73edfffcf8193eee
7
+ data.tar.gz: 53b5413d4ef439c899bd56f0edcfd14029edb8c17b236cb74807cee3c15f71e086a1cb52fc0149f335bd1c1788c1d9fcb05d453b59835b6583d8aa2226847ab0
@@ -2,6 +2,10 @@ require 'exifr'
2
2
 
3
3
  module Roopap
4
4
  class Organizer
5
+ def initialize
6
+ @count = 0
7
+ end
8
+
5
9
  def perform(source, dest)
6
10
  Pathname.new(source).each_child do |c|
7
11
  src_file_path = c.to_s
@@ -9,9 +13,14 @@ module Roopap
9
13
  target_path = dest_for(src_file_path, dest)
10
14
  prepare_dir(target_path)
11
15
  copy(src_file_path, target_path)
16
+ inc_success_number
12
17
  end
13
18
  end
14
19
 
20
+ def organized_file_count
21
+ @count
22
+ end
23
+
15
24
  private
16
25
  def jpg_file?(path)
17
26
  begin
@@ -35,5 +44,9 @@ module Roopap
35
44
  def copy(filepath, dest)
36
45
  FileUtils.cp(filepath, dest)
37
46
  end
47
+
48
+ def inc_success_number
49
+ @count = @count + 1
50
+ end
38
51
  end
39
52
  end
@@ -0,0 +1,11 @@
1
+ module Roopap
2
+ class OutputText
3
+ def initialize(out)
4
+ @out = out
5
+ end
6
+ def finish(number_of_organized_files)
7
+ @out.puts "Successfully organized. #{number_of_organized_files} files is copied."
8
+ @out.flush
9
+ end
10
+ end
11
+ end
@@ -1,3 +1,3 @@
1
1
  module Roopap
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/roopap.rb CHANGED
@@ -1,9 +1,12 @@
1
1
  require "roopap/version"
2
2
  require "roopap/organizer"
3
+ require "roopap/output_text"
3
4
 
4
5
  module Roopap
5
6
  def self.process(args)
6
7
  source, dest = *args
7
- Organizer.new.perform(source, dest)
8
+ organizer = Organizer.new
9
+ organizer.perform(source, dest)
10
+ OutputText.new($stdout).finish(organizer.organized_file_count)
8
11
  end
9
12
  end
data/roopap.gemspec CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
19
19
 
20
20
  spec.add_development_dependency "bundler", "~> 1.3"
21
21
  spec.add_development_dependency "rake"
22
+ spec.add_development_dependency "pry"
22
23
 
23
24
  spec.add_dependency "exifr"
24
25
  end
@@ -23,4 +23,12 @@ describe "Calling Roopap via shell command" do
23
23
  assert FileTest.exists?("#{target}/2011-04/b.jpg"), "No file in the target directory"
24
24
  end
25
25
 
26
+ it "displays number of copied files" do
27
+ from = 'spec/fixtures/1'
28
+ target = output_dir
29
+
30
+ text = `bin/roopap #{from} #{target}`
31
+
32
+ assert_match(/2 files/, text, "Not print number of organized files")
33
+ end
26
34
  end
@@ -33,5 +33,16 @@ module Roopap
33
33
 
34
34
  assert FileTest.exists?("#{target}/2006-01/a.jpg"), "No file in the target directory"
35
35
  end
36
+
37
+ it "returns number of organized files" do
38
+ source = 'spec/fixtures/1'
39
+ target = output_dir
40
+
41
+ o = Organizer.new
42
+ o.perform(source, target)
43
+ out = o.organized_file_count
44
+
45
+ assert_equal out, 2, "Number of organized files"
46
+ end
36
47
  end
37
48
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: roopap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nuttanart Pornprasitsakul
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: pry
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: exifr
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -72,6 +86,7 @@ files:
72
86
  - bin/roopap
73
87
  - lib/roopap.rb
74
88
  - lib/roopap/organizer.rb
89
+ - lib/roopap/output_text.rb
75
90
  - lib/roopap/version.rb
76
91
  - roopap.gemspec
77
92
  - spec/fixtures/1/a.jpg