archiver 1.0.0 → 1.0.1

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/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: