<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,14 +1,27 @@
 require &quot;open-uri&quot;
 require &quot;uri&quot;
 require &quot;rubygems&quot;
+require &quot;timeout&quot;
 
 class Robots
   
+  DEFAULT_TIMEOUT = 3
+  
   class ParsedRobots
     
-    def initialize(uri)
+    def initialize(uri, user_agent)
       @last_accessed = Time.at(1)
-      io = open(URI.join(uri.to_s, &quot;/robots.txt&quot;)) rescue nil
+      
+      io = nil
+      begin
+        Timeout::timeout(Robots.timeout) do
+          io = URI.join(uri.to_s, &quot;/robots.txt&quot;).open(&quot;User-Agent&quot; =&gt; user_agent) rescue nil
+        end 
+      rescue Timeout::Error
+        STDERR.puts &quot;robots.txt request timed out&quot;
+      end
+        
+      
       if !io || io.content_type != &quot;text/plain&quot; || io.status != [&quot;200&quot;, &quot;OK&quot;]
         io = StringIO.new(&quot;User-agent: *\nAllow: /\n&quot;)
       end
@@ -91,6 +104,14 @@ class Robots
     end
   end
   
+  def self.timeout=(t)
+    @timeout = t
+  end
+  
+  def self.timeout
+    @timeout || DEFAULT_TIMEOUT
+  end
+  
   def initialize(user_agent)
     @user_agent = user_agent
     @parsed = {}
@@ -99,14 +120,14 @@ class Robots
   def allowed?(uri)
     uri = URI.parse(uri.to_s) unless uri.is_a?(URI)
     host = uri.host
-    @parsed[host] ||= ParsedRobots.new(uri)
+    @parsed[host] ||= ParsedRobots.new(uri, @user_agent)
     @parsed[host].allowed?(uri, @user_agent)
   end
   
   def other_values(uri)
     uri = URI.parse(uri.to_s) unless uri.is_a?(URI)
     host = uri.host
-    @parsed[host] ||= ParsedRobots.new(uri)
+    @parsed[host] ||= ParsedRobots.new(uri, @user_agent)
     @parsed[host].other_values
   end
 end</diff>
      <filename>lib/robots.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 Gem::Specification.new do |s|
   s.name     = &quot;robots&quot;
-  s.version  = &quot;0.6.0&quot;
+  s.version  = &quot;0.7.1&quot;
   s.date     = &quot;2008-12-10&quot;
   s.summary  = &quot;Simple robots.txt parser&quot;
   s.email    = &quot;kyle@kylemaxwell.com&quot;</diff>
      <filename>robots.gemspec</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>d45462fd2f26e9e1a14986e04da28cb498af80e1</id>
    </parent>
  </parents>
  <author>
    <name>Kyle Maxwell</name>
    <email>kyle@111.flood.pivotallabs.com</email>
  </author>
  <url>http://github.com/fizx/robots/commit/f3cdfc5020785e4e34654a29b2e75b5b9ca70b5b</url>
  <id>f3cdfc5020785e4e34654a29b2e75b5b9ca70b5b</id>
  <committed-date>2009-03-24T15:11:13-07:00</committed-date>
  <authored-date>2009-03-24T15:11:13-07:00</authored-date>
  <message>better</message>
  <tree>6c9d0f1da7c5953f46545e91b66b12097298100c</tree>
  <committer>
    <name>Kyle Maxwell</name>
    <email>kyle@111.flood.pivotallabs.com</email>
  </committer>
</commit>
