image_resizer 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.0
1
+ 0.5.0
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "image_resizer"
8
- s.version = "0.4.0"
8
+ s.version = "0.5.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Daniel Nelson"]
12
- s.date = "2013-02-15"
12
+ s.date = "2013-04-24"
13
13
  s.description = "Image resizing gem (requires ImageMagick)"
14
14
  s.email = "daniel@populr.me"
15
15
  s.extra_rdoc_files = [
@@ -33,6 +33,14 @@ module ImageResizer
33
33
  identify(temp_object)[:depth]
34
34
  end
35
35
 
36
+ def quality(temp_object)
37
+ if match = verbose_identify(temp_object).match(/^\s*Quality: (\d+)$/)
38
+ match[1].to_i
39
+ else
40
+ 0
41
+ end
42
+ end
43
+
36
44
  def number_of_colours(temp_object)
37
45
  details = raw_identify(temp_object, '-verbose -unique')
38
46
  details[/Colors: (\d+)/, 1].to_i
@@ -46,6 +46,10 @@ module ImageResizer
46
46
  }
47
47
  end
48
48
 
49
+ def verbose_identify(temp_object)
50
+ raw_identify(temp_object, '-verbose')
51
+ end
52
+
49
53
  def raw_identify(temp_object, args='')
50
54
  line = Cocaine::CommandLine.new(identify_command, "#{args} :input")
51
55
  line.run(:input => temp_object.path)
@@ -7,36 +7,67 @@ describe ImageResizer::Analyzer do
7
7
  @analyzer = ImageResizer::Analyzer.new
8
8
  end
9
9
 
10
- it "should return the width" do
11
- @analyzer.width(@image).should == 280
10
+ describe "#width" do
11
+ it "should return the width" do
12
+ @analyzer.width(@image).should == 280
13
+ end
12
14
  end
13
15
 
14
- it "should return the height" do
15
- @analyzer.height(@image).should == 355
16
+ describe "#height" do
17
+ it "should return the height" do
18
+ @analyzer.height(@image).should == 355
19
+ end
16
20
  end
17
21
 
18
- it "should return the aspect ratio" do
19
- @analyzer.aspect_ratio(@image).should == (280.0/355.0)
22
+ describe "#aspect_ratio" do
23
+ it "should return the aspect ratio" do
24
+ @analyzer.aspect_ratio(@image).should == (280.0/355.0)
25
+ end
20
26
  end
21
27
 
22
- it "should say if it's portrait" do
23
- @analyzer.portrait?(@image).should be_true
28
+ describe "#portrait?" do
29
+ it "should say if it's portrait" do
30
+ @analyzer.portrait?(@image).should be_true
31
+ end
24
32
  end
25
33
 
26
- it "should say if it's landscape" do
27
- @analyzer.landscape?(@image).should be_false
34
+ describe "#landscape?" do
35
+ it "should say if it's landscape" do
36
+ @analyzer.landscape?(@image).should be_false
37
+ end
28
38
  end
29
39
 
30
- it "should return the number of colours" do
31
- @analyzer.number_of_colours(@image).should == 34703
40
+ describe "#number_of_colours" do
41
+ it "should return the number of colours" do
42
+ @analyzer.number_of_colours(@image).should == 34703
43
+ end
32
44
  end
33
45
 
34
- it "should return the depth" do
35
- @analyzer.depth(@image).should == 8
46
+ describe "#depth" do
47
+ it "should return the depth" do
48
+ @analyzer.depth(@image).should == 8
49
+ end
36
50
  end
37
51
 
38
- it "should return the format" do
39
- @analyzer.format(@image).should == :png
52
+ describe "#quality" do
53
+ context "when the image is a jpeg" do
54
+ it "should return the depth" do
55
+ @image = ImageResizer::TempObject.new(SAMPLES_DIR.join('beach.jpg'))
56
+ @analyzer.quality(@image).should == 92
57
+ end
58
+ end
59
+
60
+ context "when the image is a png" do
61
+ it "should return 0" do
62
+ @analyzer.quality(@image).should == 0
63
+ end
64
+ end
65
+ end
66
+
67
+ describe "#format" do
68
+ it "should return the format" do
69
+ @analyzer.format(@image).should == :png
70
+ end
40
71
  end
41
72
 
42
73
  %w(width height aspect_ratio number_of_colours depth format portrait? landscape?).each do |meth|
@@ -50,13 +81,15 @@ describe ImageResizer::Analyzer do
50
81
  end
51
82
  end
52
83
 
53
- it "should say if it's an image" do
54
- @analyzer.image?(@image).should == true
55
- end
84
+ describe "#image?" do
85
+ it "should say if it's an image" do
86
+ @analyzer.image?(@image).should == true
87
+ end
56
88
 
57
- it "should say if it's not an image" do
58
- suppressing_stderr do
59
- @analyzer.image?(ImageResizer::TempObject.new('blah')).should == false
89
+ it "should say if it's not an image" do
90
+ suppressing_stderr do
91
+ @analyzer.image?(ImageResizer::TempObject.new('blah')).should == false
92
+ end
60
93
  end
61
94
  end
62
95
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: image_resizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-15 00:00:00.000000000 Z
12
+ date: 2013-04-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: cocaine
16
- requirement: &2153569580 !ruby/object:Gem::Requirement
16
+ requirement: &2168652700 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2153569580
24
+ version_requirements: *2168652700
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &2153568720 !ruby/object:Gem::Requirement
27
+ requirement: &2168651800 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *2153568720
35
+ version_requirements: *2168651800
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: jeweler
38
- requirement: &2153567680 !ruby/object:Gem::Requirement
38
+ requirement: &2168650660 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *2153567680
46
+ version_requirements: *2168650660
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: pry
49
- requirement: &2153566740 !ruby/object:Gem::Requirement
49
+ requirement: &2168649660 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *2153566740
57
+ version_requirements: *2168649660
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: pry-nav
60
- requirement: &2153565860 !ruby/object:Gem::Requirement
60
+ requirement: &2168648620 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *2153565860
68
+ version_requirements: *2168648620
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: pry-stack_explorer
71
- requirement: &2153563600 !ruby/object:Gem::Requirement
71
+ requirement: &2168646840 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *2153563600
79
+ version_requirements: *2168646840
80
80
  description: Image resizing gem (requires ImageMagick)
81
81
  email: daniel@populr.me
82
82
  executables: []
@@ -140,7 +140,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
140
140
  version: '0'
141
141
  segments:
142
142
  - 0
143
- hash: -2071369988750528339
143
+ hash: 3811843699697118744
144
144
  required_rubygems_version: !ruby/object:Gem::Requirement
145
145
  none: false
146
146
  requirements: