img-sort 0.1.3 → 0.2.0
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 +2 -3
- data/Gemfile.lock +10 -8
- data/VERSION +1 -1
- data/img-sort.gemspec +18 -25
- data/lib/img-sort.rb +35 -8
- metadata +82 -74
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,14 +1,17 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
diff-lcs (1.1.
|
4
|
+
diff-lcs (1.1.3)
|
5
5
|
git (1.2.5)
|
6
|
-
jeweler (1.
|
7
|
-
bundler (~> 1.0
|
6
|
+
jeweler (1.8.4)
|
7
|
+
bundler (~> 1.0)
|
8
8
|
git (>= 1.2.5)
|
9
9
|
rake
|
10
|
-
|
11
|
-
|
10
|
+
rdoc
|
11
|
+
json (1.7.3)
|
12
|
+
rake (0.9.2.2)
|
13
|
+
rdoc (3.12)
|
14
|
+
json (~> 1.4)
|
12
15
|
rmagick (2.13.1)
|
13
16
|
rspec (2.3.0)
|
14
17
|
rspec-core (~> 2.3.0)
|
@@ -23,8 +26,7 @@ PLATFORMS
|
|
23
26
|
ruby
|
24
27
|
|
25
28
|
DEPENDENCIES
|
26
|
-
bundler
|
27
|
-
jeweler
|
28
|
-
rcov
|
29
|
+
bundler
|
30
|
+
jeweler
|
29
31
|
rmagick
|
30
32
|
rspec (~> 2.3.0)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/img-sort.gemspec
CHANGED
@@ -4,15 +4,15 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.
|
7
|
+
s.name = "img-sort"
|
8
|
+
s.version = "0.2.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = [
|
12
|
-
s.date =
|
13
|
-
s.description =
|
14
|
-
s.email =
|
15
|
-
s.executables = [
|
11
|
+
s.authors = ["Andrey Cherkashin"]
|
12
|
+
s.date = "2012-07-24"
|
13
|
+
s.description = "Sort images by their resolution and rename it if needed"
|
14
|
+
s.email = "with.out@me.com"
|
15
|
+
s.executables = ["img-sort"]
|
16
16
|
s.extra_rdoc_files = [
|
17
17
|
"LICENSE.txt",
|
18
18
|
"README.rdoc"
|
@@ -32,15 +32,11 @@ Gem::Specification.new do |s|
|
|
32
32
|
"spec/img-sort_spec.rb",
|
33
33
|
"spec/spec_helper.rb"
|
34
34
|
]
|
35
|
-
s.homepage =
|
36
|
-
s.licenses = [
|
37
|
-
s.require_paths = [
|
38
|
-
s.rubygems_version =
|
39
|
-
s.summary =
|
40
|
-
s.test_files = [
|
41
|
-
"spec/img-sort_spec.rb",
|
42
|
-
"spec/spec_helper.rb"
|
43
|
-
]
|
35
|
+
s.homepage = "http://github.com/andoriyu/img-sort"
|
36
|
+
s.licenses = ["MIT"]
|
37
|
+
s.require_paths = ["lib"]
|
38
|
+
s.rubygems_version = "1.8.23"
|
39
|
+
s.summary = "Image sorter"
|
44
40
|
|
45
41
|
if s.respond_to? :specification_version then
|
46
42
|
s.specification_version = 3
|
@@ -48,24 +44,21 @@ Gem::Specification.new do |s|
|
|
48
44
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
49
45
|
s.add_runtime_dependency(%q<rmagick>, [">= 0"])
|
50
46
|
s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
|
51
|
-
s.add_development_dependency(%q<bundler>, ["
|
52
|
-
s.add_development_dependency(%q<jeweler>, ["
|
53
|
-
s.add_development_dependency(%q<rcov>, [">= 0"])
|
47
|
+
s.add_development_dependency(%q<bundler>, [">= 0"])
|
48
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
54
49
|
s.add_runtime_dependency(%q<rmagick>, [">= 0"])
|
55
50
|
else
|
56
51
|
s.add_dependency(%q<rmagick>, [">= 0"])
|
57
52
|
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
58
|
-
s.add_dependency(%q<bundler>, ["
|
59
|
-
s.add_dependency(%q<jeweler>, ["
|
60
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
53
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
54
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
61
55
|
s.add_dependency(%q<rmagick>, [">= 0"])
|
62
56
|
end
|
63
57
|
else
|
64
58
|
s.add_dependency(%q<rmagick>, [">= 0"])
|
65
59
|
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
66
|
-
s.add_dependency(%q<bundler>, ["
|
67
|
-
s.add_dependency(%q<jeweler>, ["
|
68
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
60
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
61
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
69
62
|
s.add_dependency(%q<rmagick>, [">= 0"])
|
70
63
|
end
|
71
64
|
end
|
data/lib/img-sort.rb
CHANGED
@@ -9,7 +9,7 @@ require 'rmagick'
|
|
9
9
|
class ImgSort
|
10
10
|
attr_reader :options
|
11
11
|
|
12
|
-
VERSION="0.
|
12
|
+
VERSION="0.2.0"
|
13
13
|
|
14
14
|
def initialize(arguments = {})
|
15
15
|
@arguments = arguments
|
@@ -19,6 +19,9 @@ class ImgSort
|
|
19
19
|
@options.quiet = false
|
20
20
|
@options.rename = true
|
21
21
|
@options.hash_function = 'md5'
|
22
|
+
|
23
|
+
@options.unsort = false
|
24
|
+
@options.copy = false
|
22
25
|
# Init options parser
|
23
26
|
@opt_parser = self.opts_parser
|
24
27
|
end
|
@@ -32,8 +35,7 @@ class ImgSort
|
|
32
35
|
puts "Start at #{@start_date}\n" if @options.verbose
|
33
36
|
|
34
37
|
output_options if @options.verbose
|
35
|
-
|
36
|
-
case sort!(@arguments[0], @arguments[1])
|
38
|
+
case set_path!(@arguments[0], @arguments[1])
|
37
39
|
when 1
|
38
40
|
puts "Source directory doesn't exists!"
|
39
41
|
exit 1
|
@@ -41,6 +43,7 @@ class ImgSort
|
|
41
43
|
puts "Source directory is empty!"
|
42
44
|
exit 2
|
43
45
|
end
|
46
|
+
unsort? ? unsort! : sort!
|
44
47
|
|
45
48
|
@end_date = Time.now
|
46
49
|
puts "Finished at #{@end_date}\n" if @options.verbose
|
@@ -57,15 +60,20 @@ class ImgSort
|
|
57
60
|
opts = OptionParser.new do |x|
|
58
61
|
x.banner= "img-sort [options] <source dir> <dst dir>"
|
59
62
|
x.on('-v', '--version', 'Show version') { output_version ; exit 0 }
|
60
|
-
x.on('-u', '--usage', 'Show usage') { puts @opt_parser; exit }
|
63
|
+
x.on('-u', '--usage', 'Show usage') { puts @opt_parser; exit 0 }
|
61
64
|
x.on('-V', '--verbose', 'Be verbose') { @options.verbose = true }
|
62
65
|
x.on('-q', '--quiet', 'Be quite') { @options.quiet = true }
|
63
66
|
x.on('-h', '--rename', 'Change file name to hash from that file (default)') {@options.rename = true}
|
64
|
-
x.on('-n', '--no-rename', 'Save original name') {@options.rename = false}
|
67
|
+
x.on('-n', '--no-rename', 'Save original name') {@options.rename = false}
|
68
|
+
x.on('-U', '--unsort', 'Oposite of sort') { @options.unsort = true}
|
69
|
+
x.on('-c', '--copy', 'Copy instead of link (default on sorting operation)') { @options.copy = true if unsort? }
|
65
70
|
end
|
66
71
|
return opts
|
67
72
|
|
68
73
|
end
|
74
|
+
def unsort?
|
75
|
+
@options.unsort
|
76
|
+
end
|
69
77
|
|
70
78
|
|
71
79
|
def parsed_options?
|
@@ -111,12 +119,32 @@ class ImgSort
|
|
111
119
|
def output_version
|
112
120
|
puts "#{File.basename(__FILE__)} version #{VERSION}"
|
113
121
|
end
|
114
|
-
|
115
|
-
def sort!(from, to)
|
122
|
+
def set_path!(from, to)
|
116
123
|
@from = File.expand_path(from)
|
117
124
|
@to = File.expand_path(to)
|
118
125
|
return 1 unless Dir.exists?(@from)
|
119
126
|
return 2 if Dir.entries(@from).count <= 2
|
127
|
+
end
|
128
|
+
def unsort!
|
129
|
+
@files = Dir.glob("#{@from}/**/*.{png,jpg,jpeg,gif,tiff,bmp}")
|
130
|
+
puts "Found #{@files.count} files" unless @options.quite
|
131
|
+
return 2 if @files.empty?
|
132
|
+
FileUtils.mkdir @to unless Dir.exists?(@to)
|
133
|
+
count = 0
|
134
|
+
@total = @files.length
|
135
|
+
@files.each do |file|
|
136
|
+
count += 1
|
137
|
+
if @options.copy
|
138
|
+
FileUtils.cp file, "#{@to}/#{File.basename(file)}", :force => true
|
139
|
+
puts file ' copied' if @options.verbose
|
140
|
+
else
|
141
|
+
FileUtils.ln file, "#{@to}/#{File.basename(file)}", :force => true
|
142
|
+
puts file + ' linked' if @options.verbose
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
def sort!
|
120
148
|
@files = Dir.glob("#{@from}/*.{png,jpg,jpeg,gif,tiff,bmp}")
|
121
149
|
puts "Found #{@files.count} files" unless @options.quite
|
122
150
|
return 2 if @files.empty?
|
@@ -143,6 +171,5 @@ class ImgSort
|
|
143
171
|
puts file + ' copied' if @options.verbose
|
144
172
|
end
|
145
173
|
end
|
146
|
-
|
147
174
|
end
|
148
175
|
|
metadata
CHANGED
@@ -1,93 +1,105 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: img-sort
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0
|
4
5
|
prerelease:
|
5
|
-
version: 0.1.3
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Andrey Cherkashin
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-07-24 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
16
15
|
name: rmagick
|
17
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
18
17
|
none: false
|
19
|
-
requirements:
|
20
|
-
- -
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version:
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
23
22
|
type: :runtime
|
24
23
|
prerelease: false
|
25
|
-
version_requirements:
|
26
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
27
31
|
name: rspec
|
28
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
29
33
|
none: false
|
30
|
-
requirements:
|
34
|
+
requirements:
|
31
35
|
- - ~>
|
32
|
-
- !ruby/object:Gem::Version
|
36
|
+
- !ruby/object:Gem::Version
|
33
37
|
version: 2.3.0
|
34
38
|
type: :development
|
35
39
|
prerelease: false
|
36
|
-
version_requirements:
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: bundler
|
39
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
41
|
none: false
|
41
|
-
requirements:
|
42
|
+
requirements:
|
42
43
|
- - ~>
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
version:
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 2.3.0
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: bundler
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
45
54
|
type: :development
|
46
55
|
prerelease: false
|
47
|
-
version_requirements:
|
48
|
-
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
49
63
|
name: jeweler
|
50
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
51
65
|
none: false
|
52
|
-
requirements:
|
53
|
-
- -
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version:
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
56
70
|
type: :development
|
57
71
|
prerelease: false
|
58
|
-
version_requirements:
|
59
|
-
- !ruby/object:Gem::Dependency
|
60
|
-
name: rcov
|
61
|
-
requirement: &id005 !ruby/object:Gem::Requirement
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
62
73
|
none: false
|
63
|
-
requirements:
|
64
|
-
- -
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
version:
|
67
|
-
|
68
|
-
prerelease: false
|
69
|
-
version_requirements: *id005
|
70
|
-
- !ruby/object:Gem::Dependency
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
- !ruby/object:Gem::Dependency
|
71
79
|
name: rmagick
|
72
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
73
81
|
none: false
|
74
|
-
requirements:
|
75
|
-
- -
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version:
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
78
86
|
type: :runtime
|
79
87
|
prerelease: false
|
80
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
81
94
|
description: Sort images by their resolution and rename it if needed
|
82
95
|
email: with.out@me.com
|
83
|
-
executables:
|
96
|
+
executables:
|
84
97
|
- img-sort
|
85
98
|
extensions: []
|
86
|
-
|
87
|
-
extra_rdoc_files:
|
99
|
+
extra_rdoc_files:
|
88
100
|
- LICENSE.txt
|
89
101
|
- README.rdoc
|
90
|
-
files:
|
102
|
+
files:
|
91
103
|
- .document
|
92
104
|
- .rspec
|
93
105
|
- Gemfile
|
@@ -102,35 +114,31 @@ files:
|
|
102
114
|
- spec/img-sort_spec.rb
|
103
115
|
- spec/spec_helper.rb
|
104
116
|
homepage: http://github.com/andoriyu/img-sort
|
105
|
-
licenses:
|
117
|
+
licenses:
|
106
118
|
- MIT
|
107
119
|
post_install_message:
|
108
120
|
rdoc_options: []
|
109
|
-
|
110
|
-
require_paths:
|
121
|
+
require_paths:
|
111
122
|
- lib
|
112
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
123
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
113
124
|
none: false
|
114
|
-
requirements:
|
115
|
-
- -
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
|
118
|
-
segments:
|
125
|
+
requirements:
|
126
|
+
- - ! '>='
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: '0'
|
129
|
+
segments:
|
119
130
|
- 0
|
120
|
-
|
121
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
|
+
hash: -4605182660146684131
|
132
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
122
133
|
none: false
|
123
|
-
requirements:
|
124
|
-
- -
|
125
|
-
- !ruby/object:Gem::Version
|
126
|
-
version:
|
134
|
+
requirements:
|
135
|
+
- - ! '>='
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0'
|
127
138
|
requirements: []
|
128
|
-
|
129
139
|
rubyforge_project:
|
130
|
-
rubygems_version: 1.8.
|
140
|
+
rubygems_version: 1.8.23
|
131
141
|
signing_key:
|
132
142
|
specification_version: 3
|
133
143
|
summary: Image sorter
|
134
|
-
test_files:
|
135
|
-
- spec/img-sort_spec.rb
|
136
|
-
- spec/spec_helper.rb
|
144
|
+
test_files: []
|