diff --git a/lib/optional/option/enumerable.rb b/lib/optional/option/enumerable.rb
index <HASH>..<HASH> 100644
--- a/lib/optional/option/enumerable.rb
+++ b/lib/optional/option/enumerable.rb
@@ -15,6 +15,10 @@ module Option
       from_array to_ary.flatten
     end
 
+    def juxt(*methods)
+      map { |v| methods.map { |m| v.send(m) } }
+    end
+
     def map(*methods)
       if methods.empty?
         from_array super
diff --git a/spec/lib/optional/option/enumerable_spec.rb b/spec/lib/optional/option/enumerable_spec.rb
index <HASH>..<HASH> 100644
--- a/spec/lib/optional/option/enumerable_spec.rb
+++ b/spec/lib/optional/option/enumerable_spec.rb
@@ -53,6 +53,16 @@ describe Option::Enumerable do
     end
   end
 
+  describe "#juxt" do
+    it "collects the results of calling the passed methods" do
+      Some[cat].juxt(:name, :class).should eq Some["MOGGIE!", Cat]
+    end
+
+    it "also works for nil" do
+      None.juxt(:name, :class).should be_none
+    end
+  end
+
   describe "#detect" do
     it "returns none if called on a none" do
       None.detect{ |pet| pet.name == "MOGGIE!" }.should be_none
Added juxt to options