embedify 0.6.4 → 0.7.0
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/VERSION +1 -1
- data/embedify.gemspec +3 -3
- data/examples/embedify_server/Gemfile.lock +12 -5
- data/examples/embedify_server/lib/embedify_server.rb +1 -1
- data/lib/embedify.rb +3 -2
- metadata +88 -28
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.7.0
|
data/embedify.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "embedify"
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.7.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Tristan Gomez"]
|
12
|
-
s.date = "2012-
|
12
|
+
s.date = "2012-06-06"
|
13
13
|
s.description = "Embedify is a ruby gem that parses and returns an\n embeddable version of a page, similar to how Facebook fetches and retrieves\n page data when posting a link."
|
14
14
|
s.email = "tristan.gomez+embedify@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -39,7 +39,7 @@ Gem::Specification.new do |s|
|
|
39
39
|
s.homepage = "http://github.com/parasquid/embedify"
|
40
40
|
s.licenses = ["LGPLv3"]
|
41
41
|
s.require_paths = ["lib"]
|
42
|
-
s.rubygems_version = "1.8.
|
42
|
+
s.rubygems_version = "1.8.24"
|
43
43
|
s.summary = "parses and returns an embeddable version of a page"
|
44
44
|
|
45
45
|
if s.respond_to? :specification_version then
|
@@ -1,8 +1,13 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ../../
|
3
3
|
specs:
|
4
|
-
embedify (0.
|
4
|
+
embedify (0.6.4)
|
5
|
+
addressable
|
5
6
|
faraday
|
7
|
+
faraday_middleware
|
8
|
+
fastimage
|
9
|
+
hashie
|
10
|
+
hashie
|
6
11
|
nokogiri (~> 1.5.0)
|
7
12
|
|
8
13
|
GEM
|
@@ -21,13 +26,15 @@ GEM
|
|
21
26
|
eventmachine (>= 0.12.9)
|
22
27
|
escape_utils (0.2.4)
|
23
28
|
eventmachine (0.12.10)
|
24
|
-
faraday (0.
|
25
|
-
addressable (~> 2.2)
|
29
|
+
faraday (0.8.1)
|
26
30
|
multipart-post (~> 1.1)
|
27
|
-
|
31
|
+
faraday_middleware (0.8.7)
|
32
|
+
faraday (>= 0.7.4, < 0.9)
|
33
|
+
fastimage (1.2.13)
|
34
|
+
hashie (1.2.0)
|
28
35
|
json_pure (1.6.5)
|
29
36
|
multipart-post (1.1.5)
|
30
|
-
nokogiri (1.5.
|
37
|
+
nokogiri (1.5.3)
|
31
38
|
rack (1.4.1)
|
32
39
|
rack-fiber_pool (0.9.1)
|
33
40
|
rack-protection (1.2.0)
|
@@ -27,7 +27,7 @@ class EmbedifyServer < Sinatra::Base
|
|
27
27
|
get_or_post '/' do
|
28
28
|
puts "processing #{params[:url]}"
|
29
29
|
|
30
|
-
properties = Embedify.fetch(CGI
|
30
|
+
properties = Embedify.fetch(CGI::escape(params[:url]))
|
31
31
|
|
32
32
|
# we don't want to return the nokogiri doc
|
33
33
|
properties.delete :nokogiri_parsed_document
|
data/lib/embedify.rb
CHANGED
@@ -3,6 +3,7 @@ require 'faraday'
|
|
3
3
|
require 'hashie'
|
4
4
|
require "addressable/uri"
|
5
5
|
require 'fastimage'
|
6
|
+
require 'cgi'
|
6
7
|
|
7
8
|
module Embedify
|
8
9
|
|
@@ -42,7 +43,7 @@ module Embedify
|
|
42
43
|
|
43
44
|
def self.get_with_redirects(uri, iterations = 0)
|
44
45
|
html = Faraday.get(uri)
|
45
|
-
puts "#{iterations.inspect} #{html.env[:response_headers]['Location']}"
|
46
|
+
puts "#{iterations.inspect} redirects #{html.env[:response_headers]['Location']}"
|
46
47
|
case html.status
|
47
48
|
when 301..307
|
48
49
|
html = get_with_redirects(html.env[:response_headers]['Location'], iterations + 1)
|
@@ -96,7 +97,7 @@ module Embedify
|
|
96
97
|
images = []
|
97
98
|
img_src_count = 1
|
98
99
|
img_srcs.each do |img_src|
|
99
|
-
dimensions = FastImage.size(img_src)
|
100
|
+
dimensions = FastImage.size(CGI::escape(img_src))
|
100
101
|
images.push(url: img_src, width: dimensions[0], height: dimensions[1]) if(image_is_big_enough?(dimensions) && image_has_good_proportions?(dimensions))
|
101
102
|
puts "#{img_src} #{dimensions}"
|
102
103
|
img_src_count = img_src_count + 1
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embedify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.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: 2012-
|
12
|
+
date: 2012-06-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: 1.5.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.5.0
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: hashie
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :runtime
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: faraday
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: '0'
|
44
54
|
type: :runtime
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: faraday_middleware
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ! '>='
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: '0'
|
55
70
|
type: :runtime
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: hashie
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ! '>='
|
@@ -65,10 +85,15 @@ dependencies:
|
|
65
85
|
version: '0'
|
66
86
|
type: :runtime
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: addressable
|
71
|
-
requirement:
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
72
97
|
none: false
|
73
98
|
requirements:
|
74
99
|
- - ! '>='
|
@@ -76,10 +101,15 @@ dependencies:
|
|
76
101
|
version: '0'
|
77
102
|
type: :runtime
|
78
103
|
prerelease: false
|
79
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
80
110
|
- !ruby/object:Gem::Dependency
|
81
111
|
name: fastimage
|
82
|
-
requirement:
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
83
113
|
none: false
|
84
114
|
requirements:
|
85
115
|
- - ! '>='
|
@@ -87,10 +117,15 @@ dependencies:
|
|
87
117
|
version: '0'
|
88
118
|
type: :runtime
|
89
119
|
prerelease: false
|
90
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
91
126
|
- !ruby/object:Gem::Dependency
|
92
127
|
name: shoulda
|
93
|
-
requirement:
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
94
129
|
none: false
|
95
130
|
requirements:
|
96
131
|
- - ! '>='
|
@@ -98,10 +133,15 @@ dependencies:
|
|
98
133
|
version: '0'
|
99
134
|
type: :development
|
100
135
|
prerelease: false
|
101
|
-
version_requirements:
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
102
142
|
- !ruby/object:Gem::Dependency
|
103
143
|
name: rdoc
|
104
|
-
requirement:
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
105
145
|
none: false
|
106
146
|
requirements:
|
107
147
|
- - ~>
|
@@ -109,10 +149,15 @@ dependencies:
|
|
109
149
|
version: '3.12'
|
110
150
|
type: :development
|
111
151
|
prerelease: false
|
112
|
-
version_requirements:
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ~>
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '3.12'
|
113
158
|
- !ruby/object:Gem::Dependency
|
114
159
|
name: bundler
|
115
|
-
requirement:
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
116
161
|
none: false
|
117
162
|
requirements:
|
118
163
|
- - ! '>='
|
@@ -120,10 +165,15 @@ dependencies:
|
|
120
165
|
version: '0'
|
121
166
|
type: :development
|
122
167
|
prerelease: false
|
123
|
-
version_requirements:
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - ! '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
124
174
|
- !ruby/object:Gem::Dependency
|
125
175
|
name: jeweler
|
126
|
-
requirement:
|
176
|
+
requirement: !ruby/object:Gem::Requirement
|
127
177
|
none: false
|
128
178
|
requirements:
|
129
179
|
- - ! '>='
|
@@ -131,10 +181,15 @@ dependencies:
|
|
131
181
|
version: '0'
|
132
182
|
type: :development
|
133
183
|
prerelease: false
|
134
|
-
version_requirements:
|
184
|
+
version_requirements: !ruby/object:Gem::Requirement
|
185
|
+
none: false
|
186
|
+
requirements:
|
187
|
+
- - ! '>='
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '0'
|
135
190
|
- !ruby/object:Gem::Dependency
|
136
191
|
name: rspec
|
137
|
-
requirement:
|
192
|
+
requirement: !ruby/object:Gem::Requirement
|
138
193
|
none: false
|
139
194
|
requirements:
|
140
195
|
- - ! '>='
|
@@ -142,7 +197,12 @@ dependencies:
|
|
142
197
|
version: '0'
|
143
198
|
type: :development
|
144
199
|
prerelease: false
|
145
|
-
version_requirements:
|
200
|
+
version_requirements: !ruby/object:Gem::Requirement
|
201
|
+
none: false
|
202
|
+
requirements:
|
203
|
+
- - ! '>='
|
204
|
+
- !ruby/object:Gem::Version
|
205
|
+
version: '0'
|
146
206
|
description: ! "Embedify is a ruby gem that parses and returns an\n embeddable
|
147
207
|
version of a page, similar to how Facebook fetches and retrieves\n page data
|
148
208
|
when posting a link."
|
@@ -186,7 +246,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
186
246
|
version: '0'
|
187
247
|
segments:
|
188
248
|
- 0
|
189
|
-
hash:
|
249
|
+
hash: 4041820853258493783
|
190
250
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
191
251
|
none: false
|
192
252
|
requirements:
|
@@ -195,7 +255,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
195
255
|
version: '0'
|
196
256
|
requirements: []
|
197
257
|
rubyforge_project:
|
198
|
-
rubygems_version: 1.8.
|
258
|
+
rubygems_version: 1.8.24
|
199
259
|
signing_key:
|
200
260
|
specification_version: 3
|
201
261
|
summary: parses and returns an embeddable version of a page
|