unshorten 0.3.1 → 0.3.2

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 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: