gnawrnip 0.2.0 → 0.2.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/lib/gnawrnip/screenshot.rb +3 -4
- data/lib/gnawrnip/version.rb +1 -1
- data/spec/gnawrnip/screenshot_spec.rb +70 -24
- metadata +4 -4
data/lib/gnawrnip/screenshot.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'tempfile'
|
2
2
|
require 'time'
|
3
3
|
require 'capybara'
|
4
|
+
require 'oily_png'
|
4
5
|
|
5
6
|
module Gnawrnip
|
6
7
|
class Screenshot
|
@@ -51,8 +52,6 @@ module Gnawrnip
|
|
51
52
|
end
|
52
53
|
|
53
54
|
def resize(path)
|
54
|
-
require 'oily_png'
|
55
|
-
|
56
55
|
image = OilyPNG::Canvas.from_file(path)
|
57
56
|
new_width, new_height = calculate_new_size(image.width, image.height)
|
58
57
|
|
@@ -67,12 +66,12 @@ module Gnawrnip
|
|
67
66
|
# @return [Array] New width and height size. [width, height]
|
68
67
|
#
|
69
68
|
def calculate_new_size(width, height)
|
70
|
-
ratio = width / height
|
69
|
+
ratio = width.to_f / height.to_f
|
71
70
|
target = Gnawrnip.max_frame_size
|
72
71
|
|
73
72
|
return [width, height] if target > [width, height].max
|
74
73
|
|
75
|
-
if ratio <
|
74
|
+
if ratio < 1
|
76
75
|
new_width = target * ratio
|
77
76
|
new_height = target
|
78
77
|
else
|
data/lib/gnawrnip/version.rb
CHANGED
@@ -3,29 +3,8 @@ require 'gnawrnip/screenshot'
|
|
3
3
|
|
4
4
|
module Gnawrnip
|
5
5
|
describe Screenshot do
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
context 'No given max frame size' do
|
10
|
-
before do
|
11
|
-
Screenshot.stub(:need_resize?) { false }
|
12
|
-
Screenshot.should_not_receive(:resize)
|
13
|
-
end
|
14
|
-
|
15
|
-
# see GnawrnipTestSession::save_screenshot
|
16
|
-
it { should == "screenshot" }
|
17
|
-
end
|
18
|
-
|
19
|
-
context 'No given max frame size' do
|
20
|
-
before do
|
21
|
-
Screenshot.stub(:need_resize?) { true }
|
22
|
-
Screenshot.should_receive(:resize)
|
23
|
-
end
|
24
|
-
|
25
|
-
it { should == "screenshot" }
|
26
|
-
end
|
27
|
-
|
28
|
-
context 'not support save_screenshot' do
|
6
|
+
context 'Not support save_screenshot' do
|
7
|
+
describe '.tale' do
|
29
8
|
before do
|
30
9
|
GnawrnipTest::Session.any_instance.stub(:save_screenshot) do
|
31
10
|
raise Capybara::NotSupportedByDriverError
|
@@ -35,8 +14,10 @@ module Gnawrnip
|
|
35
14
|
subject { lambda { Screenshot.take } }
|
36
15
|
it { should raise_error Capybara::NotSupportedByDriverError }
|
37
16
|
end
|
17
|
+
end
|
38
18
|
|
39
|
-
|
19
|
+
context 'raise unknown error' do
|
20
|
+
describe '.take' do
|
40
21
|
before do
|
41
22
|
GnawrnipTest::Session.any_instance.stub(:save_screenshot) do
|
42
23
|
raise Timeout::Error
|
@@ -61,5 +42,70 @@ module Gnawrnip
|
|
61
42
|
end
|
62
43
|
end
|
63
44
|
end
|
45
|
+
|
46
|
+
context 'No given Gnawrnip.max_frame_size' do
|
47
|
+
describe '.take' do
|
48
|
+
subject { Screenshot.take.read }
|
49
|
+
|
50
|
+
context 'No given max frame size' do
|
51
|
+
before do
|
52
|
+
Gnawrnip.max_frame_size = nil
|
53
|
+
Screenshot.should_not_receive(:resize)
|
54
|
+
end
|
55
|
+
|
56
|
+
it { should == "screenshot" }
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
context 'Given Gnawrnip.max_frame_size' do
|
62
|
+
before do
|
63
|
+
OilyPNG::Canvas.stub(:from_file) { oily_png }
|
64
|
+
end
|
65
|
+
|
66
|
+
subject { Screenshot.take.read }
|
67
|
+
|
68
|
+
context 'width larger than height.' do
|
69
|
+
let(:oily_png) do
|
70
|
+
oily_png = double('oily_png', width: 640, height: 480, save: nil)
|
71
|
+
oily_png.should_receive(:resample_bilinear!).with(300, 225)
|
72
|
+
oily_png
|
73
|
+
end
|
74
|
+
|
75
|
+
before do
|
76
|
+
Gnawrnip.max_frame_size = 300
|
77
|
+
end
|
78
|
+
|
79
|
+
it { should == "screenshot" }
|
80
|
+
end
|
81
|
+
|
82
|
+
context 'height larger than width.' do
|
83
|
+
let(:oily_png) do
|
84
|
+
oily_png = double('oily_png', width: 480, height: 640, save: nil)
|
85
|
+
oily_png.should_receive(:resample_bilinear!).with(300, 400)
|
86
|
+
oily_png
|
87
|
+
end
|
88
|
+
|
89
|
+
before do
|
90
|
+
Gnawrnip.max_frame_size = 400
|
91
|
+
end
|
92
|
+
|
93
|
+
it { should == "screenshot" }
|
94
|
+
end
|
95
|
+
|
96
|
+
context 'Given max_frame_size larger than original.' do
|
97
|
+
let(:oily_png) do
|
98
|
+
oily_png = double('oily_png', width: 640, height: 480, save: nil)
|
99
|
+
oily_png.should_receive(:resample_bilinear!).with(640, 480)
|
100
|
+
oily_png
|
101
|
+
end
|
102
|
+
|
103
|
+
before do
|
104
|
+
Gnawrnip.max_frame_size = 1024
|
105
|
+
end
|
106
|
+
|
107
|
+
it { should == "screenshot" }
|
108
|
+
end
|
109
|
+
end
|
64
110
|
end
|
65
111
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gnawrnip
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-11-
|
12
|
+
date: 2013-11-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: capybara
|
@@ -173,7 +173,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
173
173
|
version: '0'
|
174
174
|
segments:
|
175
175
|
- 0
|
176
|
-
hash:
|
176
|
+
hash: 3462601225133787516
|
177
177
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
178
178
|
none: false
|
179
179
|
requirements:
|
@@ -182,7 +182,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
182
182
|
version: '0'
|
183
183
|
segments:
|
184
184
|
- 0
|
185
|
-
hash:
|
185
|
+
hash: 3462601225133787516
|
186
186
|
requirements: []
|
187
187
|
rubyforge_project:
|
188
188
|
rubygems_version: 1.8.23
|