archiver 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -6,7 +6,7 @@ gem 'exifr', '~> 1.1.2'
6
6
  gem 'progressbar', '~> 0.10.0'
7
7
 
8
8
  group :development do
9
- gem 'redcarpet', '~> 2.1.0'
9
+ gem 'whitespace', '~> 2.0.4'
10
10
  gem 'yard', '~> 0.7.5'
11
11
  gem 'jeweler', '~> 1.8.3'
12
12
  end
data/archiver.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "archiver"
8
- s.version = "1.0.0"
8
+ s.version = "1.0.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Thomas Boerger"]
@@ -42,20 +42,20 @@ Gem::Specification.new do |s|
42
42
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
43
43
  s.add_runtime_dependency(%q<exifr>, ["~> 1.1.2"])
44
44
  s.add_runtime_dependency(%q<progressbar>, ["~> 0.10.0"])
45
- s.add_development_dependency(%q<redcarpet>, ["~> 2.1.0"])
45
+ s.add_development_dependency(%q<whitespace>, ["~> 2.0.4"])
46
46
  s.add_development_dependency(%q<yard>, ["~> 0.7.5"])
47
47
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
48
48
  else
49
49
  s.add_dependency(%q<exifr>, ["~> 1.1.2"])
50
50
  s.add_dependency(%q<progressbar>, ["~> 0.10.0"])
51
- s.add_dependency(%q<redcarpet>, ["~> 2.1.0"])
51
+ s.add_dependency(%q<whitespace>, ["~> 2.0.4"])
52
52
  s.add_dependency(%q<yard>, ["~> 0.7.5"])
53
53
  s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
54
54
  end
55
55
  else
56
56
  s.add_dependency(%q<exifr>, ["~> 1.1.2"])
57
57
  s.add_dependency(%q<progressbar>, ["~> 0.10.0"])
58
- s.add_dependency(%q<redcarpet>, ["~> 2.1.0"])
58
+ s.add_dependency(%q<whitespace>, ["~> 2.0.4"])
59
59
  s.add_dependency(%q<yard>, ["~> 0.7.5"])
60
60
  s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
61
61
  end
data/bin/archiver CHANGED
@@ -6,8 +6,6 @@
6
6
  require 'rubygems'
7
7
  require 'bundler'
8
8
 
9
- Bundler.setup(:default)
10
-
11
9
  $:.push File.expand_path('../../lib', __FILE__)
12
10
  require 'archiver'
13
11
 
data/lib/archiver/cli.rb CHANGED
@@ -12,78 +12,95 @@ module Archiver
12
12
  attr_accessor :stderr
13
13
  attr_accessor :config
14
14
  attr_accessor :parser
15
-
15
+
16
16
  def initialize(argv, stdout, stderr)
17
17
  @stdout = stdout
18
18
  @stderr = stderr
19
-
19
+
20
20
  @config = {
21
- :verbose => false
21
+ :verbose => false,
22
+ :from => false,
23
+ :into => false
22
24
  }
23
-
25
+
24
26
  @parser = OptionParser.new do |opt|
25
- opt.banner = "Usage: archiver [options] <fromdir> <intodir>"
27
+ opt.banner = "Usage: archiver [options]"
28
+
29
+ opt.separator ""
30
+ opt.separator "Mandatory options:"
31
+
32
+ opt.on("-f", "--from DIR", "From directory name") do |dir|
33
+ @config[:from] = dir
34
+ end
35
+
36
+ opt.on("-i", "--into DIR", "Into directory name") do |dir|
37
+ @config[:into] = dir
38
+ end
39
+
40
+ opt.separator ""
41
+ opt.separator "Optional options:"
26
42
 
27
43
  opt.on("-V", "--verbose", "Verbose output format") do
28
44
  @config[:verbose] = true
29
45
  end
30
46
 
31
47
  opt.on("-h", "--help", "Show this help message") do
32
- puts @parser
48
+ stdout.puts @parser
33
49
  exit 0
34
50
  end
35
-
51
+
36
52
  opt.on("-v", "--version", "Show current version") do
37
- puts "archiver v#{Version::STRING}"
53
+ stdout.puts "archiver v#{Version::STRING}"
38
54
  exit 0
39
55
  end
40
56
  end
41
57
 
42
- unless argv.size == 2
58
+ @parser.parse!
59
+
60
+ unless @config[:from] or @config[:into]
43
61
  puts @parser
44
62
  exit 1
45
63
  end
46
-
47
- @config[:fromdir] = argv.shift
48
- @config[:intodir] = argv.shift
49
64
 
50
- @parser.parse!
51
-
52
65
  checks
53
66
  process
54
67
  end
55
-
68
+
56
69
  def checks
57
- unless File.directory? config[:fromdir]
58
- error "Fromdir does not exist"
70
+ unless File.directory? config[:from]
71
+ error "Fromdir #{config[:from]} does not exist"
59
72
  end
60
73
 
61
- unless File.directory? config[:intodir]
62
- error "Intodir does not exist"
74
+ unless File.directory? config[:into]
75
+ error "Intodir #{config[:into]} does not exist"
63
76
  end
64
77
 
65
- config[:fromdir_real] = File.realpath config[:fromdir]
66
- config[:intodir_real] = File.realpath config[:intodir]
78
+ config[:fromdir] = File.realpath config[:from]
79
+ config[:intodir] = File.realpath config[:into]
67
80
  end
68
-
81
+
69
82
  def process
70
83
  unless config[:verbose]
71
- progress = ProgressBar.new('Archiver', records.count)
84
+ progress = ProgressBar.new("Archiver", records.count, stdout)
72
85
  end
73
-
86
+
74
87
  records.each do |record|
75
88
  next unless record.process?
76
- record.move config[:intodir_real]
77
89
 
78
90
  if config[:verbose]
79
- puts "#{record.path} -> #{record.filename}"
91
+ from = record.path.gsub(/^#{config[:fromdir]}\//, "")
92
+ into = File.join(record.segment, record.filename)
93
+
94
+ stdout.puts "#{from} -> #{into}"
80
95
  else
81
96
  progress.inc
82
97
  end
98
+
99
+ record.move config[:intodir]
83
100
  end
84
-
101
+
85
102
  if config[:verbose]
86
- puts "Processed #{records.count} records!"
103
+ stdout.puts "Processed #{records.count} records!"
87
104
  else
88
105
  progress.finish
89
106
  end
@@ -95,18 +112,18 @@ module Archiver
95
112
  def records
96
113
  @records ||= begin
97
114
  rows = []
98
- Dir.glob(File.join(config[:fromdir_real], '**', '*')).each do |row|
115
+ Dir.glob(File.join(config[:fromdir], "**", "*")).each do |row|
99
116
  next if File.directory? row
100
117
  rows << Record.new(row)
101
118
  end
102
-
119
+
103
120
  rows
104
121
  end
105
122
  end
106
-
123
+
107
124
  def error(message)
108
- puts "Error: #{message}"
109
- puts @parser
125
+ stderr.puts "Error: #{message}"
126
+ stderr.puts @parser
110
127
  exit 1
111
128
  end
112
129
  end
@@ -45,6 +45,10 @@ module Archiver
45
45
  return '.mp4'
46
46
  end
47
47
 
48
+ if mime_type.match /^video\/quicktime$/i
49
+ return '.mov'
50
+ end
51
+
48
52
  File.extname(path).downcase
49
53
  end
50
54
 
@@ -76,11 +80,19 @@ module Archiver
76
80
  end
77
81
 
78
82
  def image?
79
- !!(mime_type.match /^image\/.*/i)
83
+ if mime_type.match /^image\/.*/i
84
+ true
85
+ else
86
+ false
87
+ end
80
88
  end
81
89
 
82
90
  def video?
83
- !!(mime_type.match /^video\/.*/i)
91
+ if mime_type.match /^video\/.*/i
92
+ true
93
+ else
94
+ false
95
+ end
84
96
  end
85
97
 
86
98
  def same?(other)
@@ -90,7 +102,7 @@ module Archiver
90
102
  checksum == Digest::MD5.hexdigest(File.read(other))
91
103
  end
92
104
  end
93
-
105
+
94
106
  def move(directory, counter = 0)
95
107
  destination = File.join(directory, segment, filename(counter))
96
108
 
@@ -131,4 +143,4 @@ module Archiver
131
143
  nil
132
144
  end
133
145
  end
134
- end
146
+ end
@@ -7,7 +7,7 @@ module Archiver
7
7
  module Version
8
8
  MAJOR = 1
9
9
  MINOR = 0
10
- PATCH = 0
10
+ PATCH = 1
11
11
  BUILD = nil
12
12
 
13
13
  STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: archiver
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -44,13 +44,13 @@ dependencies:
44
44
  - !ruby/object:Gem::Version
45
45
  version: 0.10.0
46
46
  - !ruby/object:Gem::Dependency
47
- name: redcarpet
47
+ name: whitespace
48
48
  requirement: !ruby/object:Gem::Requirement
49
49
  none: false
50
50
  requirements:
51
51
  - - ~>
52
52
  - !ruby/object:Gem::Version
53
- version: 2.1.0
53
+ version: 2.0.4
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
@@ -58,7 +58,7 @@ dependencies:
58
58
  requirements:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
- version: 2.1.0
61
+ version: 2.0.4
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: yard
64
64
  requirement: !ruby/object:Gem::Requirement
@@ -128,7 +128,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
128
128
  version: '0'
129
129
  segments:
130
130
  - 0
131
- hash: 3630215323667943547
131
+ hash: -4308012420230902379
132
132
  required_rubygems_version: !ruby/object:Gem::Requirement
133
133
  none: false
134
134
  requirements: