embedify 0.4.0 → 0.5.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/Gemfile +3 -1
- data/Gemfile.lock +4 -1
- data/VERSION +1 -1
- data/embedify.gemspec +10 -4
- data/lib/embedify.rb +33 -3
- metadata +38 -6
data/Gemfile
CHANGED
@@ -8,7 +8,7 @@ source "http://rubygems.org"
|
|
8
8
|
group :development do
|
9
9
|
gem "shoulda", ">= 0"
|
10
10
|
gem "rdoc", "~> 3.12"
|
11
|
-
gem "bundler"
|
11
|
+
gem "bundler"
|
12
12
|
gem "jeweler"
|
13
13
|
gem 'rspec'
|
14
14
|
end
|
@@ -18,3 +18,5 @@ gem 'hashie'
|
|
18
18
|
gem 'faraday'
|
19
19
|
gem 'faraday_middleware'
|
20
20
|
gem 'hashie'
|
21
|
+
gem 'addressable'
|
22
|
+
gem 'fastimage'
|
data/Gemfile.lock
CHANGED
@@ -9,6 +9,7 @@ GEM
|
|
9
9
|
rack (~> 1.1)
|
10
10
|
faraday_middleware (0.8.4)
|
11
11
|
faraday (>= 0.7.4, < 0.9)
|
12
|
+
fastimage (1.2.13)
|
12
13
|
git (1.2.5)
|
13
14
|
hashie (1.2.0)
|
14
15
|
jeweler (1.8.3)
|
@@ -41,9 +42,11 @@ PLATFORMS
|
|
41
42
|
ruby
|
42
43
|
|
43
44
|
DEPENDENCIES
|
44
|
-
|
45
|
+
addressable
|
46
|
+
bundler
|
45
47
|
faraday
|
46
48
|
faraday_middleware
|
49
|
+
fastimage
|
47
50
|
hashie
|
48
51
|
jeweler
|
49
52
|
nokogiri (~> 1.5.0)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.5.0
|
data/embedify.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "embedify"
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.5.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"]
|
@@ -51,9 +51,11 @@ Gem::Specification.new do |s|
|
|
51
51
|
s.add_runtime_dependency(%q<faraday>, [">= 0"])
|
52
52
|
s.add_runtime_dependency(%q<faraday_middleware>, [">= 0"])
|
53
53
|
s.add_runtime_dependency(%q<hashie>, [">= 0"])
|
54
|
+
s.add_runtime_dependency(%q<addressable>, [">= 0"])
|
55
|
+
s.add_runtime_dependency(%q<fastimage>, [">= 0"])
|
54
56
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
55
57
|
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
56
|
-
s.add_development_dependency(%q<bundler>, ["
|
58
|
+
s.add_development_dependency(%q<bundler>, [">= 0"])
|
57
59
|
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
58
60
|
s.add_development_dependency(%q<rspec>, [">= 0"])
|
59
61
|
else
|
@@ -62,9 +64,11 @@ Gem::Specification.new do |s|
|
|
62
64
|
s.add_dependency(%q<faraday>, [">= 0"])
|
63
65
|
s.add_dependency(%q<faraday_middleware>, [">= 0"])
|
64
66
|
s.add_dependency(%q<hashie>, [">= 0"])
|
67
|
+
s.add_dependency(%q<addressable>, [">= 0"])
|
68
|
+
s.add_dependency(%q<fastimage>, [">= 0"])
|
65
69
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
66
70
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
67
|
-
s.add_dependency(%q<bundler>, ["
|
71
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
68
72
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
69
73
|
s.add_dependency(%q<rspec>, [">= 0"])
|
70
74
|
end
|
@@ -74,9 +78,11 @@ Gem::Specification.new do |s|
|
|
74
78
|
s.add_dependency(%q<faraday>, [">= 0"])
|
75
79
|
s.add_dependency(%q<faraday_middleware>, [">= 0"])
|
76
80
|
s.add_dependency(%q<hashie>, [">= 0"])
|
81
|
+
s.add_dependency(%q<addressable>, [">= 0"])
|
82
|
+
s.add_dependency(%q<fastimage>, [">= 0"])
|
77
83
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
78
84
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
79
|
-
s.add_dependency(%q<bundler>, ["
|
85
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
80
86
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
81
87
|
s.add_dependency(%q<rspec>, [">= 0"])
|
82
88
|
end
|
data/lib/embedify.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'nokogiri'
|
2
2
|
require 'faraday'
|
3
3
|
require 'hashie'
|
4
|
+
require "addressable/uri"
|
5
|
+
require 'fastimage'
|
4
6
|
|
5
7
|
module Embedify
|
6
8
|
|
@@ -81,9 +83,37 @@ module Embedify
|
|
81
83
|
end
|
82
84
|
|
83
85
|
def self.image(document)
|
84
|
-
|
85
|
-
|
86
|
-
|
86
|
+
img_srcs = Set.new
|
87
|
+
document[:nokogiri_parsed_document].css('img').each do |img_tag|
|
88
|
+
img_srcs.add(make_absolute(img_tag.attribute('src'), document['url']))
|
89
|
+
end
|
90
|
+
if img_srcs.count > 0
|
91
|
+
document.image = Set.new
|
92
|
+
img_src_count = 1
|
93
|
+
img_srcs.each do |img_src|
|
94
|
+
dimensions = FastImage.size(img_src)
|
95
|
+
#puts "#{img_src} #{dimensions.to_s}"
|
96
|
+
document.image.add(url: img_src) if image_is_big_enough?(dimensions) && image_has_good_proportions?(dimensions)
|
97
|
+
img_src_count = img_src_count + 1
|
98
|
+
return if(img_src_count > 10)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
def self.make_absolute( href, root )
|
104
|
+
URI.parse(root).merge(URI.parse(href)).to_s
|
105
|
+
end
|
106
|
+
|
107
|
+
def self.image_is_big_enough?(dimensions)
|
108
|
+
return false if dimensions.nil?
|
109
|
+
# at least 50x50
|
110
|
+
dimensions[0] >= 50 && dimensions[1] >= 50
|
111
|
+
end
|
112
|
+
|
113
|
+
def self.image_has_good_proportions?(dimensions)
|
114
|
+
return false if dimensions.nil?
|
115
|
+
# max aspect ratio of 3:1 (one dimension is not more than 3x the other - too narrow/wide in that case)
|
116
|
+
(dimensions[0] * 3 >= dimensions[1]) && (dimensions[1] * 3 >= dimensions[0])
|
87
117
|
end
|
88
118
|
|
89
119
|
def self.description(document)
|
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.5.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -91,6 +91,38 @@ dependencies:
|
|
91
91
|
- - ! '>='
|
92
92
|
- !ruby/object:Gem::Version
|
93
93
|
version: '0'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: addressable
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
type: :runtime
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: fastimage
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
94
126
|
- !ruby/object:Gem::Dependency
|
95
127
|
name: shoulda
|
96
128
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,17 +160,17 @@ dependencies:
|
|
128
160
|
requirement: !ruby/object:Gem::Requirement
|
129
161
|
none: false
|
130
162
|
requirements:
|
131
|
-
- -
|
163
|
+
- - ! '>='
|
132
164
|
- !ruby/object:Gem::Version
|
133
|
-
version:
|
165
|
+
version: '0'
|
134
166
|
type: :development
|
135
167
|
prerelease: false
|
136
168
|
version_requirements: !ruby/object:Gem::Requirement
|
137
169
|
none: false
|
138
170
|
requirements:
|
139
|
-
- -
|
171
|
+
- - ! '>='
|
140
172
|
- !ruby/object:Gem::Version
|
141
|
-
version:
|
173
|
+
version: '0'
|
142
174
|
- !ruby/object:Gem::Dependency
|
143
175
|
name: jeweler
|
144
176
|
requirement: !ruby/object:Gem::Requirement
|
@@ -214,7 +246,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
214
246
|
version: '0'
|
215
247
|
segments:
|
216
248
|
- 0
|
217
|
-
hash:
|
249
|
+
hash: 2781018951594904065
|
218
250
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
219
251
|
none: false
|
220
252
|
requirements:
|