url2png 0.2.1 → 0.2.2
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/README.markdown +33 -17
- data/VERSION +1 -1
- data/lib/url2png/helpers/common.rb +35 -20
- data/url2png.gemspec +2 -2
- metadata +13 -13
data/README.markdown
CHANGED
@@ -6,9 +6,8 @@ A Ruby gem wrapping the url2png.com API.
|
|
6
6
|
## Who should use it?
|
7
7
|
Any Ruby on Rails developer who wants/needs to generate screenshots from sites using url2png.com.
|
8
8
|
|
9
|
-
## Usage
|
10
9
|
|
11
|
-
|
10
|
+
## Installation
|
12
11
|
|
13
12
|
gem install url2png
|
14
13
|
|
@@ -26,7 +25,7 @@ You must define your public key and shared secret, they are required:
|
|
26
25
|
You can define the api version if you want to use an different version of the url2png api.
|
27
26
|
|
28
27
|
Url2png.api_version = "v4"
|
29
|
-
|
28
|
+
g
|
30
29
|
Available versions:
|
31
30
|
|
32
31
|
* v4 (default)
|
@@ -48,11 +47,11 @@ Options are:
|
|
48
47
|
In Rails you probably want to do configuration in an initializer.
|
49
48
|
|
50
49
|
|
51
|
-
|
50
|
+
## Usage
|
52
51
|
|
53
52
|
Generate an image tag:
|
54
53
|
|
55
|
-
|
54
|
+
url2png_image_tag [options]
|
56
55
|
|
57
56
|
|
58
57
|
Options differ by version!
|
@@ -64,21 +63,25 @@ Options differ by version!
|
|
64
63
|
Constrain screenshot based on width or height or both.<br>
|
65
64
|
default: no resizing
|
66
65
|
|
67
|
-
|
66
|
+
url2png_image_tag :url => 'http://www.zwartopwit.com',
|
67
|
+
:thumbnail_max_width => 500,
|
68
|
+
:thumbnail_max_height => 500
|
68
69
|
|
69
70
|
|
70
71
|
##### Viewport
|
71
72
|
Set viewport dimensions, adjust to your hearts content.<br>
|
72
73
|
default: 1480x1037
|
73
74
|
|
74
|
-
|
75
|
+
url2png_image_tag :url => 'http://www.zwartopwit.com',
|
76
|
+
:viewport => "1024x900"
|
75
77
|
|
76
78
|
|
77
79
|
##### Fullpage
|
78
80
|
Will attempt to capture entire document canvas.<br>
|
79
81
|
default: false
|
80
82
|
|
81
|
-
|
83
|
+
url2png_image_tag :url => 'http://www.zwartopwit.com',
|
84
|
+
:fullpage => true
|
82
85
|
|
83
86
|
|
84
87
|
##### Delay
|
@@ -89,14 +92,17 @@ max: 5<br>
|
|
89
92
|
|
90
93
|
example:
|
91
94
|
|
92
|
-
|
95
|
+
url2png_image_tag :url => "http://www.zwartopwit.com",
|
96
|
+
:size => '300x200',
|
97
|
+
:delay => 2
|
93
98
|
|
94
99
|
|
95
100
|
##### Force
|
96
101
|
Forces a fresh screenshot with each request, overwriting the previous copy.<br>
|
97
102
|
**You will be charged for every request made using the force option.**
|
98
103
|
|
99
|
-
=
|
104
|
+
= url2png_image_tag :url => 'http://www.zwartopwit.com',
|
105
|
+
:force => true
|
100
106
|
|
101
107
|
|
102
108
|
### Version 4
|
@@ -104,11 +110,13 @@ Forces a fresh screenshot with each request, overwriting the previous copy.<br>
|
|
104
110
|
By default the size is set to 400 x 400 px.
|
105
111
|
To generate an image with a specific size:
|
106
112
|
|
107
|
-
|
113
|
+
url2png_image_tag :url => "http://www.zwartopwit.com",
|
114
|
+
:size => '300x200'
|
108
115
|
|
109
116
|
To only get the image url:
|
110
117
|
|
111
|
-
site_image_url url
|
118
|
+
site_image_url :url => "http://www.zwartopwit.com",
|
119
|
+
:size => '300x200'
|
112
120
|
|
113
121
|
Options are:
|
114
122
|
|
@@ -118,9 +126,11 @@ Thumbnails will be resized to fit within this box.<br>
|
|
118
126
|
default: 'ORIGINAL'<br>
|
119
127
|
examples:
|
120
128
|
|
121
|
-
|
129
|
+
url2png_image_tag :url => "http://www.zwartopwit.com",
|
130
|
+
:size => '500x500'
|
122
131
|
|
123
|
-
|
132
|
+
url2png_image_tag :url => "http://www.zwartopwit.com",
|
133
|
+
:size => 'ORIGINAL'
|
124
134
|
|
125
135
|
##### Thumbnail (alias for :size)
|
126
136
|
|
@@ -131,7 +141,9 @@ min: '200x200'<br>
|
|
131
141
|
max: '4000x4000'<br>
|
132
142
|
example:
|
133
143
|
|
134
|
-
|
144
|
+
url2png_image_tag :url => "http://www.zwartopwit.com",
|
145
|
+
:size => '300x200',
|
146
|
+
:browser_size => '1024x2500'
|
135
147
|
|
136
148
|
##### Delay
|
137
149
|
Extra delay (in seconds) forced between page load and screenshot.<br>
|
@@ -140,7 +152,9 @@ min: 1<br>
|
|
140
152
|
max: 5<br>
|
141
153
|
example:
|
142
154
|
|
143
|
-
|
155
|
+
url2png_image_tag :url => "http://www.zwartopwit.com",
|
156
|
+
:size => '300x200',
|
157
|
+
:delay => 2
|
144
158
|
|
145
159
|
##### Fullscreen
|
146
160
|
When true, Will attempt to capture entire document canvas.<br>
|
@@ -149,7 +163,9 @@ default: false<br>
|
|
149
163
|
|
150
164
|
example:
|
151
165
|
|
152
|
-
|
166
|
+
url2png_image_tag :url => "http://www.zwartopwit.com",
|
167
|
+
:size => '300x200',
|
168
|
+
:fullscreen => true
|
153
169
|
|
154
170
|
|
155
171
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.2
|
@@ -3,17 +3,19 @@ module Url2png
|
|
3
3
|
module Common
|
4
4
|
extend self
|
5
5
|
|
6
|
+
# ------------------
|
6
7
|
# complete image tag
|
7
|
-
|
8
|
+
|
9
|
+
def url2png_image_tag options = {}
|
8
10
|
# parse size
|
9
11
|
dim = Url2png::Dimensions.parse(options)
|
10
|
-
|
11
|
-
# ensure image alt
|
12
|
-
alt = options.key?(:alt) ? options.delete(:alt) : url
|
12
|
+
|
13
|
+
# ensure image alt
|
14
|
+
alt = options.key?(:alt) ? options.delete(:alt) : options[:url]
|
13
15
|
|
14
16
|
# build image tag
|
15
17
|
img = '<img'
|
16
|
-
img << " src='#{ site_image_url(
|
18
|
+
img << " src='#{ site_image_url(options) }'"
|
17
19
|
img << " alt='#{ alt }'"
|
18
20
|
img << " width='#{ dim[:width] }'" if options[:size]
|
19
21
|
img << " height='#{ dim[:height] }'" if options[:size]
|
@@ -24,8 +26,22 @@ module Url2png
|
|
24
26
|
img.html_safe
|
25
27
|
end
|
26
28
|
|
29
|
+
|
30
|
+
def check_options options, options_available
|
31
|
+
# filter out unavailable options
|
32
|
+
options = options.select do |key, value|
|
33
|
+
if options_available.include? key
|
34
|
+
true
|
35
|
+
else
|
36
|
+
# size is a special option, only usable in the gem
|
37
|
+
warn "\"#{key}\" is not a valid option" unless key == :size
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
# --------------------------
|
27
43
|
# only the url for the image
|
28
|
-
def site_image_url
|
44
|
+
def site_image_url options = {}
|
29
45
|
# parse size
|
30
46
|
dim = Url2png::Dimensions.parse(options)
|
31
47
|
|
@@ -66,20 +82,14 @@ module Url2png
|
|
66
82
|
when 'v6'
|
67
83
|
######
|
68
84
|
# v6 #
|
85
|
+
# http://beta.url2png.com/v6/<APIKEY>/<TOKEN>/png/?url=google.com
|
69
86
|
######
|
70
87
|
|
71
|
-
#
|
72
|
-
|
73
|
-
|
74
|
-
:url => url,
|
75
|
-
:force => options[:force], # [false,always,timestamp] Default: false
|
76
|
-
:fullpage => options[:fullpage], # [true,false] Default: false
|
77
|
-
:thumbnail_max_width => options[:thumbnail_max_width], # scaled img width px; Default no-scaling
|
78
|
-
:thumbnail_max_height => options[:thumbnail_max_height],
|
79
|
-
:viewport => options[:viewport], # Max 5000x5000; Default 1280x1024
|
80
|
-
}
|
88
|
+
# check for unavailable options
|
89
|
+
options_available = [:url, :force, :fullpage, :thumbnail_max_width, :thumbnail_max_height, :viewport]
|
90
|
+
options = check_options(options, options_available)
|
81
91
|
|
82
|
-
query_string =
|
92
|
+
query_string = options.
|
83
93
|
sort_by {|s| s[0].to_s }. # sort query by keys for uniformity
|
84
94
|
select {|s| s[1] }. # skip empty options
|
85
95
|
map {|s| s.map {|v| CGI::escape(v.to_s) }.join('=') }. # escape keys & vals
|
@@ -90,16 +100,21 @@ module Url2png
|
|
90
100
|
|
91
101
|
|
92
102
|
"http://beta.url2png.com/v6/#{Url2png.api_key}/#{token}/png/?#{query_string}"
|
93
|
-
|
103
|
+
|
104
|
+
|
105
|
+
|
94
106
|
when 'v4'
|
95
107
|
######
|
96
108
|
# v4 #
|
109
|
+
# http://beta.url2png.com/v4/<APIKEY>/<TOKEN>/<VIEWPORT>-<THUMBNAIL>-<FULL>/<TARGET>
|
97
110
|
######
|
98
111
|
|
99
|
-
#
|
112
|
+
# check for unavailable options
|
113
|
+
options_available = [:url, :size, :thumbnail, :browser_size, :delay, :fullscreen]
|
114
|
+
options = check_options(options, options_available)
|
100
115
|
|
101
116
|
# escape the url
|
102
|
-
safe_url= CGI::escape(url)
|
117
|
+
safe_url= CGI::escape(options[:url])
|
103
118
|
|
104
119
|
# generate token
|
105
120
|
token = Digest::MD5.hexdigest("#{ Url2png.private_key }+#{ safe_url }")
|
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.2.
|
8
|
+
s.version = "0.2.2"
|
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-06-
|
12
|
+
s.date = "2012-06-15"
|
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 = [
|
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.2.
|
4
|
+
version: 0.2.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,11 +13,11 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2012-06-
|
16
|
+
date: 2012-06-15 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: rspec
|
20
|
-
requirement: &
|
20
|
+
requirement: &70170384723740 !ruby/object:Gem::Requirement
|
21
21
|
none: false
|
22
22
|
requirements:
|
23
23
|
- - ~>
|
@@ -25,10 +25,10 @@ dependencies:
|
|
25
25
|
version: 2.6.0
|
26
26
|
type: :development
|
27
27
|
prerelease: false
|
28
|
-
version_requirements: *
|
28
|
+
version_requirements: *70170384723740
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: bundler
|
31
|
-
requirement: &
|
31
|
+
requirement: &70170384723260 !ruby/object:Gem::Requirement
|
32
32
|
none: false
|
33
33
|
requirements:
|
34
34
|
- - ~>
|
@@ -36,10 +36,10 @@ dependencies:
|
|
36
36
|
version: 1.1.3
|
37
37
|
type: :development
|
38
38
|
prerelease: false
|
39
|
-
version_requirements: *
|
39
|
+
version_requirements: *70170384723260
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: jeweler
|
42
|
-
requirement: &
|
42
|
+
requirement: &70170384722780 !ruby/object:Gem::Requirement
|
43
43
|
none: false
|
44
44
|
requirements:
|
45
45
|
- - ~>
|
@@ -47,10 +47,10 @@ dependencies:
|
|
47
47
|
version: 1.8.3
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
|
-
version_requirements: *
|
50
|
+
version_requirements: *70170384722780
|
51
51
|
- !ruby/object:Gem::Dependency
|
52
52
|
name: rcov
|
53
|
-
requirement: &
|
53
|
+
requirement: &70170384722260 !ruby/object:Gem::Requirement
|
54
54
|
none: false
|
55
55
|
requirements:
|
56
56
|
- - ! '>='
|
@@ -58,10 +58,10 @@ dependencies:
|
|
58
58
|
version: '0'
|
59
59
|
type: :development
|
60
60
|
prerelease: false
|
61
|
-
version_requirements: *
|
61
|
+
version_requirements: *70170384722260
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
name: rspec
|
64
|
-
requirement: &
|
64
|
+
requirement: &70170384721780 !ruby/object:Gem::Requirement
|
65
65
|
none: false
|
66
66
|
requirements:
|
67
67
|
- - ! '>'
|
@@ -69,7 +69,7 @@ dependencies:
|
|
69
69
|
version: 2.6.0
|
70
70
|
type: :development
|
71
71
|
prerelease: false
|
72
|
-
version_requirements: *
|
72
|
+
version_requirements: *70170384721780
|
73
73
|
description: Generate screenshots from websites almost instantly at any preferred
|
74
74
|
size using ruby and the url2png.com API
|
75
75
|
email: houdmeyers@gmail.com
|
@@ -112,7 +112,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
112
112
|
version: '0'
|
113
113
|
segments:
|
114
114
|
- 0
|
115
|
-
hash:
|
115
|
+
hash: 1190505122960655189
|
116
116
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
117
|
none: false
|
118
118
|
requirements:
|