<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,84 +1,82 @@
-require 'net/http'
-require 'uri'
-
-# TODO: what?? this needs to be a class.
-
-class PartialPage &lt; Exception
-    attr_accessor :data
-end
-
-def read_data_from_response(response, amount)
-  
-  amount_read = 0
-  chunks = []
-  
-  begin
-      
-      response.read_body do |chunk|   # read body now
-        
-        amount_read += chunk.length
-        
-        if amount_read &gt; amount
-          amount_of_overflow = amount_read - amount
-          chunk = chunk[0...-amount_of_overflow]
-        end
-        
-        chunks &lt;&lt; chunk
-  
-        if amount_read &gt;= amount
-            raise PartialPage.new chunks.join('')
-        end
-        
-      end
-  end
-  
-end
-
-
-
-def http_get_streaming(url = URI.parse(&quot;http://epi.is-a-geek.net/files/Mr.%20Show%20-%20Civil%20War%20Re-enactment.avi&quot;))
-
-  #headers = {'User-Agent' =&gt; &quot;Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1&quot;}
-  headers = nil
-  
-  Net::HTTP.start(url.host, url.port) do |http|
-      # using block
-      response = http.request_get(url.path, headers) {|response|
-        puts &quot;Response: #{response.inspect}&quot;
-        puts &quot;to hash: #{response.to_hash.inspect}&quot;
-  
-        begin
-          read_data_from_response(response, 500)
-        rescue PartialPage =&gt; p
-          puts &quot;GOT THE PARTIAL PAGE!&quot;
-          data = p.data
-        end
-      
-        puts
-        puts &quot;===========first 500 bytes=================&quot;
-        puts data
-      }    
-  end
-
-end
-
-
-# TODO: Remove RIO dependancy.
-
-def http_get_cached(url)
-  require 'digest/md5'
-  require 'rio'
-  
-	tempdir = ENV['TEMP']
-	cachefile = rio(tempdir, &quot;cached_url_#{Digest::SHA1.hexdigest(url)}&quot;)
-	
-	if cachefile.exist?
-		data = rio(cachefile).read
-	else
-		data = rio(url).read
-		rio(cachefile).binmode &lt; data
-	end
-	
-	data
-end
-
+require 'net/http'
+require 'uri'
+
+# TODO: what?? this needs to be a class.
+
+class PartialPage &lt; Exception
+    attr_accessor :data
+end
+
+def read_data_from_response(response, amount)
+  
+  amount_read = 0
+  chunks = []
+  
+  begin
+    response.read_body do |chunk|   # read body now
+      
+      amount_read += chunk.length
+      
+      if amount_read &gt; amount
+        amount_of_overflow = amount_read - amount
+        chunk = chunk[0...-amount_of_overflow]
+      end
+      
+      chunks &lt;&lt; chunk
+
+      if amount_read &gt;= amount
+          raise PartialPage.new chunks.join('')
+      end
+      
+    end
+  end
+  
+end
+
+
+def http_get_streaming(url = URI.parse(&quot;http://epi.is-a-geek.net/files/Mr.%20Show%20-%20Civil%20War%20Re-enactment.avi&quot;))
+
+  #headers = {'User-Agent' =&gt; &quot;Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1&quot;}
+  headers = nil
+  
+  Net::HTTP.start(url.host, url.port) do |http|
+    # using block
+    response = http.request_get(url.path, headers) {|response|
+      puts &quot;Response: #{response.inspect}&quot;
+      puts &quot;to hash: #{response.to_hash.inspect}&quot;
+
+      begin
+        read_data_from_response(response, 500)
+      rescue PartialPage =&gt; p
+        puts &quot;GOT THE PARTIAL PAGE!&quot;
+        data = p.data
+      end
+    
+      puts
+      puts &quot;===========first 500 bytes=================&quot;
+      puts data
+    }    
+  end
+
+end
+
+
+# TODO: Remove RIO dependancy.
+
+def http_get_cached(url)
+  require 'digest/md5'
+  require 'rio'
+  
+  tempdir = ENV['TEMP']
+  cachefile = rio(tempdir, &quot;cached_url_#{Digest::SHA1.hexdigest(url)}&quot;)
+  
+  if cachefile.exist?
+    data = rio(cachefile).read
+  else
+    data = rio(url).read
+    rio(cachefile).binmode &lt; data
+  end
+  
+  data
+end
+</diff>
      <filename>lib/epitools/http.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,28 +1,28 @@
-class Object
-  # The hidden singleton lurks behind everyone
-  def metaclass
-    class &lt;&lt; self
-      self
-    end
-  end
-
-  def meta_eval &amp;blk
-    metaclass.instance_eval &amp;blk
-  end
-
-  # Adds methods to a metaclass
-  def meta_def name, &amp;blk
-    meta_eval { define_method name, &amp;blk }
-  end
-
-  # Defines an instance method within a class
-  def class_def name, &amp;blk
-    class_eval { define_method name, &amp;blk }
-  end
-end
-
-if $0 == __FILE__
-  o = Object.new
-  p o
-  p o.metaclass
-end
\ No newline at end of file
+class Object
+  # The hidden singleton lurks behind everyone
+  def metaclass
+    class &lt;&lt; self
+      self
+    end
+  end
+
+  def meta_eval &amp;blk
+    metaclass.instance_eval &amp;blk
+  end
+
+  # Adds methods to a metaclass
+  def meta_def name, &amp;blk
+    meta_eval { define_method name, &amp;blk }
+  end
+
+  # Defines an instance method within a class
+  def class_def name, &amp;blk
+    class_eval { define_method name, &amp;blk }
+  end
+end
+
+if $0 == __FILE__
+  o = Object.new
+  p o
+  p o.metaclass
+end</diff>
      <filename>lib/epitools/metaclass.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,81 +1,81 @@
-
-class Array
-  
-  def sum
-    inject(0) { |total,n| total + n }
-  end
-  
-  def average
-    sum / size.to_f
-  end
-
-  alias_method :&quot;original_*_for_cartesian_*&quot;, :*
-  def *(other)
-    case other
-      when Integer
-        send(:&quot;original_*_for_cartesian_*&quot;, other)
-      when Array
-        # cross-product
-        result = []
-        (0...self.size).each do |a|
-          (0...other.size).each do |b|
-            result &lt;&lt; [self[a], other[b]]
-          end
-        end
-        result        
-    end
-  end
-  
-  def **(exponent)
-    ([self] * exponent).foldl(:*)
-  end
-  
-end
-
-
-module Enumerable
-
-  def foldl(operation)
-    result = nil
-
-    each_with_index do |e,i|
-      if i == 0
-        result = e 
-        next
-      end
-      
-      result = result.send(operation, e)      
-    end
-    
-    result
-  end
-
-end
-
-
-def perms(total, n=0, stack=[], &amp;block)
-  ps = yield(n)
-  results = []
-  if n &gt;= total
-    results &lt;&lt; stack
-  else  
-    ps.each do |p|
-      results += perms(total, n+1, stack + [p], &amp;block)
-    end
-  end
-  results
-end
-  
-
-if $0 == __FILE__
-  puts &quot;-------------- foldl ---&quot;
-  p [:sum, [1,1,1].foldl(:+)]
-  p [&quot;[[1,2],[3]].foldl(:+)&quot;, [[1,2],[3]].foldl(:+)]
-  p [[0,1],[0,1]].foldl(:*)
-
-  puts &quot;-------------- cartesian product ---&quot;
-  p [&quot;[0,1]*[2,3]&quot;,[0,1]*[2,3]]
-
-  puts &quot;-------------- cartesian exponent ---&quot;
-  p [0,1]**3
-end
+
+class Array
+  
+  def sum
+    inject(0) { |total,n| total + n }
+  end
+  
+  def average
+    sum / size.to_f
+  end
+
+  alias_method :&quot;original_*_for_cartesian_*&quot;, :*
+  def *(other)
+    case other
+      when Integer
+        send(:&quot;original_*_for_cartesian_*&quot;, other)
+      when Array
+        # cross-product
+        result = []
+        (0...self.size).each do |a|
+          (0...other.size).each do |b|
+            result &lt;&lt; [self[a], other[b]]
+          end
+        end
+        result        
+    end
+  end
+  
+  def **(exponent)
+    ([self] * exponent).foldl(:*)
+  end
+  
+end
+
+
+module Enumerable
+
+  def foldl(operation)
+    result = nil
+
+    each_with_index do |e,i|
+      if i == 0
+        result = e 
+        next
+      end
+      
+      result = result.send(operation, e)      
+    end
+    
+    result
+  end
+
+end
+
+
+def perms(total, n=0, stack=[], &amp;block)
+  ps = yield(n)
+  results = []
+  if n &gt;= total
+    results &lt;&lt; stack
+  else  
+    ps.each do |p|
+      results += perms(total, n+1, stack + [p], &amp;block)
+    end
+  end
+  results
+end
+  
+
+if $0 == __FILE__
+  puts &quot;-------------- foldl ---&quot;
+  p [:sum, [1,1,1].foldl(:+)]
+  p [&quot;[[1,2],[3]].foldl(:+)&quot;, [[1,2],[3]].foldl(:+)]
+  p [[0,1],[0,1]].foldl(:*)
+
+  puts &quot;-------------- cartesian product ---&quot;
+  p [&quot;[0,1]*[2,3]&quot;,[0,1]*[2,3]]
+
+  puts &quot;-------------- cartesian exponent ---&quot;
+  p [0,1]**3
+end</diff>
      <filename>lib/epitools/permutations.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>95c567474e6a29d844aa21d219567339f5c9b8c4</id>
    </parent>
  </parents>
  <author>
    <name>epitron</name>
    <email>chris@ill-logic.com</email>
  </author>
  <url>http://github.com/epitron/epitools/commit/5df27d311b0682ca983882d3b8208b6c6ac0b106</url>
  <id>5df27d311b0682ca983882d3b8208b6c6ac0b106</id>
  <committed-date>2009-10-30T14:47:25-07:00</committed-date>
  <authored-date>2009-10-30T14:47:25-07:00</authored-date>
  <message>Damn you, tabs and DOS endings!</message>
  <tree>edde5a66717b7cc482d0c3c4f47526d6152b5039</tree>
  <committer>
    <name>epitron</name>
    <email>chris@ill-logic.com</email>
  </committer>
</commit>
