url_hunter 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -1,6 +1,15 @@
1
- require "bundler/gem_tasks"
1
+ require 'rubygems'
2
+ require 'bundler/gem_tasks'
3
+ require 'rspec/core/rake_task'
2
4
 
3
5
  desc "Open a shell with local libraries loaded"
4
6
  task :shell do
5
- exec "irb -I #{File.expand_path('../lib', __FILE__)} -r url_hunter"
7
+ exec "bundle exec irb -r url_hunter"
6
8
  end
9
+
10
+ desc "Run specs"
11
+ RSpec::Core::RakeTask.new do |t|
12
+ t.rspec_opts = %w(-fs --color)
13
+ end
14
+
15
+ task :default => :spec
data/Readme.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Before I go anywhere with you, I want to know where you're taking me
4
4
 
5
- ### Quick Reoslve ###
5
+ ### Quick Resolve ###
6
6
  require 'url_hunter'
7
7
  UrlHunter.resolve 'http://bit.ly/2SnEZb'
8
8
  => "http://www.microsoft.com/en-us/default.aspx"
@@ -2,7 +2,7 @@ require 'uri'
2
2
  require 'net/http'
3
3
 
4
4
  class UrlHunter
5
- VERSION = "0.0.1"
5
+ VERSION = "0.0.2"
6
6
  class Error < StandardError; end
7
7
 
8
8
  attr_reader :url, :original_url, :limit, :tries
@@ -42,7 +42,7 @@ class UrlHunter
42
42
  redirect = res['Location']
43
43
  # Append Location re-direct to previous URL if it's relative
44
44
  if not redirect =~ /^(http|https):\/\//i
45
- redirect = @url + redirect
45
+ redirect = u.scheme + '://' + u.hostname + redirect
46
46
  end
47
47
  @url = redirect
48
48
  @tries += 1
@@ -0,0 +1,2 @@
1
+ $:.unshift File.expand_path('../../lib',__FILE__)
2
+ require 'url_hunter'
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe UrlHunter, '#resolve' do
4
+ it "Should require http:// or https:// prefixes" do
5
+ lambda { UrlHunter.resolve('no_prefix') }.should raise_error(UrlHunter::Error)
6
+ end
7
+
8
+ it "Should resolve bit.ly urls pretty well" do
9
+ UrlHunter.resolve('http://bit.ly/DhAoX').should eq('http://www.apple.com/')
10
+ end
11
+
12
+ it "Should resolve the bit.ly url for http://www.apple.com/ in one try" do
13
+ u = UrlHunter.new('http://bit.ly/DhAoX')
14
+ u.resolve.should eq('http://www.apple.com/')
15
+ u.tries.should eq(1)
16
+ end
17
+
18
+ it "Should handle relative paths mixed in Location tags" do
19
+ u = UrlHunter.new('http://flic.kr/p/bBqyXJ')
20
+ u.resolve.should_not include('bBqyXJ')
21
+ end
22
+ end
@@ -17,4 +17,5 @@ Gem::Specification.new do |s|
17
17
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
18
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
19
  s.require_paths = ["lib"]
20
+ s.add_development_dependency('rspec')
20
21
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: url_hunter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,8 +9,19 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-03 00:00:00.000000000 Z
13
- dependencies: []
12
+ date: 2012-04-26 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rspec
16
+ requirement: &70161664070420 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *70161664070420
14
25
  description: Wait a minute, before I go anywhere with you, I want to know where you're
15
26
  taking me.
16
27
  email:
@@ -24,6 +35,8 @@ files:
24
35
  - Rakefile
25
36
  - Readme.md
26
37
  - lib/url_hunter.rb
38
+ - spec/spec_helper.rb
39
+ - spec/url_hunter_spec.rb
27
40
  - url_hunter.gemspec
28
41
  homepage: https://github.com/bshelton229/url_hunter
29
42
  licenses: []
@@ -49,4 +62,6 @@ rubygems_version: 1.8.11
49
62
  signing_key:
50
63
  specification_version: 3
51
64
  summary: Resolves URL re-directs given a limit
52
- test_files: []
65
+ test_files:
66
+ - spec/spec_helper.rb
67
+ - spec/url_hunter_spec.rb