<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -5,9 +5,15 @@ compare:
   enum = [1.4, 2.4 ,3.4]
   enum.map {|i| i.floor } #=&gt; [1, 2, 3]
   enum.map(&amp;:floor)       #=&gt; [1, 2, 3]
-  enum.every.floor        #=&gt; [1, 2, 3]
+  enum.map.floor          #=&gt; [1, 2, 3]
 
 arguments? sure:
 
-  %w( axb dxf ).every.gsub(/x/,'y')     #=&gt; ['ayb', 'dyf']
-  %w( axb dxf ).every.gsub(/x/) { 'y' } #=&gt; ['ayb', 'dyf']
+  %w( axb dxf ).map.gsub(/x/,'y')     #=&gt; ['ayb', 'dyf']
+  %w( axb dxf ).map.gsub(/x/) { 'y' } #=&gt; ['ayb', 'dyf']
+
+works with any Enumerable method that takes a single-argument block:
+
+  [0, 1, 2].partition.zero? #=&gt; [[0], [1, 2]]
+  [8, 9, 10].sort_by.to_s   #=&gt; [10, 8, 9]
+</diff>
      <filename>README</filename>
    </modified>
    <modified>
      <diff>@@ -1,15 +1,35 @@
 class Every
   instance_methods.each { |m| undef_method(m) unless m.match(/^__/) }
-  def initialize(obj)
+
+  def initialize(obj, method)
     @obj = obj
+    @method = method
   end
+
   def method_missing(method, *args, &amp;block)
-    @obj.map {|o| o.__send__(method, *args, &amp;block) }
+    @obj.send(@method) {|o| o.__send__(method, *args, &amp;block) }
+  end
+end
+
+[Array, Enumerable].each do |m|
+  %w(all? any? collect detect find find_all map partition reject select sort_by).each do |name|
+    m.class_eval %{
+      alias_method :old_#{name}, :#{name} # alias_method :old_map, :map
+
+      def #{name}(&amp;block)                 # def map(&amp;block)
+        if block                          #   if block
+          old_#{name}(&amp;block)             #     old_map(&amp;block)
+        else                              #   else
+          Every.new(self, :#{name})       #     Every.new(self, :map)
+        end                               #   end
+      end                                 # end
+    }
   end
 end
 
 module Enumerable
   def every
-    Every.new(self)
+    map
   end
 end
+</diff>
      <filename>lib/every.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,20 +4,65 @@ root  =  Pathname(__FILE__).dirname.parent
 require root.join('test/test_helper')
 require root.join('lib/every')
 
+class Fixnum
+  def even?
+    self % 2 == 0
+  end
+end
+
 class EveryTest &lt; Test::Unit::TestCase
   context &quot;Every&quot; do
     test &quot;is a basic object&quot; do
       whitelist = %w( __id__ __send__ method_missing )
       Every.instance_methods.to_set.should be(whitelist.to_set)
     end
+
     test &quot;calls method on enumerable's items&quot; do
-      [1.4, 2.4, 3.4].every.floor.should be([1,2,3])
+      [1, 2, 3].all?.even?.should == false
+      [1, 2, 3].any?.even?.should == true
+
+      [1.4, 2.4, 3.4].collect.floor.should == [1, 2, 3]
+      [1.4, 2.4, 3.4].map.floor.should     == [1, 2, 3]
+
+      [1, 2, 3].detect.even?.should == 2
+      [1, 2, 3].find.even?.should   == 2
+
+      [1, 2, 3].find_all.even?.should  == [2]
+      [1, 2, 3].select.even?.should    == [2]
+      [1, 2, 3].reject.even?.should    == [1,3]
+      [1, 2, 3].partition.even?.should == [[2], [1,3]]
+
+      [8, 9, 10].sort_by.to_s.should == [10, 8, 9]
+    end
+
+    test &quot;leaves default behaviour alone&quot; do
+      [1, 2, 3].all?{|x| x.even? }.should == false
+      [1, 2, 3].any?{|x| x.even? }.should == true
+
+      [1.4, 2.4, 3.4].collect{|x| x.floor }.should == [1, 2, 3]
+      [1.4, 2.4, 3.4].map{|x| x.floor }.should     == [1, 2, 3]
+
+      [1, 2, 3].detect{|x| x.even? }.should == 2
+      [1, 2, 3].find{|x| x.even? }.should   == 2
+
+      [1, 2, 3].find_all{|x| x.even? }.should  == [2]
+      [1, 2, 3].select{|x| x.even? }.should    == [2]
+      [1, 2, 3].reject{|x| x.even? }.should    == [1,3]
+      [1, 2, 3].partition{|x| x.even? }.should == [[2], [1,3]]
+
+      [8, 9, 10].sort_by{|x| x.to_s }.should == [10, 8, 9]
     end
+
+    test &quot;provides \#every as a synonym for \#map&quot; do
+      [1.4, 2.4, 3.4].every.floor.should == [1, 2, 3]
+    end
+
     test &quot;allows arguments&quot; do
-      %w( axb dxf ).every.gsub(/x/,'y').should be(%w( ayb dyf ))
+      %w( axb dxf ).map.gsub(/x/,'y').should be(%w( ayb dyf ))
     end
+
     test &quot;allows blocks&quot; do
-      %w( axb dxf ).every.gsub(/x/) { 'y' }.should be(%w( ayb dyf ))
+      %w( axb dxf ).map.gsub(/x/) { 'y' }.should be(%w( ayb dyf ))
     end
   end
 end</diff>
      <filename>test/test_every.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>c384f1a80fa6d7136be12e5ef086b7980065889c</id>
    </parent>
  </parents>
  <author>
    <name>Aanand Prasad</name>
    <email>aanand.prasad@gmail.com</email>
  </author>
  <url>http://github.com/aanand/every/commit/f4f19fe6f49cf0ff5e1166757935f47ba932d31c</url>
  <id>f4f19fe6f49cf0ff5e1166757935f47ba932d31c</id>
  <committed-date>2009-03-19T09:17:24-07:00</committed-date>
  <authored-date>2009-03-19T09:12:16-07:00</authored-date>
  <message>EVERY IS NOT EVERY ENOUGH.</message>
  <tree>6aaeaea57dc157eb4ca482718d879368550cd26e</tree>
  <committer>
    <name>Aanand Prasad</name>
    <email>aanand.prasad@gmail.com</email>
  </committer>
</commit>
