img-sort 0.1.3 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. data/Gemfile +2 -3
  2. data/Gemfile.lock +10 -8
  3. data/VERSION +1 -1
  4. data/img-sort.gemspec +18 -25
  5. data/lib/img-sort.rb +35 -8
  6. metadata +82 -74
data/Gemfile CHANGED
@@ -8,7 +8,6 @@ source "http://rubygems.org"
8
8
  gem 'rmagick'
9
9
  group :development do
10
10
  gem "rspec", "~> 2.3.0"
11
- gem "bundler", "~> 1.0.0"
12
- gem "jeweler", "~> 1.5.2"
13
- gem "rcov", ">= 0"
11
+ gem "bundler"
12
+ gem "jeweler"
14
13
  end
@@ -1,14 +1,17 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- diff-lcs (1.1.2)
4
+ diff-lcs (1.1.3)
5
5
  git (1.2.5)
6
- jeweler (1.5.2)
7
- bundler (~> 1.0.0)
6
+ jeweler (1.8.4)
7
+ bundler (~> 1.0)
8
8
  git (>= 1.2.5)
9
9
  rake
10
- rake (0.8.7)
11
- rcov (0.9.9)
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 (~> 1.0.0)
27
- jeweler (~> 1.5.2)
28
- rcov
29
+ bundler
30
+ jeweler
29
31
  rmagick
30
32
  rspec (~> 2.3.0)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.3
1
+ 0.2.0
@@ -4,15 +4,15 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{img-sort}
8
- s.version = "0.1.3"
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 = [%q{Andrey Cherkashin}]
12
- s.date = %q{2011-07-28}
13
- s.description = %q{Sort images by their resolution and rename it if needed}
14
- s.email = %q{with.out@me.com}
15
- s.executables = [%q{img-sort}]
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 = %q{http://github.com/andoriyu/img-sort}
36
- s.licenses = [%q{MIT}]
37
- s.require_paths = [%q{lib}]
38
- s.rubygems_version = %q{1.8.3}
39
- s.summary = %q{Image sorter}
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>, ["~> 1.0.0"])
52
- s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
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>, ["~> 1.0.0"])
59
- s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
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>, ["~> 1.0.0"])
67
- s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
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
@@ -9,7 +9,7 @@ require 'rmagick'
9
9
  class ImgSort
10
10
  attr_reader :options
11
11
 
12
- VERSION="0.1.3"
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
- date: 2011-07-28 00:00:00 Z
14
- dependencies:
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: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
18
17
  none: false
19
- requirements:
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
23
22
  type: :runtime
24
23
  prerelease: false
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
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: &id002 !ruby/object:Gem::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: *id002
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: 1.0.0
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: *id003
48
- - !ruby/object:Gem::Dependency
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: &id004 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
51
65
  none: false
52
- requirements:
53
- - - ~>
54
- - !ruby/object:Gem::Version
55
- version: 1.5.2
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
56
70
  type: :development
57
71
  prerelease: false
58
- version_requirements: *id004
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: "0"
67
- type: :development
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: &id006 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
73
81
  none: false
74
- requirements:
75
- - - ">="
76
- - !ruby/object:Gem::Version
77
- version: "0"
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
78
86
  type: :runtime
79
87
  prerelease: false
80
- version_requirements: *id006
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
- hash: 4211080693637194583
118
- segments:
125
+ requirements:
126
+ - - ! '>='
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
129
+ segments:
119
130
  - 0
120
- version: "0"
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: "0"
134
+ requirements:
135
+ - - ! '>='
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
127
138
  requirements: []
128
-
129
139
  rubyforge_project:
130
- rubygems_version: 1.8.3
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: []