plumnailer 0.1.3 → 0.1.4
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.textile +31 -4
- data/lib/plumnailer/chooser.rb +14 -8
- data/plumnailer.gemspec +2 -2
- metadata +6 -6
data/README.textile
CHANGED
@@ -1,19 +1,46 @@
|
|
1
|
-
Compare all of the images on an HTML page and
|
2
|
-
|
1
|
+
Compare all of the images on an HTML page and sort them according to how well
|
2
|
+
they represent what the page is about. The top image could be used as a
|
3
|
+
thumbnail to represent the entire page.
|
4
|
+
|
5
|
+
Basic usage:
|
6
|
+
|
7
|
+
<pre>
|
8
|
+
<code>
|
9
|
+
require 'plumnailer'
|
10
|
+
|
11
|
+
chooser = Plumnailer::Chooser.new
|
12
|
+
choice = chooser.choose('http://urls.matthewm.boedicker.org/')
|
13
|
+
puts choice.source_url
|
14
|
+
|
15
|
+
choice.resize_to_fill(64, 64).write('thumb.jpg')
|
16
|
+
</code>
|
17
|
+
</pre>
|
18
|
+
|
19
|
+
Alternate fetcher that caches images on local filesystem:
|
3
20
|
|
4
21
|
<pre>
|
5
22
|
<code>
|
6
23
|
require 'plumnailer'
|
7
24
|
|
8
25
|
chooser = Plumnailer::Chooser.new
|
9
|
-
# caching fetcher is good for testing
|
10
26
|
chooser.fetcher = chooser.img_parser.fetcher =
|
11
27
|
Plumnailer::CachingFetcher.new('/tmp/plumnailer-test')
|
12
28
|
|
13
29
|
choice = chooser.choose('http://urls.matthewm.boedicker.org/')
|
14
30
|
puts choice.source_url
|
31
|
+
</code>
|
32
|
+
</pre>
|
15
33
|
|
16
|
-
|
34
|
+
Top five images:
|
35
|
+
|
36
|
+
<pre>
|
37
|
+
<code>
|
38
|
+
require 'plumnailer'
|
39
|
+
|
40
|
+
chooser = Plumnailer::Chooser.new
|
41
|
+
chooser.choose('http://urls.matthewm.boedicker.org/', :top => 5).each do |i|
|
42
|
+
puts i.source_url
|
43
|
+
end
|
17
44
|
</code>
|
18
45
|
</pre>
|
19
46
|
|
data/lib/plumnailer/chooser.rb
CHANGED
@@ -12,7 +12,12 @@ module Plumnailer
|
|
12
12
|
end
|
13
13
|
|
14
14
|
# Find the most representative image on a page.
|
15
|
-
|
15
|
+
#
|
16
|
+
# Return the best image or nil if no suitable images are found.
|
17
|
+
#
|
18
|
+
# If options[:top] is passed in return up to the top n images. If this
|
19
|
+
# option is used the the method will always return of list of size 0 to n.
|
20
|
+
def choose(url, options={})
|
16
21
|
doc_string = fetcher.fetch(url)
|
17
22
|
|
18
23
|
doc = doc_parser.parse(doc_string, url)
|
@@ -24,14 +29,15 @@ module Plumnailer
|
|
24
29
|
|
25
30
|
imgs = img_parser.parse(img_abs_urls)
|
26
31
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
img.extend @img_comparator
|
32
|
-
end
|
33
|
-
imgs.sort.first
|
32
|
+
imgs.each do |img|
|
33
|
+
# set source document on image so it can be used in comparator
|
34
|
+
img.doc = doc
|
35
|
+
img.extend @img_comparator
|
34
36
|
end
|
37
|
+
|
38
|
+
imgs.sort!
|
39
|
+
|
40
|
+
options[:top] ? imgs.first(options[:top]) : imgs.first
|
35
41
|
end
|
36
42
|
|
37
43
|
attr_accessor :fetcher
|
data/plumnailer.gemspec
CHANGED
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'plumnailer'
|
5
|
-
s.version = '0.1.
|
6
|
-
s.summary = '
|
5
|
+
s.version = '0.1.4'
|
6
|
+
s.summary = 'Rank images on an HTML page for use as a thumbnail'
|
7
7
|
s.description = s.summary
|
8
8
|
s.homepage = 'https://github.com/mmb/plumnailer'
|
9
9
|
s.authors = ['Matthew M. Boedicker']
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: plumnailer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 4
|
10
|
+
version: 0.1.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Matthew M. Boedicker
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-08-04 00:00:00 -04:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -74,7 +74,7 @@ dependencies:
|
|
74
74
|
version: "0"
|
75
75
|
type: :development
|
76
76
|
version_requirements: *id004
|
77
|
-
description:
|
77
|
+
description: Rank images on an HTML page for use as a thumbnail
|
78
78
|
email:
|
79
79
|
- matthewm@boedicker.org
|
80
80
|
executables: []
|
@@ -132,6 +132,6 @@ rubyforge_project:
|
|
132
132
|
rubygems_version: 1.5.2
|
133
133
|
signing_key:
|
134
134
|
specification_version: 3
|
135
|
-
summary:
|
135
|
+
summary: Rank images on an HTML page for use as a thumbnail
|
136
136
|
test_files: []
|
137
137
|
|