unshorten 0.1.2 → 0.1.3
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/lib/unshorten.rb +3 -3
- data/test/test_unshorten.rb +8 -0
- metadata +1 -1
data/lib/unshorten.rb
CHANGED
@@ -11,7 +11,7 @@ class Unshorten
|
|
11
11
|
DEFAULT_OPTIONS = {
|
12
12
|
:max_level => 10,
|
13
13
|
:timeout => 2,
|
14
|
-
:short_hosts =>
|
14
|
+
:short_hosts => Regexp.union('url', /^[^.]{1,6}\.[^.]{1,2}$/i),
|
15
15
|
:use_cache => true,
|
16
16
|
:add_missing_http => true
|
17
17
|
}
|
@@ -68,9 +68,9 @@ class Unshorten
|
|
68
68
|
return @@cache[url] if options[:use_cache] and @@cache[url]
|
69
69
|
return url if level >= options[:max_level]
|
70
70
|
|
71
|
-
uri = URI.parse(url)
|
71
|
+
uri = URI.parse(url) rescue nil
|
72
72
|
|
73
|
-
return url
|
73
|
+
return url if uri.nil? or not uri.host =~ options[:short_hosts]
|
74
74
|
|
75
75
|
http = Net::HTTP.new(uri.host, uri.port)
|
76
76
|
http.read_timeout = options[:timeout]
|
data/test/test_unshorten.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
1
3
|
require 'test/unit'
|
2
4
|
require 'unshorten'
|
3
5
|
|
@@ -9,6 +11,11 @@ class UnshortenTest < Test::Unit::TestCase
|
|
9
11
|
assert_equal ORIGINAL_URL, Unshorten[SHORTENED_URL, :use_cache => false]
|
10
12
|
end
|
11
13
|
|
14
|
+
def test_illegal_urls
|
15
|
+
illegal_url = 'http://a汉字bc.那么/是非法的?url'
|
16
|
+
assert_equal illegal_url, Unshorten.unshorten(illegal_url, :use_cache => false)
|
17
|
+
end
|
18
|
+
|
12
19
|
def test_option_max_level
|
13
20
|
assert_equal SHORTENED_URL, Unshorten.unshorten(SHORTENED_URL, :max_level => 0, :use_cache => false)
|
14
21
|
end
|
@@ -16,4 +23,5 @@ class UnshortenTest < Test::Unit::TestCase
|
|
16
23
|
def test_option_short_hosts
|
17
24
|
assert_equal SHORTENED_URL, Unshorten.unshorten(SHORTENED_URL, :short_hosts => /jmp/, :use_cache => false)
|
18
25
|
end
|
26
|
+
|
19
27
|
end
|