unshorten 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d6329c6a3dd7b90a2b2eed9cf4453a71ccf5f867
4
- data.tar.gz: a2240e636da07934700d6be5907e4bb1f6873329
3
+ metadata.gz: 786f091853e66b01791b84ea4e1dae0fb45e0966
4
+ data.tar.gz: 533d25ed2aceed116ebbc6f682c533f00f6357b2
5
5
  SHA512:
6
- metadata.gz: 4737f041e8f4860a77774c43eb12f1f4e8de3405223928c6e8b69eb806c79e8f1b027aa8ce7083ff70901c496bd3e6bc6487851d551646bc80f9bf88c76942eb
7
- data.tar.gz: e5c4b34c62a1589a9496c291aa27edfc7ab5b93b02b2713c184c5ea01a453699c7a03d9be7f0fcbbcab3b77e23d61211f1f0b4852a62aadd93a10737b5bc5d34
6
+ metadata.gz: 0be3b4e703d81938bb376198d44f95db28ce3d18f4434d235bac00b91aeea3a29ce767ef7876314b96ca1f8e6f9c89fff0f60f35c1c31a43a40ee942742fc4c7
7
+ data.tar.gz: 987b63583edf60f3dd90046efb29ee7b6ede8f02b174ee0e0e6a7e2e7c397731ed43d806fd834a792350d6d69fe97ebe7e0a299f4d58000111a855b6ff0753ad
@@ -1,9 +1,10 @@
1
1
  require 'net/http'
2
2
  require 'net/https'
3
3
  require 'uri'
4
+ require 'version'
4
5
 
5
6
  # Get original URLs from shortened ones.
6
- class Unshorten
7
+ module Unshorten
7
8
  # Cache entities limit
8
9
  CACHE_SIZE_LIMIT = 1024
9
10
 
@@ -84,9 +85,9 @@ class Unshorten
84
85
  http.read_timeout = options[:timeout]
85
86
  http.use_ssl = true if uri.scheme == "https"
86
87
 
87
- if uri.path.present? && uri.query.present?
88
+ if uri.path && uri.query
88
89
  response = http.request_head("#{uri.path}?#{uri.query}") rescue nil
89
- elsif uri.path.present? && !uri.query
90
+ elsif uri.path && !uri.query
90
91
  response = http.request_head(uri.path) rescue nil
91
92
  else
92
93
  response = http.request_head('/') rescue nil
@@ -94,7 +95,7 @@ class Unshorten
94
95
 
95
96
  if response.is_a? Net::HTTPRedirection and response['location'] then
96
97
  expire_cache if @@cache.size > CACHE_SIZE_LIMIT
97
- location = response['location']
98
+ location = URI.encode(response['location'])
98
99
  location = (uri + location).to_s if location
99
100
  @@cache[url] = follow(location, options, level + 1)
100
101
  else
@@ -0,0 +1,3 @@
1
+ module Unshorten
2
+ VERSION = '0.3.2'
3
+ end
@@ -16,6 +16,12 @@ class UnshortenTest < MiniTest::Test
16
16
  assert_equal illegal_url, Unshorten.unshorten(illegal_url, :use_cache => false)
17
17
  end
18
18
 
19
+ def test_illegal_url_results
20
+ shortened_url = 'http://bit.ly/1r904rG'
21
+ original_url = 'http://www.fwi.co.uk/articles/02/09/2014/146471/willow-diversification-secures-beef-farm39s-future.htm?cmpid=SOC|Twitter|FarmersWeekly|sf4488038|sf4488038'
22
+ assert_equal URI.encode(original_url), Unshorten.unshorten(shortened_url, :use_cache => false)
23
+ end
24
+
19
25
  def test_option_max_level
20
26
  assert_equal SHORTENED_URL, Unshorten.unshorten(SHORTENED_URL, :max_level => 0, :use_cache => false)
21
27
  end
@@ -46,7 +52,7 @@ class UnshortenTest < MiniTest::Test
46
52
  end
47
53
 
48
54
  def test_relative_url
49
- assert_equal 'http://waterpigs.co.uk/articles/getting-started-with-microformats2/', Unshorten.unshorten('http://bit.ly/1l1Dz6K', :short_urls => nil, :use_cache => false)
55
+ assert_equal 'http://waterpigs.co.uk/articles/getting-started-with-microformats2/?utm_content=buffer79474&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer', Unshorten.unshorten('http://bit.ly/1l1Dz6K', :short_urls => nil, :use_cache => false)
50
56
  end
51
57
 
52
58
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unshorten
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jun Wu
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '5.3'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '5.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '10.1'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '10.1'
41
41
  description: Get original URLs from shortened ones
42
42
  email: quark@lihdd.net
43
43
  executables:
@@ -47,6 +47,7 @@ extra_rdoc_files: []
47
47
  files:
48
48
  - bin/unshorten
49
49
  - lib/unshorten.rb
50
+ - lib/version.rb
50
51
  - test/test_unshorten.rb
51
52
  homepage: https://github.com/quark-zju/unshorten
52
53
  licenses: