www-favicon 0.0.5 → 0.0.6
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/Rakefile +14 -0
- data/lib/www/favicon.rb +23 -18
- metadata +22 -2
data/Rakefile
CHANGED
@@ -58,6 +58,8 @@ spec = Gem::Specification.new do |s|
|
|
58
58
|
s.test_files = Dir["test/test_*.rb"]
|
59
59
|
|
60
60
|
s.add_dependency('hpricot', '>= 0')
|
61
|
+
s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
|
62
|
+
s.add_development_dependency(%q<fakeweb>, [">= 1.2.7"])
|
61
63
|
#s.required_ruby_version = '>= 1.8.2'
|
62
64
|
|
63
65
|
s.files = %w(README.rdoc ChangeLog Rakefile) +
|
@@ -103,3 +105,15 @@ desc 'Show information about the gem.'
|
|
103
105
|
task :debug_gem do
|
104
106
|
puts spec.to_ruby
|
105
107
|
end
|
108
|
+
|
109
|
+
desc 'Test against the provided URL'
|
110
|
+
task :try do
|
111
|
+
url = ENV['URL']
|
112
|
+
raise "URL is required." unless url
|
113
|
+
|
114
|
+
require 'rubygems'
|
115
|
+
require 'www/favicon'
|
116
|
+
|
117
|
+
favicon_url = WWW::Favicon.new.find(url)
|
118
|
+
puts "Favicon URL for #{url} is #{favicon_url.inspect}"
|
119
|
+
end
|
data/lib/www/favicon.rb
CHANGED
@@ -5,11 +5,11 @@ require 'hpricot'
|
|
5
5
|
|
6
6
|
module WWW
|
7
7
|
class Favicon
|
8
|
-
VERSION = '0.0.
|
8
|
+
VERSION = '0.0.6'
|
9
9
|
|
10
10
|
def find(url)
|
11
|
-
|
12
|
-
find_from_html(
|
11
|
+
response = request(url)
|
12
|
+
find_from_html(response.body, response.request_url)
|
13
13
|
end
|
14
14
|
|
15
15
|
def find_from_html(html, url)
|
@@ -20,20 +20,14 @@ module WWW
|
|
20
20
|
favicon_url
|
21
21
|
end
|
22
22
|
|
23
|
-
def valid_favicon_url?(url
|
24
|
-
return false if limit == 0
|
25
|
-
|
23
|
+
def valid_favicon_url?(url)
|
26
24
|
response = request(url)
|
27
25
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
response.body.to_s != '' &&
|
34
|
-
response.content_type =~ /image/i
|
35
|
-
) ? true : false
|
36
|
-
end
|
26
|
+
(
|
27
|
+
response.code =~ /\A2/ &&
|
28
|
+
response.body.to_s != '' &&
|
29
|
+
response.content_type =~ /image/i
|
30
|
+
) ? true : false
|
37
31
|
end
|
38
32
|
|
39
33
|
private
|
@@ -66,7 +60,10 @@ module WWW
|
|
66
60
|
uri.to_s
|
67
61
|
end
|
68
62
|
|
69
|
-
def request(url,
|
63
|
+
def request(url, options = {})
|
64
|
+
method = options[:method] || :get
|
65
|
+
redirection_limit = options[:redirection_limit] || 10
|
66
|
+
|
70
67
|
uri = URI(url)
|
71
68
|
http = Net::HTTP.new(uri.host, uri.port)
|
72
69
|
|
@@ -75,12 +72,20 @@ module WWW
|
|
75
72
|
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
76
73
|
end
|
77
74
|
|
78
|
-
http.start do |http|
|
75
|
+
response = http.start do |http|
|
79
76
|
path =
|
80
77
|
(uri.path.empty? ? '/' : uri.path) +
|
81
78
|
(uri.query ? '?' + uri.query : '') +
|
82
79
|
(uri.fragment ? '#' + uri.fragment : '')
|
83
|
-
|
80
|
+
http.send(method, path)
|
81
|
+
end
|
82
|
+
|
83
|
+
if response.kind_of?(Net::HTTPRedirection) && redirection_limit > 0
|
84
|
+
request(response['Location'], :redirection_limit => redirection_limit - 1)
|
85
|
+
else
|
86
|
+
response.instance_variable_set('@request_url', url)
|
87
|
+
def response.request_url; @request_url; end
|
88
|
+
response
|
84
89
|
end
|
85
90
|
end
|
86
91
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: www-favicon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- youpy
|
@@ -9,7 +9,7 @@ autorequire: ""
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-11-
|
12
|
+
date: 2009-11-16 00:00:00 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -22,6 +22,26 @@ dependencies:
|
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: "0"
|
24
24
|
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rspec
|
27
|
+
type: :development
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.2.9
|
34
|
+
version:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: fakeweb
|
37
|
+
type: :development
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 1.2.7
|
44
|
+
version:
|
25
45
|
description: find favicon url
|
26
46
|
email: youpy@buycheapviagraonlinenow.com
|
27
47
|
executables: []
|