unwind 0.9.4 → 0.9.5
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/lib/unwind/version.rb +1 -1
- data/lib/unwind.rb +9 -0
- data/test/redirect_follower_test.rb +8 -0
- data/vcr_cassettes/meta_refresh.yml +196 -0
- metadata +10 -9
data/.gitignore
CHANGED
data/lib/unwind/version.rb
CHANGED
data/lib/unwind.rb
CHANGED
@@ -33,6 +33,10 @@ module Unwind
|
|
33
33
|
@redirects << current_url.to_s
|
34
34
|
@redirect_limit -= 1
|
35
35
|
resolve(redirect_url(response).normalize, apply_cookie(response, headers))
|
36
|
+
elsif response.status == 200 && meta_uri = meta_refresh?(response)
|
37
|
+
@redirects << current_url.to_s
|
38
|
+
@redirect_limit -= 1
|
39
|
+
resolve(meta_uri.normalize, apply_cookie(response, headers))
|
36
40
|
else
|
37
41
|
@final_url = current_url.to_s
|
38
42
|
@response = response
|
@@ -63,6 +67,11 @@ module Unwind
|
|
63
67
|
end
|
64
68
|
end
|
65
69
|
|
70
|
+
def meta_refresh?(response)
|
71
|
+
body_match = response.body.match(/<meta http-equiv=\"refresh\" content=\"0; URL=(.*)\">/i)
|
72
|
+
body_match ? Addressable::URI.parse(body_match[1]) : false
|
73
|
+
end
|
74
|
+
|
66
75
|
def apply_cookie(response, headers)
|
67
76
|
if response.status == 302 && response['set-cookie']
|
68
77
|
headers.merge(:cookie => CookieHash.to_cookie_string(response['set-cookie']))
|
@@ -91,5 +91,13 @@ describe Unwind::RedirectFollower do
|
|
91
91
|
missing_redirect_location.must_raise Unwind::MissingRedirectLocation
|
92
92
|
end
|
93
93
|
end
|
94
|
+
|
95
|
+
it 'should handle a meta-refresh' do
|
96
|
+
VCR.use_cassette('meta refresh') do
|
97
|
+
follower = Unwind::RedirectFollower.resolve('http://www.nullrefer.com/?www.google.com')
|
98
|
+
assert follower.redirected?
|
99
|
+
assert_equal 'http://www.google.com/', follower.final_url
|
100
|
+
end
|
101
|
+
end
|
94
102
|
|
95
103
|
end
|
@@ -0,0 +1,196 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
|
+
method: :get
|
5
|
+
uri: http://www.nullrefer.com:80/?www.google.com
|
6
|
+
body:
|
7
|
+
headers:
|
8
|
+
accept-encoding:
|
9
|
+
- none
|
10
|
+
response: !ruby/struct:VCR::Response
|
11
|
+
status: !ruby/struct:VCR::ResponseStatus
|
12
|
+
code: 200
|
13
|
+
message: OK
|
14
|
+
headers:
|
15
|
+
date:
|
16
|
+
- Fri, 24 Feb 2012 16:20:02 GMT
|
17
|
+
server:
|
18
|
+
- Apache
|
19
|
+
x-powered-by:
|
20
|
+
- PHP/5.2.17
|
21
|
+
transfer-encoding:
|
22
|
+
- chunked
|
23
|
+
content-type:
|
24
|
+
- text/html
|
25
|
+
body: ! "\n<html>\n<head>\n<title>NullRefer.com Anonym Link</title>\n<meta http-equiv=\"refresh\"
|
26
|
+
content=\"0; URL=http://www.google.com\">\n<meta http-equiv=\"Content-Type\"
|
27
|
+
content=\"text/html; charset=iso-8859-1\">\n\n\n<script type=\"text/javascript\"
|
28
|
+
language=\"javascript\">\nvar sc_project=2152146; \nvar sc_invisible=1; \nvar
|
29
|
+
sc_partition=19; \nvar sc_security=\"26edb118\"; \n</script><script type=\"text/javascript\"
|
30
|
+
language=\"javascript\" src=\"http://www.statcounter.com/counter/counter.js\"></script><noscript></noscript>"
|
31
|
+
http_version: '1.1'
|
32
|
+
- !ruby/struct:VCR::HTTPInteraction
|
33
|
+
request: !ruby/struct:VCR::Request
|
34
|
+
method: :get
|
35
|
+
uri: http://www.google.com:80/
|
36
|
+
body:
|
37
|
+
headers:
|
38
|
+
accept-encoding:
|
39
|
+
- none
|
40
|
+
response: !ruby/struct:VCR::Response
|
41
|
+
status: !ruby/struct:VCR::ResponseStatus
|
42
|
+
code: 200
|
43
|
+
message: OK
|
44
|
+
headers:
|
45
|
+
date:
|
46
|
+
- Fri, 24 Feb 2012 16:20:04 GMT
|
47
|
+
expires:
|
48
|
+
- '-1'
|
49
|
+
cache-control:
|
50
|
+
- private, max-age=0
|
51
|
+
content-type:
|
52
|
+
- text/html; charset=ISO-8859-1
|
53
|
+
set-cookie:
|
54
|
+
- PREF=ID=c35c457ba1034ad8:FF=0:TM=1330100404:LM=1330100404:S=lhN2U2Vz0pOWcQvU;
|
55
|
+
expires=Sun, 23-Feb-2014 16:20:04 GMT; path=/; domain=.google.com
|
56
|
+
- NID=57=eAKoTays7Ul9ah-ODoVlC20v-kk0VTIiZdEZOwA9dH2Z7Ba-AFdenK4hJP5r4IYmENFgCWnft9Zv1rHA3dvpVmOanZV3yM7Cwjel8GOblGfl99WLXXFuvwNyCS1zil1n;
|
57
|
+
expires=Sat, 25-Aug-2012 16:20:04 GMT; path=/; domain=.google.com; HttpOnly
|
58
|
+
p3p:
|
59
|
+
- CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657
|
60
|
+
for more info."
|
61
|
+
server:
|
62
|
+
- gws
|
63
|
+
x-xss-protection:
|
64
|
+
- 1; mode=block
|
65
|
+
x-frame-options:
|
66
|
+
- SAMEORIGIN
|
67
|
+
body: ! '<!doctype html><html itemscope itemtype="http://schema.org/WebPage"><head><meta
|
68
|
+
http-equiv="content-type" content="text/html; charset=ISO-8859-1"><meta name="description"
|
69
|
+
content="Search the world's information, including webpages, images, videos
|
70
|
+
and more. Google has many special features to help you find exactly what you're
|
71
|
+
looking for."><meta name="robots" content="noodp"><meta itemprop="image" content="/images/google_favicon_128.png"><title>Google</title><script>window.google={kEI:"tLhHT-XBA-Xg0QGwpfDqDQ",getEI:function(a){var
|
72
|
+
d;while(a&&!(a.getAttribute&&(d=a.getAttribute("eid"))))a=a.parentNode;return
|
73
|
+
d||google.kEI},https:function(){return window.location.protocol=="https:"},kEXPI:"33551,34904,35055,36604,36683,36801,36903,36946,37007,37017",kCSI:{e:"33551,34904,35055,36604,36683,36801,36903,36946,37007,37017",ei:"tLhHT-XBA-Xg0QGwpfDqDQ"},authuser:0,
|
74
|
+
|
75
|
+
ml:function(){},kHL:"en",time:function(){return(new Date).getTime()},log:function(a,d,f,h){var
|
76
|
+
e=new Image,g=google,k=g.lc,i=g.li,m="";e.onerror=(e.onload=(e.onabort=function(){delete
|
77
|
+
k[i]}));k[i]=e;if(!f&&d.search("&ei=")==-1)m="&ei="+google.getEI(h);var j=f||"/gen_204?atyp=i&ct="+a+"&cad="+d+m+"&zx="+google.time(),b=/^http:/i;if(b.test(j)&&google.https()){google.ml(new
|
78
|
+
Error("GLMM"),false,{src:j});
|
79
|
+
|
80
|
+
delete k[i];return}e.src=j;g.li=i+1},lc:[],li:0,Toolbelt:{},y:{},x:function(a,d){google.y[a.id]=
|
81
|
+
|
82
|
+
[a,d];return false}};(function(){var a=
|
83
|
+
|
84
|
+
google.kEI;window.pp_tos={};var d=document.domain.replace(/.*?(google\..*)/,"$1");function
|
85
|
+
f(){var b=0;try{var c=document.cookie.match(/PP_TOS_ACK=([^;]*)/);b=c&&!isNaN(c[1])?c[1]:0}catch(l){e("error","read_cookie")}return
|
86
|
+
b}function h(b){var c=f();if(c>=0){g(++c);if(f()>0&&!b)m()}}function e(b,c){var
|
87
|
+
l=new Image;c=c?"&emsg="+c:"";l.src=["//",d,"/gen_204?atyp=i&ct=pp_tos&cd=",b,"&source=","web","&ei=",a,c].join("");window.pp_tos.beacon=l}function
|
88
|
+
g(b){var c=new Date((new Date).getTime()+5184000000);
|
89
|
+
|
90
|
+
try{var l="PP_TOS_ACK="+b+"; expires="+c.toGMTString()+"; path=/; domain="+d;document.cookie=l}catch(n){e("error","write_cookie")}}function
|
91
|
+
k(){g(-1);e("dismiss");j()}function i(){g(-1);e("tellmore");j()}function m(){var
|
92
|
+
b=document.getElementById("bb_pp_tos_ack");if(b){b.style.display="";e("display")}}function
|
93
|
+
j(){var b=document.getElementById("bb_pp_tos_ack");if(b)b.style.display="none"}window.pp_tos.handleDismiss=k;window.pp_tos.handleLearnMore=i;window.pp_tos.checkCookie=h})();
|
94
|
+
|
95
|
+
window.google.sn="webhp";window.google.timers={};window.google.startTick=function(a,b){window.google.timers[a]={t:{start:(new
|
96
|
+
Date).getTime()},bfr:!(!b)}};window.google.tick=function(a,b,c){if(!window.google.timers[a])google.startTick(a);window.google.timers[a].t[b]=c||(new
|
97
|
+
Date).getTime()};google.startTick("load",true);try{}catch(u){}
|
98
|
+
|
99
|
+
var _gjwl=location;function _gjuc(){var e=_gjwl.href.indexOf("#");if(e>=0){var
|
100
|
+
a=_gjwl.href.substring(e);if(a.indexOf("&q=")>0||a.indexOf("#q=")>=0){a=a.substring(1);if(a.indexOf("#")==-1){for(var
|
101
|
+
c=0;c<a.length;){var d=c;if(a.charAt(d)=="&")++d;var b=a.indexOf("&",d);if(b==-1)b=a.length;var
|
102
|
+
f=a.substring(d,b);if(f.indexOf("fp=")==0){a=a.substring(0,c)+a.substring(b,a.length);b=c}else
|
103
|
+
if(f=="cad=h")return 0;c=b}_gjwl.href="/search?"+a+"&cad=h";return 1}}}return
|
104
|
+
0}function _gjp(){!(window._gjwl.hash&&
|
105
|
+
|
106
|
+
window._gjuc())&&setTimeout(_gjp,500)};
|
107
|
+
|
108
|
+
window._gjp && _gjp()</script><style>#gbar,#guser{font-size:13px;padding-top:1px
|
109
|
+
!important;}#gbar{height:22px}#guser{padding-bottom:7px !important;text-align:right}.gbh,.gbd{border-top:1px
|
110
|
+
solid #c9d7f1;font-size:1px}.gbh{height:0;position:absolute;top:24px;width:100%}@media
|
111
|
+
all{.gb1{height:22px;margin-right:.5em;vertical-align:top}#gbar{float:left}}a.gb1,a.gb4{text-decoration:underline
|
112
|
+
!important}a.gb1,a.gb4{color:#00c !important}</style><style id=gstyle>body{margin:0;overflow-y:scroll}#gog{padding:3px
|
113
|
+
8px 0}td{line-height:.8em}.gac_m td{line-height:17px}form{margin-bottom:20px}body,td,a,p,.h{font-family:arial,sans-serif}.h{color:#36c;font-size:20px}.q{color:#00c}.ts
|
114
|
+
td{padding:0}.ts{border-collapse:collapse}em{font-weight:bold;font-style:normal}.lst{height:25px;width:496px}.gsfi,.lst{font:18px
|
115
|
+
arial,sans-serif}.gsfs{font:17px arial,sans-serif}.ds{border-bottom:solid 1px
|
116
|
+
#e7e7e7;border-right:solid 1px #e7e7e7;display:-moz-inline-box;display:inline-block;margin:3px
|
117
|
+
0 4px;margin-left:4px}input{font-family:inherit}a.gb1,a.gb2,a.gb3,a.gb4{color:#11c
|
118
|
+
!important}body{background:#fff;color:black}a{color:#11c;text-decoration:none}a:hover,a:active{text-decoration:underline}.fl
|
119
|
+
a{color:#36c}a:visited{color:#551a8b}a.gb1,a.gb4{text-decoration:underline}a.gb3:hover{text-decoration:none}#ghead
|
120
|
+
a.gb2:hover{color:#fff!important}.sblc{padding-top:5px}.sblc a{display:block;margin:2px
|
121
|
+
0;margin-left:13px;font-size:11px;}.lsbb{background:#eee;border:solid 1px;border-color:#ccc
|
122
|
+
#999 #999 #ccc;height:30px;display:block}.pp-new-desktop,.pp-new-mobile{color:red}.ftl,#fll
|
123
|
+
a{display:inline-block;margin:0 12px}.lsb{background:url(/images/srpr/nav_logo80.png)
|
124
|
+
0 -258px repeat-x;border:none;color:#000;cursor:pointer;height:30px;margin:0;outline:0;font:15px
|
125
|
+
arial,sans-serif;vertical-align:top}.lsb:active{background:#ccc}.lst:focus{outline:none}#addlang
|
126
|
+
a{padding:0 3px}.gac_v div{display:none}.gac_v .gac_v2,.gac_bt{display:block!important}table.gssb_c{z-index:986 }.nbcl{background:url(/images/srpr/nav_logo80.png)
|
127
|
+
no-repeat ;height:px;width:px}</style><script>window.rwt=function(a,f,g,l,m,h,c,n,i){try{if(a===window){a=window.event.srcElement;while(a){if(a.href)break;a=a.parentNode}}var
|
128
|
+
b=encodeURIComponent||escape,d;d=a.getAttribute("href");if(c&&c.substring(0,6)!="&sig2=")c="&sig2="+c;var
|
129
|
+
o=["/url?sa=t","","&cd=",b(m),i?"&authuser="+b(i):"",google.j&&google.j.pf?"&sqi=2":"","&ved=",b(n),"&url=",b(d).replace(/\+/g,"%2B"),"&ei=","tLhHT-XBA-Xg0QGwpfDqDQ",h?"&usg="+h:"",c].join("");a.href=o;a.onmousedown=""}catch(p){}return
|
130
|
+
true};
|
131
|
+
|
132
|
+
</script></head><body bgcolor=#ffffff text=#000000 link=#0000cc vlink=#551a8b
|
133
|
+
alink=#ff0000 onload="document.f&&document.f.q.focus();document.gbqf&&document.gbqf.q.focus();if(document.images)new
|
134
|
+
Image().src=''/images/srpr/nav_logo80.png''" ><textarea id=csi style=display:none></textarea><div
|
135
|
+
id=mngb><div id=gbar><nobr><b class=gb1>Search</b> <a class=gb1 href="http://www.google.com/imghp?hl=en&tab=wi">Images</a>
|
136
|
+
<a class=gb1 href="http://video.google.com/?hl=en&tab=wv">Videos</a> <a class=gb1
|
137
|
+
href="http://maps.google.com/maps?hl=en&tab=wl">Maps</a> <a class=gb1 href="http://news.google.com/nwshp?hl=en&tab=wn">News</a>
|
138
|
+
<a class=gb1 href="http://www.google.com/shopping?hl=en&tab=wf">Shopping</a>
|
139
|
+
<a class=gb1 href="https://mail.google.com/mail/?tab=wm">Gmail</a> <a class=gb1
|
140
|
+
style="text-decoration:none" href="http://www.google.com/intl/en/options/"><u>More</u>
|
141
|
+
»</a></nobr></div><div id=guser width=100%><nobr><span id=gbn class=gbi></span><span
|
142
|
+
id=gbf class=gbf></span><span id=gbe><a href="/url?sa=p&pref=ig&pval=3&q=http://www.google.com/ig%3Fhl%3Den%26source%3Diglk&usg=AFQjCNFA18XPfgb7dKnXfKz7x7g1GDH1tg"
|
143
|
+
class=gb4>iGoogle</a> | </span><a href="http://www.google.com/history/optout?hl=en"
|
144
|
+
class=gb4>Web History</a> | <a href="/preferences?hl=en" class=gb4>Settings</a>
|
145
|
+
| <a id=gb_70 href="https://accounts.google.com/ServiceLogin?hl=en&continue=http://www.google.com/"
|
146
|
+
class=gb4>Sign in</a></nobr></div><div class=gbh style=left:0></div><div class=gbh
|
147
|
+
style=right:0></div></div><iframe name=wgjf style=display:none></iframe><center><br
|
148
|
+
clear=all id=lgpd><div id=lga><img alt="Google" height=95 id=hplogo src="/intl/en_ALL/images/srpr/logo1w.png"
|
149
|
+
width=275 style="padding:28px 0 14px" onload="window.lol&&lol()"><br><br></div><form
|
150
|
+
action="/search" name=f><table cellpadding=0 cellspacing=0><tr valign=top><td
|
151
|
+
width=25%> </td><td align=center nowrap><input name=hl type=hidden value=en><input
|
152
|
+
name=source type=hidden value=hp><input type=hidden name=ie value="ISO-8859-1"><div
|
153
|
+
class=ds style="height:32px;margin:4px 0"><input autocomplete=off maxlength=2048
|
154
|
+
name=q class="lst" title="Google Search" value="" size=57 style="background:#fff;border:1px
|
155
|
+
solid #ccc;border-bottom-color:#999;border-right-color:#999;color:#000;margin:0;padding:5px
|
156
|
+
8px 0 6px;vertical-align:top"></div><br style="line-height:0"><span class=ds
|
157
|
+
><span class=lsbb><input name=btnG type=submit value="Google Search" class=lsb></span></span><span
|
158
|
+
class=ds><span class=lsbb><input name=btnI type=submit class=lsb value="I'm
|
159
|
+
Feeling Lucky"></span></span></td><td nowrap width=25% align=left class="fl
|
160
|
+
sblc"><a href="/advanced_search?hl=en">Advanced search</a><a href="/language_tools?hl=en">Language
|
161
|
+
tools</a></td></tr></table><input type=hidden id=gbv name=gbv value="1"></form><div
|
162
|
+
style="font-size:83%;min-height:3.5em"><br></div><div id=res></div><span id=footer><center
|
163
|
+
id=fctr><div style="font-size:10pt"><div id=fll style="margin:19px auto;text-align:center"><a
|
164
|
+
href="/intl/en/ads/">Advertising Programs</a><a href="/services/">Business
|
165
|
+
Solutions</a><a href="https://plus.google.com/116899029375914044550" rel="publisher">+Google</a><a
|
166
|
+
href="/intl/en/about.html">About Google</a></div></div><p style="color:#767676;font-size:8pt">©
|
167
|
+
2012 - <a href="/intl/en/privacy.html">Privacy</a></p></center></span> </center><div
|
168
|
+
id=xjsd></div><div id=xjsi><script>if(google.y)google.y.first=[];google.dlj=function(b){window.setTimeout(function(){var
|
169
|
+
a=document.createElement("script");a.src=b;document.getElementById("xjsd").appendChild(a)},0)};
|
170
|
+
|
171
|
+
if(google.y)google.y.first=[];if(!google.xjs){google.dstr=[];google.rein=[];if(google.timers&&google.timers.load.t){google.timers.load.t.xjsls=new
|
172
|
+
Date().getTime();}google.dlj(''/extern_js/f/CgJlbhICdXMgACswRTgALCswWjgALCswDjgALCswFzgALCswPDgALCswUTgALCswCjgAmgICaGUsKzCYATgALCswFjgALCswGTgALCswQTgALCswTTgALCswTjgALCswVDgALCswaTgALCswkAE4ACwrMJIBOAAsKzCsATgALCsw1QE4ACwrMNgBOAAsKzAYOAAsKzAmOAAsgAJQkAJn/YIh1f-gTMsw.js'');google.xjs=1}google.neegg=1;google.mc=[];google.mc=google.mc.concat([[69,{}],[14,{}],[60,{}],[23,{}],[81,{}],[10,{"client":"hp","dh":true,"ds":"","fl":true,"host":"google.com","jsonp":true,"msgs":{"lcky":"I\u0026#39;m
|
173
|
+
Feeling Lucky","lml":"Learn more","psrc":"This search was removed from your
|
174
|
+
\u003Ca href=\"/history\"\u003EWeb History\u003C/a\u003E","psrl":"Remove","srch":"Google
|
175
|
+
Search"},"ovr":{"fm":1,"l":1,"o":1,"p":1,"pf":1,"ps":1,"sn":1,"sw":1},"pq":"","scd":10,"sce":5}],[152,{}],[65,{}],[213,{"pberr":"\u003Cfont
|
176
|
+
color=red\u003EError:\u003C/font\u003E The server could not complete your request. Try
|
177
|
+
again in 30 seconds."}],[78,{}],[25,{"g":8,"k":false,"m":{"app":true,"bks":true,"blg":true,"dsc":true,"evn":true,"fin":true,"flm":true,"frm":true,"isch":true,"klg":true,"mbl":true,"nws":true,"plcs":true,"ppl":true,"prc":true,"pts":true,"rcp":true,"shop":true,"vid":true},"t":null}],[216,{}],[105,{}],[22,{"db":false,"m_errors":{"32":"Sorry,
|
178
|
+
no more results to show.","default":"\u003Cfont color=red\u003EError:\u003C/font\u003E
|
179
|
+
The server could not complete your request. Try again in 30 seconds."},"m_tip":"Click
|
180
|
+
for more information","nlpm":"-153px -84px","nlpp":"-153px -70px","utp":false}],[77,{}],[146,{}],[144,{}],[84,{}],[24,{}],[38,{}]]);google.y.first.push(function(){if(google.med){google.med(''init'');google.initHistory();google.med(''history'');}google.History&&google.History.initialize(''/'')});if(google.j&&google.j.en&&google.j.xi){window.setTimeout(google.j.xi,0);}</script></div><script>(function(){
|
181
|
+
|
182
|
+
var b,d,e,f;function g(a,c){if(a.removeEventListener){a.removeEventListener("load",c,false);a.removeEventListener("error",c,false)}else{a.detachEvent("onload",c);a.detachEvent("onerror",c)}}function
|
183
|
+
h(a){f=(new Date).getTime();++d;a=a||window.event;var c=a.target||a.srcElement;g(c,h)}var
|
184
|
+
i=document.getElementsByTagName("img");b=i.length;d=0;for(var j=0,k;j<b;++j){k=i[j];if(k.complete||typeof
|
185
|
+
k.src!="string"||!k.src)++d;else if(k.addEventListener){k.addEventListener("load",h,false);k.addEventListener("error",
|
186
|
+
|
187
|
+
h,false)}else{k.attachEvent("onload",h);k.attachEvent("onerror",h)}}e=b-d;function
|
188
|
+
l(){if(!google.timers.load.t)return;google.timers.load.t.ol=(new Date).getTime();google.timers.load.t.iml=f;google.kCSI.imc=d;google.kCSI.imn=b;google.kCSI.imp=e;if(google.stt!==undefined)google.kCSI.stt=google.stt;google.timers.load.t.xjs&&google.report&&google.report(google.timers.load,google.kCSI)}if(window.addEventListener)window.addEventListener("load",
|
189
|
+
|
190
|
+
l,false);else if(window.attachEvent)window.attachEvent("onload",l);google.timers.load.t.prt=(f=(new
|
191
|
+
Date).getTime());
|
192
|
+
|
193
|
+
})();
|
194
|
+
|
195
|
+
</script>'
|
196
|
+
http_version: '1.1'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: unwind
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-02-24 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
requirement: &
|
16
|
+
requirement: &70198732669380 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70198732669380
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: vcr
|
27
|
-
requirement: &
|
27
|
+
requirement: &70198732668820 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70198732668820
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: fakeweb
|
38
|
-
requirement: &
|
38
|
+
requirement: &70198732668260 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70198732668260
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: faraday
|
49
|
-
requirement: &
|
49
|
+
requirement: &70198732687300 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0.7'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70198732687300
|
58
58
|
description: ! "\t\t\t\t\t\t\t\t\t\tFollows a chain of redirects and reports back
|
59
59
|
on all the steps. \n\t\t\t\t\t\t\t\t\t\tHeavily inspired by John Nunemaker's blog
|
60
60
|
post.\n\t\t\t\t\t\t\t\t\t\thttp://railstips.org/blog/archives/2009/03/04/following-redirects-with-nethttp/\n"
|
@@ -74,6 +74,7 @@ files:
|
|
74
74
|
- test/redirect_follower_test.rb
|
75
75
|
- unwind.gemspec
|
76
76
|
- vcr_cassettes/amazon.yml
|
77
|
+
- vcr_cassettes/meta_refresh.yml
|
77
78
|
- vcr_cassettes/missing_redirect.yml
|
78
79
|
- vcr_cassettes/no_redirect.yml
|
79
80
|
- vcr_cassettes/pdf.yml
|