url2png 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -1
- data/README.markdown +11 -1
- data/Rakefile +2 -2
- data/VERSION +1 -1
- data/lib/url2png/config.rb +28 -14
- data/lib/url2png/helpers/common.rb +48 -14
- data/url2png.gemspec +9 -10
- metadata +58 -86
data/Gemfile
CHANGED
data/README.markdown
CHANGED
@@ -20,7 +20,17 @@ First define your public key and shared secret:
|
|
20
20
|
Url2png::Config.public_key = 'PXXXXXXXXXXXXX'
|
21
21
|
Url2png::Config.shared_secret = 'SXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
|
22
22
|
|
23
|
-
|
23
|
+
If you are generating local urls in development you can use a placeholder or dummy image.
|
24
|
+
This is done by setting the mode:
|
25
|
+
|
26
|
+
Url2png::Config.mode = :placehold if Rails.env.development?
|
27
|
+
|
28
|
+
Options are:
|
29
|
+
- :production (default; will use the url2png api to generate images)
|
30
|
+
- :placehold (will generate images at http://placehold.it)
|
31
|
+
- :dummy (will give a grey base64 data image)
|
32
|
+
|
33
|
+
In Rails you probably want to do configuration in an initializer.
|
24
34
|
|
25
35
|
|
26
36
|
### Helpers
|
data/Rakefile
CHANGED
@@ -17,8 +17,8 @@ Jeweler::Tasks.new do |gem|
|
|
17
17
|
gem.license = "MIT"
|
18
18
|
gem.summary = %Q{A ruby gem wrapping the url2png.com screenshot service API}
|
19
19
|
gem.description = %Q{Generate screenshots from websites almost instantly at any preferred size using ruby and the url2png.com API}
|
20
|
-
gem.email = "wout@
|
21
|
-
gem.authors = ["wout fierens"]
|
20
|
+
gem.email = "wout@impinc.co.uk"
|
21
|
+
gem.authors = ["wout fierens", "fuzzyalej", "ceritium"]
|
22
22
|
# Include your dependencies below. Runtime dependencies are required when using your gem,
|
23
23
|
# and development dependencies are only needed for development (ie running rake tasks, tests, etc)
|
24
24
|
# gem.add_runtime_dependency 'jabber4r', '> 0.1'
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.7
|
data/lib/url2png/config.rb
CHANGED
@@ -1,45 +1,59 @@
|
|
1
1
|
module Url2png
|
2
|
+
|
2
3
|
module Config
|
3
4
|
|
5
|
+
# modes
|
6
|
+
MODES = %w{production placehold dummy}
|
7
|
+
|
8
|
+
def self.mode= mode
|
9
|
+
raise "Url2png error: Invalid mode, only #{ MODES.join(', ') } are allowed" unless MODES.include?(mode.to_s)
|
10
|
+
@url2png_mode ||= mode.to_s
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.mode
|
14
|
+
@url2png_mode ||= 'production'
|
15
|
+
end
|
16
|
+
|
17
|
+
# api settings
|
4
18
|
def self.api_url protocol
|
5
|
-
|
19
|
+
@url2png_url ||= "#{ protocol }api.url2png.com"
|
6
20
|
end
|
7
21
|
|
8
22
|
def self.api_version
|
9
|
-
|
23
|
+
@url2png_version ||= 'v3'
|
10
24
|
end
|
11
25
|
|
12
26
|
# public key setter and getter
|
13
27
|
def self.public_key= key
|
14
28
|
raise 'Url2png error: Invalid public key!' unless key.match(/^P/)
|
15
|
-
|
16
|
-
Thread.current[:url2png_key] ||= key
|
29
|
+
@url2png_key ||= key
|
17
30
|
end
|
18
|
-
def self.public_key
|
19
|
-
raise 'Url2png error: No public key defined!' if Thread.current[:url2png_key].nil?
|
20
31
|
|
21
|
-
|
32
|
+
def self.public_key
|
33
|
+
raise 'Url2png error: No public key defined!' if @url2png_key.nil?
|
34
|
+
@url2png_key
|
22
35
|
end
|
23
36
|
|
24
37
|
# shared secret setter and getter
|
25
38
|
def self.shared_secret= secret
|
26
39
|
raise 'Url2png error: Invalid shared secret!' unless secret.match(/^S/)
|
27
|
-
|
28
|
-
Thread.current[:url2png_secret] ||= secret
|
40
|
+
@url2png_secret ||= secret
|
29
41
|
end
|
30
|
-
def self.shared_secret
|
31
|
-
raise 'Url2png error: No shared secret defined!' if Thread.current[:url2png_secret].nil?
|
32
42
|
|
33
|
-
|
43
|
+
def self.shared_secret
|
44
|
+
raise 'Url2png error: No shared secret defined!' if @url2png_secret.nil?
|
45
|
+
@url2png_secret
|
34
46
|
end
|
35
47
|
|
36
48
|
# size
|
37
49
|
def self.default_size= size
|
38
|
-
|
50
|
+
@url2png_size ||= size
|
39
51
|
end
|
52
|
+
|
40
53
|
def self.default_size
|
41
|
-
|
54
|
+
@url2png_size ||= '400x400'
|
42
55
|
end
|
43
56
|
|
44
57
|
end
|
58
|
+
|
45
59
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Url2png
|
2
2
|
module Helpers
|
3
3
|
module Common
|
4
|
-
|
4
|
+
|
5
5
|
def site_image_tag url, options = {}
|
6
6
|
dim = Url2png::Dimensions.parse(options)
|
7
7
|
|
@@ -15,23 +15,57 @@ module Url2png
|
|
15
15
|
img << " #{ k }='#{ v }'" unless v.nil? || v == ''
|
16
16
|
end
|
17
17
|
img << ' />'
|
18
|
+
img.html_safe
|
18
19
|
end
|
19
|
-
|
20
|
+
|
20
21
|
def site_image_url url, options = {}
|
21
|
-
options[:protocol] ||= 'http://'
|
22
|
-
|
23
22
|
dim = Url2png::Dimensions.parse(options)
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
23
|
+
|
24
|
+
case Url2png::Config.mode
|
25
|
+
when 'dummy'
|
26
|
+
'data:image/png;base64,
|
27
|
+
iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAADHmlDQ1BJQ0MgUHJvZmlsZQAAeAGF
|
28
|
+
VN9r01AU/tplnbDhizpnEQk+aJFuZFN0Q5y2a1e6zVrqNrchSJumbVyaxiTtfrAH2YtvOsV38Qc+
|
29
|
+
+QcM2YNve5INxhRh+KyIIkz2IrOemzRNJ1MDufe73/nuOSfn5F6g+XFa0xQvDxRVU0/FwvzE5BTf
|
30
|
+
8gFeHEMr/GhNi4YWSiZHQA/Tsnnvs/MOHsZsdO5v36v+Y9WalQwR8BwgvpQ1xCLhWaBpXNR0E+DW
|
31
|
+
ie+dMTXCzUxzWKcECR9nOG9jgeGMjSOWZjQ1QJoJwgfFQjpLuEA4mGng8w3YzoEU5CcmqZIuizyr
|
32
|
+
RVIv5WRFsgz28B9zg/JfsKiU6Zut5xCNbZoZTtF8it4fOX1wjOYA1cE/Xxi9QbidcFg246M1fkLN
|
33
|
+
JK4RJr3n7nRpmO1lmpdZKRIlHCS8YlSuM2xp5gsDiZrm0+30UJKwnzS/NDNZ8+PtUJUE6zHF9fZL
|
34
|
+
RvS6vdfbkZMH4zU+pynWf0D+vff1corleZLw67QejdX0W5I6Vtvb5M2mI8PEd1E/A0hCgo4cZCjg
|
35
|
+
kUIMYZpjxKr4TBYZIkqk0ml0VHmyONY7KJOW7RxHeMlfDrheFvVbsrj24Pue3SXXjrwVhcW3o9hR
|
36
|
+
7bWB6bqyE5obf3VhpaNu4Te55ZsbbasLCFH+iuWxSF5lyk+CUdd1NuaQU5f8dQvPMpTuJXYSWAy6
|
37
|
+
rPBe+CpsCk+FF8KXv9TIzt6tEcuAcSw+q55TzcbsJdJM0utkuL+K9ULGGPmQMUNanb4kTZyKOfLa
|
38
|
+
UAsnBneC6+biXC/XB567zF3h+rkIrS5yI47CF/VFfCHwvjO+Pl+3b4hhp9u+02TrozFa67vTkbqi
|
39
|
+
sXqUj9sn9j2OqhMZsrG+sX5WCCu0omNqSrN0TwADJW1Ol/MFk+8RhAt8iK4tiY+rYleQTysKb5kM
|
40
|
+
XpcMSa9I2S6wO4/tA7ZT1l3maV9zOfMqcOkb/cPrLjdVBl4ZwNFzLhegM3XkCbB8XizrFdsfPJ63
|
41
|
+
gJE722OtPW1huos+VqvbdC5bHgG7D6vVn8+q1d3n5H8LeKP8BqkjCtbCoV8yAAAACXBIWXMAAAsT
|
42
|
+
AAALEwEAmpwYAAABbmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4
|
43
|
+
PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAiPgogICA8cmRmOlJERiB4
|
44
|
+
bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgog
|
45
|
+
ICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpkYz0i
|
46
|
+
aHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogICAgICAgICA8ZGM6c3ViamVjdD4K
|
47
|
+
ICAgICAgICAgICAgPHJkZjpCYWcvPgogICAgICAgICA8L2RjOnN1YmplY3Q+CiAgICAgIDwvcmRm
|
48
|
+
OkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgrlPw1BAAAAFElEQVQIHWM8
|
49
|
+
fPjwfwYgYAIRIAAAMrgDTJyW2igAAAAASUVORK5CYII='.gsub(/\n/,'')
|
50
|
+
|
51
|
+
when 'placehold'
|
52
|
+
"http://placehold.it/#{ dim[:size] }"
|
53
|
+
|
54
|
+
else
|
55
|
+
options[:protocol] ||= 'http://'
|
56
|
+
|
57
|
+
# escape the url
|
58
|
+
safe_url = URI.escape(url)
|
59
|
+
|
60
|
+
# generate token
|
61
|
+
token = Digest::MD5.hexdigest("#{ Url2png::Config.shared_secret }+#{ safe_url }")
|
62
|
+
|
63
|
+
# build image url
|
64
|
+
File.join(Url2png::Config.api_url(options[:protocol]), Url2png::Config.api_version, Url2png::Config.public_key, token, dim[:size], safe_url)
|
65
|
+
end
|
66
|
+
|
33
67
|
end
|
34
|
-
|
68
|
+
|
35
69
|
end
|
36
70
|
end
|
37
71
|
end
|
data/url2png.gemspec
CHANGED
@@ -4,14 +4,14 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.0.
|
7
|
+
s.name = "url2png"
|
8
|
+
s.version = "0.0.7"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["wout fierens"]
|
12
|
-
s.date =
|
13
|
-
s.description =
|
14
|
-
s.email =
|
11
|
+
s.authors = ["wout fierens", "fuzzyalej", "ceritium"]
|
12
|
+
s.date = "2011-12-01"
|
13
|
+
s.description = "Generate screenshots from websites almost instantly at any preferred size using ruby and the url2png.com API"
|
14
|
+
s.email = "wout@impinc.co.uk"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE.txt",
|
17
17
|
"README.markdown"
|
@@ -35,11 +35,11 @@ Gem::Specification.new do |s|
|
|
35
35
|
"spec/url2png_spec.rb",
|
36
36
|
"url2png.gemspec"
|
37
37
|
]
|
38
|
-
s.homepage =
|
38
|
+
s.homepage = "http://github.com/wout/url2png-gem"
|
39
39
|
s.licenses = ["MIT"]
|
40
40
|
s.require_paths = ["lib"]
|
41
|
-
s.rubygems_version =
|
42
|
-
s.summary =
|
41
|
+
s.rubygems_version = "1.8.11"
|
42
|
+
s.summary = "A ruby gem wrapping the url2png.com screenshot service API"
|
43
43
|
s.test_files = [
|
44
44
|
"spec/helpers/common_rspec.rb",
|
45
45
|
"spec/spec_helper.rb",
|
@@ -47,7 +47,6 @@ Gem::Specification.new do |s|
|
|
47
47
|
]
|
48
48
|
|
49
49
|
if s.respond_to? :specification_version then
|
50
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
51
50
|
s.specification_version = 3
|
52
51
|
|
53
52
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
metadata
CHANGED
@@ -1,105 +1,82 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: url2png
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 0
|
8
|
-
- 6
|
9
|
-
version: 0.0.6
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.7
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
7
|
+
authors:
|
12
8
|
- wout fierens
|
9
|
+
- fuzzyalej
|
10
|
+
- ceritium
|
13
11
|
autorequire:
|
14
12
|
bindir: bin
|
15
13
|
cert_chain: []
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
dependencies:
|
20
|
-
- !ruby/object:Gem::Dependency
|
14
|
+
date: 2011-12-01 00:00:00.000000000Z
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
21
17
|
name: rspec
|
22
|
-
requirement: &
|
18
|
+
requirement: &2157323520 !ruby/object:Gem::Requirement
|
23
19
|
none: false
|
24
|
-
requirements:
|
20
|
+
requirements:
|
25
21
|
- - ~>
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
segments:
|
28
|
-
- 2
|
29
|
-
- 6
|
30
|
-
- 0
|
22
|
+
- !ruby/object:Gem::Version
|
31
23
|
version: 2.6.0
|
32
24
|
type: :development
|
33
25
|
prerelease: false
|
34
|
-
version_requirements: *
|
35
|
-
- !ruby/object:Gem::Dependency
|
26
|
+
version_requirements: *2157323520
|
27
|
+
- !ruby/object:Gem::Dependency
|
36
28
|
name: bundler
|
37
|
-
requirement: &
|
29
|
+
requirement: &2157321920 !ruby/object:Gem::Requirement
|
38
30
|
none: false
|
39
|
-
requirements:
|
31
|
+
requirements:
|
40
32
|
- - ~>
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
segments:
|
43
|
-
- 1
|
44
|
-
- 0
|
45
|
-
- 0
|
33
|
+
- !ruby/object:Gem::Version
|
46
34
|
version: 1.0.0
|
47
35
|
type: :development
|
48
36
|
prerelease: false
|
49
|
-
version_requirements: *
|
50
|
-
- !ruby/object:Gem::Dependency
|
37
|
+
version_requirements: *2157321920
|
38
|
+
- !ruby/object:Gem::Dependency
|
51
39
|
name: jeweler
|
52
|
-
requirement: &
|
40
|
+
requirement: &2157320760 !ruby/object:Gem::Requirement
|
53
41
|
none: false
|
54
|
-
requirements:
|
42
|
+
requirements:
|
55
43
|
- - ~>
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
segments:
|
58
|
-
- 1
|
59
|
-
- 5
|
60
|
-
- 2
|
44
|
+
- !ruby/object:Gem::Version
|
61
45
|
version: 1.5.2
|
62
46
|
type: :development
|
63
47
|
prerelease: false
|
64
|
-
version_requirements: *
|
65
|
-
- !ruby/object:Gem::Dependency
|
48
|
+
version_requirements: *2157320760
|
49
|
+
- !ruby/object:Gem::Dependency
|
66
50
|
name: rcov
|
67
|
-
requirement: &
|
51
|
+
requirement: &2157319780 !ruby/object:Gem::Requirement
|
68
52
|
none: false
|
69
|
-
requirements:
|
70
|
-
- -
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
|
73
|
-
- 0
|
74
|
-
version: "0"
|
53
|
+
requirements:
|
54
|
+
- - ! '>='
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0'
|
75
57
|
type: :development
|
76
58
|
prerelease: false
|
77
|
-
version_requirements: *
|
78
|
-
- !ruby/object:Gem::Dependency
|
59
|
+
version_requirements: *2157319780
|
60
|
+
- !ruby/object:Gem::Dependency
|
79
61
|
name: rspec
|
80
|
-
requirement: &
|
62
|
+
requirement: &2157318140 !ruby/object:Gem::Requirement
|
81
63
|
none: false
|
82
|
-
requirements:
|
83
|
-
- -
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
segments:
|
86
|
-
- 2
|
87
|
-
- 6
|
88
|
-
- 0
|
64
|
+
requirements:
|
65
|
+
- - ! '>'
|
66
|
+
- !ruby/object:Gem::Version
|
89
67
|
version: 2.6.0
|
90
68
|
type: :development
|
91
69
|
prerelease: false
|
92
|
-
version_requirements: *
|
93
|
-
description: Generate screenshots from websites almost instantly at any preferred
|
94
|
-
|
70
|
+
version_requirements: *2157318140
|
71
|
+
description: Generate screenshots from websites almost instantly at any preferred
|
72
|
+
size using ruby and the url2png.com API
|
73
|
+
email: wout@impinc.co.uk
|
95
74
|
executables: []
|
96
|
-
|
97
75
|
extensions: []
|
98
|
-
|
99
|
-
extra_rdoc_files:
|
76
|
+
extra_rdoc_files:
|
100
77
|
- LICENSE.txt
|
101
78
|
- README.markdown
|
102
|
-
files:
|
79
|
+
files:
|
103
80
|
- .document
|
104
81
|
- .rspec
|
105
82
|
- Gemfile
|
@@ -117,40 +94,35 @@ files:
|
|
117
94
|
- spec/spec_helper.rb
|
118
95
|
- spec/url2png_spec.rb
|
119
96
|
- url2png.gemspec
|
120
|
-
has_rdoc: true
|
121
97
|
homepage: http://github.com/wout/url2png-gem
|
122
|
-
licenses:
|
98
|
+
licenses:
|
123
99
|
- MIT
|
124
100
|
post_install_message:
|
125
101
|
rdoc_options: []
|
126
|
-
|
127
|
-
require_paths:
|
102
|
+
require_paths:
|
128
103
|
- lib
|
129
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
104
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
130
105
|
none: false
|
131
|
-
requirements:
|
132
|
-
- -
|
133
|
-
- !ruby/object:Gem::Version
|
134
|
-
|
135
|
-
segments:
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
segments:
|
136
111
|
- 0
|
137
|
-
|
138
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
112
|
+
hash: -2618384894962089538
|
113
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
139
114
|
none: false
|
140
|
-
requirements:
|
141
|
-
- -
|
142
|
-
- !ruby/object:Gem::Version
|
143
|
-
|
144
|
-
- 0
|
145
|
-
version: "0"
|
115
|
+
requirements:
|
116
|
+
- - ! '>='
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
146
119
|
requirements: []
|
147
|
-
|
148
120
|
rubyforge_project:
|
149
|
-
rubygems_version: 1.
|
121
|
+
rubygems_version: 1.8.11
|
150
122
|
signing_key:
|
151
123
|
specification_version: 3
|
152
124
|
summary: A ruby gem wrapping the url2png.com screenshot service API
|
153
|
-
test_files:
|
125
|
+
test_files:
|
154
126
|
- spec/helpers/common_rspec.rb
|
155
127
|
- spec/spec_helper.rb
|
156
128
|
- spec/url2png_spec.rb
|