url2png 0.3.4 → 0.3.5
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 -6
- data/Gemfile.lock +10 -11
- data/VERSION +1 -1
- data/lib/url2png/helpers/common.rb +47 -49
- data/spec/helpers/common_spec.rb +56 -0
- data/spec/spec_helper.rb +4 -2
- data/url2png.gemspec +6 -9
- metadata +6 -22
- data/spec/helpers/common_rspec.rb +0 -38
data/Gemfile
CHANGED
@@ -1,13 +1,9 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
|
-
# Add dependencies required to use your gem here.
|
3
|
-
# Example:
|
4
|
-
# gem "activesupport", ">= 2.3.5"
|
5
2
|
|
6
3
|
# Add dependencies to develop your gem here.
|
7
4
|
# Include everything needed to run rake, tests, features, etc.
|
8
5
|
group :development do
|
9
|
-
gem "rspec", "~> 2.
|
10
|
-
gem "bundler", "~> 1.1.3"
|
6
|
+
gem "rspec", "~> 2.11.0"
|
11
7
|
gem "jeweler", "~> 1.8.3"
|
12
8
|
gem "rcov", ">= 0"
|
13
|
-
end
|
9
|
+
end
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
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
6
|
jeweler (1.8.3)
|
7
7
|
bundler (~> 1.0)
|
@@ -9,20 +9,19 @@ GEM
|
|
9
9
|
rake
|
10
10
|
rake (0.9.2.2)
|
11
11
|
rcov (0.9.9)
|
12
|
-
rspec (2.
|
13
|
-
rspec-core (~> 2.
|
14
|
-
rspec-expectations (~> 2.
|
15
|
-
rspec-mocks (~> 2.
|
16
|
-
rspec-core (2.
|
17
|
-
rspec-expectations (2.
|
18
|
-
diff-lcs (~> 1.1.
|
19
|
-
rspec-mocks (2.
|
12
|
+
rspec (2.11.0)
|
13
|
+
rspec-core (~> 2.11.0)
|
14
|
+
rspec-expectations (~> 2.11.0)
|
15
|
+
rspec-mocks (~> 2.11.0)
|
16
|
+
rspec-core (2.11.1)
|
17
|
+
rspec-expectations (2.11.3)
|
18
|
+
diff-lcs (~> 1.1.3)
|
19
|
+
rspec-mocks (2.11.3)
|
20
20
|
|
21
21
|
PLATFORMS
|
22
22
|
ruby
|
23
23
|
|
24
24
|
DEPENDENCIES
|
25
|
-
bundler (~> 1.1.3)
|
26
25
|
jeweler (~> 1.8.3)
|
27
26
|
rcov
|
28
|
-
rspec (~> 2.
|
27
|
+
rspec (~> 2.11.0)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.5
|
@@ -2,18 +2,18 @@ module Url2png
|
|
2
2
|
module Helpers
|
3
3
|
module Common
|
4
4
|
extend self
|
5
|
-
|
5
|
+
|
6
6
|
# ------------------
|
7
7
|
# complete image tag
|
8
|
-
|
9
|
-
|
8
|
+
|
9
|
+
|
10
10
|
def url2png_image_tag url, options = {}
|
11
11
|
# parse size
|
12
12
|
dim = Url2png::Dimensions.parse(options)
|
13
|
-
|
13
|
+
|
14
14
|
# ensure image alt
|
15
15
|
alt = options.key?(:alt) ? options.delete(:alt) : url
|
16
|
-
|
16
|
+
|
17
17
|
# build image tag
|
18
18
|
img = '<img'
|
19
19
|
img << " src='#{ url2png_image_url(url, options) }'"
|
@@ -24,16 +24,16 @@ module Url2png
|
|
24
24
|
img << " #{ k }=#{ v }" unless v.nil? || v == ''
|
25
25
|
end
|
26
26
|
img << ' />'
|
27
|
-
img.html_safe
|
27
|
+
img.respond_to?(:html_safe) ? img.html_safe : img # Utilize ActiveSupport if loaded
|
28
28
|
end
|
29
|
-
|
30
|
-
|
29
|
+
|
30
|
+
|
31
31
|
# --------------------------
|
32
32
|
# only the url for the image
|
33
33
|
def url2png_image_url url, options = {}
|
34
34
|
# parse size
|
35
35
|
dim = Url2png::Dimensions.parse(options)
|
36
|
-
|
36
|
+
|
37
37
|
case Url2png.mode
|
38
38
|
when 'dummy'
|
39
39
|
'data:image/png;base64,
|
@@ -60,11 +60,11 @@ module Url2png
|
|
60
60
|
ICAgICAgICAgICAgPHJkZjpCYWcvPgogICAgICAgICA8L2RjOnN1YmplY3Q+CiAgICAgIDwvcmRm
|
61
61
|
OkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgrlPw1BAAAAFElEQVQIHWM8
|
62
62
|
fPjwfwYgYAIRIAAAMrgDTJyW2igAAAAASUVORK5CYII='.gsub(/\n/,'')
|
63
|
-
|
63
|
+
|
64
64
|
when 'placehold'
|
65
65
|
"http://placehold.it/#{ dim[:size] }"
|
66
|
-
|
67
|
-
else
|
66
|
+
|
67
|
+
else
|
68
68
|
# build parameters portion of URL
|
69
69
|
case Url2png.api_version
|
70
70
|
when 'v6'
|
@@ -72,11 +72,11 @@ module Url2png
|
|
72
72
|
# v6 #
|
73
73
|
# http://api.url2png.com/v6/<APIKEY>/<TOKEN>/png/?url=google.com
|
74
74
|
######
|
75
|
-
|
75
|
+
|
76
76
|
# check for unavailable options
|
77
77
|
options_alias = [:max_width, :max_height]
|
78
|
-
options_available = [:delay, :force, :fullpage, :thumbnail_max_width, :thumbnail_max_height, :viewport]
|
79
|
-
|
78
|
+
options_available = [:delay, :force, :fullpage, :thumbnail_max_width, :thumbnail_max_height, :viewport, :format]
|
79
|
+
|
80
80
|
# assign alias to valid option
|
81
81
|
options_alias.each do |key|
|
82
82
|
if options.key?(key)
|
@@ -93,17 +93,13 @@ module Url2png
|
|
93
93
|
end
|
94
94
|
end
|
95
95
|
end
|
96
|
-
|
97
|
-
# options_alias.each do |key|
|
98
|
-
# if options.include?(key) then options.delete(key) end
|
99
|
-
# end
|
100
|
-
|
101
|
-
|
96
|
+
|
102
97
|
options = check_options(options, options_available)
|
103
|
-
|
98
|
+
|
104
99
|
# add url to options query
|
105
100
|
options[:url] = url
|
106
|
-
|
101
|
+
|
102
|
+
|
107
103
|
query_string = options.
|
108
104
|
sort_by {|s| s[0].to_s }. # sort query by keys for uniformity
|
109
105
|
select {|s| s[1] }. # skip empty options
|
@@ -112,38 +108,40 @@ module Url2png
|
|
112
108
|
|
113
109
|
# generate token
|
114
110
|
token = Url2png.token query_string
|
115
|
-
|
116
|
-
|
117
|
-
"
|
118
|
-
|
111
|
+
|
112
|
+
# set the format of the asset requested
|
113
|
+
format = options[:format] || "png"
|
114
|
+
|
115
|
+
"http://api.url2png.com/v6/#{Url2png.api_key}/#{token}/#{format}/?#{query_string}"
|
116
|
+
|
119
117
|
when 'v4'
|
120
118
|
######
|
121
119
|
# v4 #
|
122
120
|
# http://beta.url2png.com/v4/<APIKEY>/<TOKEN>/<VIEWPORT>-<THUMBNAIL>-<FULL>/<TARGET>
|
123
121
|
######
|
124
|
-
|
122
|
+
|
125
123
|
# check for unavailable options
|
126
124
|
options_available = [:size, :thumbnail, :browser_size, :delay, :fullscreen]
|
127
125
|
options = check_options(options, options_available)
|
128
|
-
|
126
|
+
|
129
127
|
# escape the url
|
130
128
|
safe_url= CGI::escape(url)
|
131
|
-
|
129
|
+
|
132
130
|
# generate token
|
133
131
|
token = Url2png.token safe_url
|
134
|
-
|
132
|
+
|
135
133
|
# build options portion of URL
|
136
134
|
url_options = []
|
137
|
-
|
135
|
+
|
138
136
|
# set thumbnail
|
139
137
|
options[:thumbnail] ||= options[:size]
|
140
|
-
|
138
|
+
|
141
139
|
url_options << "t#{ options[:thumbnail] }"
|
142
140
|
url_options << "s#{ options[:browser_size] }" if options[:browser_size]
|
143
141
|
url_options << "d#{ options[:delay] }" if options[:delay]
|
144
142
|
url_options << "FULL" if options[:fullscreen]
|
145
143
|
url_options_string = url_options.join('-')
|
146
|
-
|
144
|
+
|
147
145
|
# build image url
|
148
146
|
File.join(
|
149
147
|
"http://beta.url2png.com",
|
@@ -153,33 +151,33 @@ module Url2png
|
|
153
151
|
url_options_string,
|
154
152
|
safe_url
|
155
153
|
)
|
156
|
-
|
154
|
+
|
157
155
|
when 'v3'
|
158
156
|
######
|
159
157
|
# v3 #
|
160
158
|
######
|
161
|
-
|
159
|
+
|
162
160
|
# http://api.url2png.com/v3/api_key/security_hash/bounds/url
|
163
|
-
|
161
|
+
|
164
162
|
options_available = [:fullscreen, :size]
|
165
163
|
options = check_options(options, options_available)
|
166
|
-
|
164
|
+
|
167
165
|
# escape the url
|
168
166
|
safe_url= CGI::escape(url)
|
169
|
-
|
167
|
+
|
170
168
|
# generate token
|
171
169
|
token = Url2png.token safe_url
|
172
|
-
|
170
|
+
|
173
171
|
# custom size or default_size
|
174
172
|
size = options[:size] || Url2png.default_size
|
175
|
-
|
173
|
+
|
176
174
|
# build options portion of URL
|
177
175
|
if options[:fullscreen]
|
178
176
|
bounds = "FULL"
|
179
177
|
else
|
180
178
|
bounds = size
|
181
179
|
end
|
182
|
-
|
180
|
+
|
183
181
|
# build image url
|
184
182
|
File.join(
|
185
183
|
"http://api.url2png.com",
|
@@ -190,12 +188,12 @@ module Url2png
|
|
190
188
|
safe_url
|
191
189
|
)
|
192
190
|
end
|
193
|
-
|
191
|
+
|
194
192
|
end
|
195
193
|
end
|
196
|
-
|
194
|
+
|
197
195
|
def check_options options, options_available
|
198
|
-
|
196
|
+
|
199
197
|
# filter out unavailable options
|
200
198
|
options = options.select do |key, value|
|
201
199
|
if options_available.include? key
|
@@ -204,20 +202,20 @@ module Url2png
|
|
204
202
|
# size is a special option, only usable in the gem
|
205
203
|
homepage = "https://github.com/robinhoudmeyers/url2png-gem"
|
206
204
|
raise "#{options} \n \"#{key}\" is not a valid option \nCheck the gem homepage for information about options: #{homepage}" unless key == :size
|
207
|
-
|
205
|
+
|
208
206
|
end
|
209
207
|
end
|
210
208
|
end
|
211
|
-
|
209
|
+
|
212
210
|
# -----
|
213
211
|
# Alias
|
214
212
|
def site_image_tag url, options = {}
|
215
213
|
url2png_image_tag(url, options)
|
216
214
|
end
|
217
|
-
|
215
|
+
|
218
216
|
def site_image_url url, options = {}
|
219
217
|
url2png_image_url(url, options)
|
220
218
|
end
|
221
219
|
end
|
222
220
|
end
|
223
|
-
end
|
221
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Url2png do
|
4
|
+
include Url2png::Helpers::Common
|
5
|
+
|
6
|
+
before(:all) do
|
7
|
+
Url2png.config({
|
8
|
+
:api_key => "P4DBEC0200EE98",
|
9
|
+
:private_key => "S169B0E051EAC6794B3EC9F385866187R"
|
10
|
+
})
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "site_image_tag" do
|
14
|
+
it "should return the url of the http://pasparout.com image" do
|
15
|
+
site_image_tag('http://pasparout.com').should_not be_nil
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe "site_image_url" do
|
20
|
+
it "should encode the thumbnail max width when provided" do
|
21
|
+
site_image_url('http://www.nytimes.com/', :thumbnail_max_width => '200').should =~ %r{thumbnail_max_width=200}
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should encode the thumbnail max height when provided" do
|
25
|
+
site_image_url('http://www.nytimes.com/', :thumbnail_max_height => '400').should =~ %r{thumbnail_max_height=400}
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should encode the viewport size when provided" do
|
29
|
+
site_image_url('http://www.nytimes.com/', :viewport => '200x300').should =~ %r{viewport=200x300}
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should encode the delay when provided" do
|
33
|
+
site_image_url('http://www.nytimes.com/', :delay => 3).should =~ %r{delay=3}
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should encode the fullpage flag when provided" do
|
37
|
+
site_image_url('http://www.nytimes.com/', :fullpage => true).should =~ %r{fullpage=true}
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should concatenate options by using ampersands" do
|
41
|
+
site_image_url('http://www.nytimes.com/', :delay => 3, :fullpage => true).should =~ %r{delay=3&fullpage=true}
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should request the png format by default" do
|
45
|
+
site_image_url('http://www.nytimes.com/').should =~ %r{png}
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should request the json format" do
|
49
|
+
site_image_url('http://www.nytimes.com/', :format => :json).should =~ %r{json}
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should request the png format" do
|
53
|
+
site_image_url('http://www.nytimes.com/', :format => :png).should =~ %r{png}
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -8,5 +8,7 @@ require 'url2png'
|
|
8
8
|
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
9
9
|
|
10
10
|
RSpec.configure do |config|
|
11
|
-
|
12
|
-
|
11
|
+
config.filter_run :focused => true
|
12
|
+
config.run_all_when_everything_filtered = true
|
13
|
+
config.alias_example_to :fit, :focused => true
|
14
|
+
end
|
data/url2png.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "url2png"
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["robinhoudmeyers", "wout fierens", "fuzzyalej", "ceritium", "lukemelia"]
|
12
|
-
s.date = "2012-
|
12
|
+
s.date = "2012-11-16"
|
13
13
|
s.description = "Generate screenshots from websites almost instantly at any preferred size using ruby and the url2png.com API"
|
14
14
|
s.email = "houdmeyers@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -31,7 +31,7 @@ Gem::Specification.new do |s|
|
|
31
31
|
"lib/url2png/dimensions.rb",
|
32
32
|
"lib/url2png/helpers/common.rb",
|
33
33
|
"lib/url2png/rails.rb",
|
34
|
-
"spec/helpers/
|
34
|
+
"spec/helpers/common_spec.rb",
|
35
35
|
"spec/spec_helper.rb",
|
36
36
|
"spec/url2png_spec.rb",
|
37
37
|
"url2png.gemspec"
|
@@ -46,21 +46,18 @@ Gem::Specification.new do |s|
|
|
46
46
|
s.specification_version = 3
|
47
47
|
|
48
48
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
49
|
-
s.add_development_dependency(%q<rspec>, ["~> 2.
|
50
|
-
s.add_development_dependency(%q<bundler>, ["~> 1.1.3"])
|
49
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.11.0"])
|
51
50
|
s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
|
52
51
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
53
52
|
s.add_development_dependency(%q<rspec>, ["> 2.6.0"])
|
54
53
|
else
|
55
|
-
s.add_dependency(%q<rspec>, ["~> 2.
|
56
|
-
s.add_dependency(%q<bundler>, ["~> 1.1.3"])
|
54
|
+
s.add_dependency(%q<rspec>, ["~> 2.11.0"])
|
57
55
|
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
58
56
|
s.add_dependency(%q<rcov>, [">= 0"])
|
59
57
|
s.add_dependency(%q<rspec>, ["> 2.6.0"])
|
60
58
|
end
|
61
59
|
else
|
62
|
-
s.add_dependency(%q<rspec>, ["~> 2.
|
63
|
-
s.add_dependency(%q<bundler>, ["~> 1.1.3"])
|
60
|
+
s.add_dependency(%q<rspec>, ["~> 2.11.0"])
|
64
61
|
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
65
62
|
s.add_dependency(%q<rcov>, [">= 0"])
|
66
63
|
s.add_dependency(%q<rspec>, ["> 2.6.0"])
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: url2png
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2012-
|
16
|
+
date: 2012-11-16 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: rspec
|
@@ -22,23 +22,7 @@ dependencies:
|
|
22
22
|
requirements:
|
23
23
|
- - ~>
|
24
24
|
- !ruby/object:Gem::Version
|
25
|
-
version: 2.
|
26
|
-
type: :development
|
27
|
-
prerelease: false
|
28
|
-
version_requirements: !ruby/object:Gem::Requirement
|
29
|
-
none: false
|
30
|
-
requirements:
|
31
|
-
- - ~>
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 2.6.0
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
name: bundler
|
36
|
-
requirement: !ruby/object:Gem::Requirement
|
37
|
-
none: false
|
38
|
-
requirements:
|
39
|
-
- - ~>
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
version: 1.1.3
|
25
|
+
version: 2.11.0
|
42
26
|
type: :development
|
43
27
|
prerelease: false
|
44
28
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -46,7 +30,7 @@ dependencies:
|
|
46
30
|
requirements:
|
47
31
|
- - ~>
|
48
32
|
- !ruby/object:Gem::Version
|
49
|
-
version:
|
33
|
+
version: 2.11.0
|
50
34
|
- !ruby/object:Gem::Dependency
|
51
35
|
name: jeweler
|
52
36
|
requirement: !ruby/object:Gem::Requirement
|
@@ -118,7 +102,7 @@ files:
|
|
118
102
|
- lib/url2png/dimensions.rb
|
119
103
|
- lib/url2png/helpers/common.rb
|
120
104
|
- lib/url2png/rails.rb
|
121
|
-
- spec/helpers/
|
105
|
+
- spec/helpers/common_spec.rb
|
122
106
|
- spec/spec_helper.rb
|
123
107
|
- spec/url2png_spec.rb
|
124
108
|
- url2png.gemspec
|
@@ -137,7 +121,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
137
121
|
version: '0'
|
138
122
|
segments:
|
139
123
|
- 0
|
140
|
-
hash: -
|
124
|
+
hash: -2645353561694603571
|
141
125
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
142
126
|
none: false
|
143
127
|
requirements:
|
@@ -1,38 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'url2png/helpers/common'
|
3
|
-
|
4
|
-
describe Url2png do
|
5
|
-
include Url2png::Helpers::Common
|
6
|
-
before(:all) do
|
7
|
-
Url2png::Config.public_key = "P4DBEC0200EE98"
|
8
|
-
Url2png::Config.shared_secret = "S169B0E051EAC6794B3EC9F385866187R"
|
9
|
-
end
|
10
|
-
|
11
|
-
describe "site_image_tag" do
|
12
|
-
it "should return the url of the http://pasparout.com image" do
|
13
|
-
site_image_tag('http://pasparout.com').should_not be_nil
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
describe "site_image_url" do
|
18
|
-
it "should encode the thumbnail size when provided" do
|
19
|
-
site_image_url('http://www.nytimes.com/', :thumbnail => '200x300').should =~ %r{t200x300}
|
20
|
-
end
|
21
|
-
|
22
|
-
it "should encode the initial browser size when provided" do
|
23
|
-
site_image_url('http://www.nytimes.com/', :browser_size => '200x300').should =~ %r{s200x300}
|
24
|
-
end
|
25
|
-
|
26
|
-
it "should encode the delay when provided" do
|
27
|
-
site_image_url('http://www.nytimes.com/', :delay => 3).should =~ %r{d3}
|
28
|
-
end
|
29
|
-
|
30
|
-
it "should encode the fullscreen capture flag when provided" do
|
31
|
-
site_image_url('http://www.nytimes.com/', :fullscreen => true).should =~ %r{FULL}
|
32
|
-
end
|
33
|
-
|
34
|
-
it "should concatenate options by using hyphens" do
|
35
|
-
site_image_url('http://www.nytimes.com/', :delay => 3, :fullscreen => true).should =~ %r{d3-FULL}
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|