ficon 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +6 -8
- data/lib/ficon.rb +7 -5
- data/lib/ficon/version.rb +1 -1
- data/test/ficon_test.rb +12 -10
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f93ff5282fbdea68fba20fef8ec680122f0fc127
|
4
|
+
data.tar.gz: 0501155e4a2b1cff104176f78e617ef3c5f13a3a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d71449d493421e4f1068c263e74a8d5f4a6ee61b12dfe95977963e3e426737cf2a72b9edaff61ad6a1fb82f277cb53e388f14470775f623302fcc21ff9825b6d
|
7
|
+
data.tar.gz: 44889ee60225766e370e6ab4ce1946a253bdfad07738cbcba2d56e1622907dee437054c23c8cc44a0b9013eeb7576d11316fb663e82934e25fb2507be48b6a59
|
data/README.md
CHANGED
@@ -21,15 +21,13 @@ Or install it yourself as:
|
|
21
21
|
irb(main)> Ficon.from_uri "https://facebook.com"
|
22
22
|
=> ["https://www.facebook.com/images/fb_icon_325x325.png", "https://fbstatic-a.akamaihd.net/rsrc.php/yV/r/hzMapiNYYpW.ico", "https://www.facebook.com/favicon.ico"]
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
When returning a win8-tile, should probably test if there's a colour assocaited with it. EG, twitter returns:
|
27
|
-
|
28
|
-
````html
|
29
|
-
<meta name="msapplication-TileImage" content="//abs.twimg.com/favicons/win8-tile-144.png"/>
|
30
|
-
<meta name="msapplication-TileColor" content="#00aced"/>
|
31
|
-
````
|
24
|
+
Or form the shell:
|
32
25
|
|
26
|
+
$ ficon https://facebook.com
|
27
|
+
https://www.facebook.com/images/fb_icon_325x325.png
|
28
|
+
https://fbstatic-a.akamaihd.net/rsrc.php/yV/r/hzMapiNYYpW.ico
|
29
|
+
https://www.facebook.com/favicon.ico
|
30
|
+
|
33
31
|
|
34
32
|
## Contributing
|
35
33
|
|
data/lib/ficon.rb
CHANGED
@@ -53,8 +53,11 @@ module Ficon
|
|
53
53
|
|
54
54
|
probe = Net::HTTP.new(uri.host).request_head("/")
|
55
55
|
if probe.code == "301" || probe.code == "302"
|
56
|
-
|
57
|
-
|
56
|
+
new_uri = URI(probe.header["Location"])
|
57
|
+
if ! new_uri.host.nil?
|
58
|
+
uri = new_uri
|
59
|
+
uri.path = ""
|
60
|
+
end
|
58
61
|
end
|
59
62
|
|
60
63
|
results = []
|
@@ -81,12 +84,11 @@ module Ficon
|
|
81
84
|
end
|
82
85
|
|
83
86
|
doc.xpath("//meta[@property='og:image']|//meta[@name='msapplication-TileImage']|//link[@type='image/ico' or @type='image/vnd.microsoft.icon']|//link[@rel='icon' or @rel='shortcut icon' or @rel='apple-touch-icon-precomposed' or @rel='apple-touch-icon']").
|
84
|
-
collect {|e| e.values.select {|v| v =~ /\.png$|\.jpg$|\.gif$|\.ico$|\.svg
|
85
|
-
|
87
|
+
collect {|e| e.values.select {|v| v =~ /\.png$|\.jpg$|\.gif$|\.ico$|\.svg$|\.ico\?\d*$/ }}.flatten.
|
88
|
+
collect {|v| v[/^http/] || v[/^\//] ? v : '/' + v }
|
86
89
|
end
|
87
90
|
|
88
91
|
def self.normalise(base, candidate)
|
89
|
-
#candidate = '/' + candidate unless candidate[/^\//]
|
90
92
|
parsed_candidate = URI(candidate);
|
91
93
|
|
92
94
|
parsed_candidate.host = base.host if parsed_candidate.host.nil? # Set relative URLs to absolute
|
data/lib/ficon/version.rb
CHANGED
data/test/ficon_test.rb
CHANGED
@@ -16,17 +16,19 @@ require 'ficon'
|
|
16
16
|
Tests << { html: %Q{<link rel="apple-touch-icon-precomposed" sizes="114x114" href="/wp-content/themes/torrentfreakredux/assets/img/icons/114.png">}, value: '/wp-content/themes/torrentfreakredux/assets/img/icons/114.png' }
|
17
17
|
Tests << { html: %Q{<link rel="apple-touch-icon-precomposed" sizes="72x72" href="/wp-content/themes/torrentfreakredux/assets/img/icons/72.png">}, value: '/wp-content/themes/torrentfreakredux/assets/img/icons/72.png' }
|
18
18
|
Tests << { html: %Q{<link rel="apple-touch-icon-precomposed" sizes="144x144" href="/wp-content/themes/torrentfreakredux/assets/img/icons/144.png">}, value: '/wp-content/themes/torrentfreakredux/assets/img/icons/144.png' }
|
19
|
-
Tests << { html: %Q{<link rel="shortcut icon" href="/favicon.png">},
|
20
|
-
Tests << { html: %Q{<link rel="shortcut icon" href="favicon.ico" />},
|
21
|
-
Tests << { html: %Q{<link rel="apple-touch-icon" href="/apple-touch-icon.png">},
|
22
|
-
Tests << { html: %Q{<link rel="shortcut icon" href="http://example.com/myicon.ico" />},
|
23
|
-
Tests << { html: %Q{<link rel="icon" href="http://example.com/image.ico" />},
|
24
|
-
Tests << { html: %Q{<link rel="icon" type="image/vnd.microsoft.icon" href="http://example.com/image.ico" />},
|
25
|
-
Tests << { html: %Q{<link rel="icon" type="image/png" href="http://example.com/image.png" />},
|
26
|
-
Tests << { html: %Q{<link rel="icon" type="image/gif" href="http://example.com/image.gif" />},
|
27
|
-
Tests << { html: %Q{<link rel="icon" type="image/x-icon" href="http://example.com/image.ico"/>},
|
19
|
+
Tests << { html: %Q{<link rel="shortcut icon" href="/favicon.png">}, value: '/favicon.png' }
|
20
|
+
Tests << { html: %Q{<link rel="shortcut icon" href="favicon.ico" />}, value: '/favicon.ico' }
|
21
|
+
Tests << { html: %Q{<link rel="apple-touch-icon" href="/apple-touch-icon.png">}, value: '/apple-touch-icon.png' }
|
22
|
+
Tests << { html: %Q{<link rel="shortcut icon" href="http://example.com/myicon.ico" />}, value: 'http://example.com/myicon.ico'}
|
23
|
+
Tests << { html: %Q{<link rel="icon" href="http://example.com/image.ico" />}, value: 'http://example.com/image.ico' }
|
24
|
+
Tests << { html: %Q{<link rel="icon" type="image/vnd.microsoft.icon" href="http://example.com/image.ico" />}, value: 'http://example.com/image.ico' }
|
25
|
+
Tests << { html: %Q{<link rel="icon" type="image/png" href="http://example.com/image.png" />}, value: 'http://example.com/image.png' }
|
26
|
+
Tests << { html: %Q{<link rel="icon" type="image/gif" href="http://example.com/image.gif" />}, value: 'http://example.com/image.gif' }
|
27
|
+
Tests << { html: %Q{<link rel="icon" type="image/x-icon" href="http://example.com/image.ico"/>}, value: 'http://example.com/image.ico' }
|
28
28
|
Tests << { html: %Q{<link rel="shortcut icon" href="https://fbstatic-a.akamaihd.net/rsrc.php/yl/r/H3nktOa7ZMg.ico" />}, value: 'https://fbstatic-a.akamaihd.net/rsrc.php/yl/r/H3nktOa7ZMg.ico' }
|
29
|
-
Tests << { html: %Q{<meta property="og:image" content="https://www.facebook.com/images/fb_icon_325x325.png" />},
|
29
|
+
Tests << { html: %Q{<meta property="og:image" content="https://www.facebook.com/images/fb_icon_325x325.png" />}, value: 'https://www.facebook.com/images/fb_icon_325x325.png' }
|
30
|
+
Tests << { html: %Q{<link rel="icon" type="image/vnd.microsoft.icon" href="/viconline/img/favicon.ico?1393375504" />}, value: '/viconline/img/favicon.ico?1393375504' }
|
31
|
+
Tests << { html: %Q{<link rel="shortcut icon" type="image/x-icon" href="/viconline/img/favicon.ico?1393375504" />}, value: '/viconline/img/favicon.ico?1393375504' }
|
30
32
|
|
31
33
|
|
32
34
|
class FiconTest < Test::Unit::TestCase
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ficon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Milne
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-12-
|
11
|
+
date: 2014-12-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|