ficon 0.0.3 → 0.0.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.
- 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
|