<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -68,7 +68,7 @@ module MongoMapper
       end
       
       def nullify
-        criteria = FinderOptions.to_mongo_criteria(scoped_conditions)
+        criteria = FinderOptions.to_mongo_criteria(klass, scoped_conditions)
         all(criteria).each do |doc|
           doc.update_attributes self.foreign_key =&gt; nil
         end</diff>
      <filename>lib/mongo_mapper/associations/many_documents_proxy.rb</filename>
    </modified>
    <modified>
      <diff>@@ -95,14 +95,14 @@ module MongoMapper
       end
 
       def find_by_id(id)
-        criteria = FinderOptions.to_mongo_criteria(:_id =&gt; id)
+        criteria = FinderOptions.to_mongo_criteria(self, :_id =&gt; id)
         if doc = collection.find_one(criteria)
           new(doc)
         end
       end
 
       def count(conditions={})
-        collection.find(FinderOptions.to_mongo_criteria(conditions)).count
+        collection.find(FinderOptions.to_mongo_criteria(self, conditions)).count
       end
 
       def exists?(conditions={})
@@ -133,12 +133,12 @@ module MongoMapper
       end
 
       def delete(*ids)
-        criteria = FinderOptions.to_mongo_criteria(:_id =&gt; ids.flatten)
+        criteria = FinderOptions.to_mongo_criteria(self, :_id =&gt; ids.flatten)
         collection.remove(criteria)
       end
 
       def delete_all(conditions={})
-        criteria = FinderOptions.to_mongo_criteria(conditions)
+        criteria = FinderOptions.to_mongo_criteria(self, conditions)
         collection.remove(criteria)
       end
 
@@ -191,6 +191,14 @@ module MongoMapper
         class_eval { before_save :update_timestamps }
       end
       
+      def single_collection_inherited?
+        keys.has_key?('_type') &amp;&amp; single_collection_inherited_superclass?
+      end
+      
+      def single_collection_inherited_superclass?
+        superclass.respond_to?(:keys) &amp;&amp; superclass.keys.has_key?('_type')
+      end
+            
       protected
         def method_missing(method, *args)
           finder = DynamicFinder.new(method)
@@ -221,7 +229,7 @@ module MongoMapper
         end
         
         def find_every(options)
-          criteria, options = FinderOptions.new(options).to_a
+          criteria, options = FinderOptions.new(self, options).to_a
           collection.find(criteria, options).to_a.map do |doc|
             begin
               klass = doc['_type'].present? ? doc['_type'].constantize : self
@@ -304,7 +312,7 @@ module MongoMapper
       def destroy
         return false if frozen?
 
-        criteria = FinderOptions.to_mongo_criteria(:_id =&gt; id)
+        criteria = FinderOptions.to_mongo_criteria(self.class, :_id =&gt; id)
         collection.remove(criteria) unless new?
         freeze
       end</diff>
      <filename>lib/mongo_mapper/document.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,9 +1,9 @@
 module MongoMapper
-  class FinderOptions
-    attr_reader :options
-    
-    def self.to_mongo_criteria(conditions, parent_key=nil)
+  class FinderOptions    
+    def self.to_mongo_criteria(model, conditions, parent_key=nil)
       criteria = {}
+      add_sci_scope(model, criteria)
+      
       conditions.each_pair do |field, value|
         field = field_normalized(field)
         case value
@@ -15,7 +15,7 @@ module MongoMapper
                                 {'$in' =&gt; value}
                               end
           when Hash
-            criteria[field] = to_mongo_criteria(value, field)
+            criteria[field] = to_mongo_criteria(model, value, field)
           else            
             criteria[field] = value
         end
@@ -23,8 +23,15 @@ module MongoMapper
       
       criteria
     end
+    
+    # adds _type single collection inheritance scope for models that need it
+    def self.add_sci_scope(model, criteria)
+      if model.single_collection_inherited?
+        criteria[:_type] = model.to_s
+      end
+    end
         
-    def self.to_mongo_options(options)
+    def self.to_mongo_options(model, options)
       options = options.dup
       {
         :fields =&gt; to_mongo_fields(options.delete(:fields) || options.delete(:select)),
@@ -44,9 +51,13 @@ module MongoMapper
     
     OptionKeys = [:fields, :select, :skip, :offset, :limit, :sort, :order]
     
-    def initialize(options)
+    attr_reader :model, :options
+    
+    def initialize(model, options)
       raise ArgumentError, &quot;FinderOptions must be a hash&quot; unless options.is_a?(Hash)
       
+      @model = model
+      
       options = options.symbolize_keys
       @options, @conditions = {}, options.delete(:conditions) || {}
       
@@ -60,11 +71,11 @@ module MongoMapper
     end
     
     def criteria
-      self.class.to_mongo_criteria(@conditions)
+      self.class.to_mongo_criteria(model, @conditions)
     end
     
     def options
-      self.class.to_mongo_options(@options)
+      self.class.to_mongo_options(model, @options)
     end
     
     def to_a</diff>
      <filename>lib/mongo_mapper/finder_options.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,7 +12,7 @@ def run_all_tests
 end
 
 def related_test_files(path)
-  Dir['test/**/*.rb'].select { |file| file =~ /#{File.basename(path)}/ }
+  Dir['test/**/*.rb'].select { |file| file =~ /test_#{File.basename(path)}/ }
 end
 
 watch('test/test_helper\.rb') { run_all_tests }</diff>
      <filename>specs.watchr</filename>
    </modified>
    <modified>
      <diff>@@ -948,38 +948,43 @@ class DocumentTest &lt; Test::Unit::TestCase
       class ::DocParent
         include MongoMapper::Document
         key :_type, String
+        key :name, String
       end
-
-      class ::DocChild &lt; ::DocParent; end
       DocParent.collection.clear
-
+      
+      class ::DocDaughter &lt; ::DocParent; end
+      class ::DocSon &lt; ::DocParent; end
+      class ::DocGrandSon &lt; ::DocSon; end
+      
       @parent = DocParent.new({:name =&gt; &quot;Daddy Warbucks&quot;})
-      @child = DocChild.new({:name =&gt; &quot;Little Orphan Annie&quot;})
+      @daughter = DocDaughter.new({:name =&gt; &quot;Little Orphan Annie&quot;})
     end
 
     teardown do
-      Object.send :remove_const, 'DocParent' if defined?(::DocParent)
-      Object.send :remove_const, 'DocChild' if defined?(::DocChild)
+      Object.send :remove_const, 'DocParent'   if defined?(::DocParent)
+      Object.send :remove_const, 'DocDaughter' if defined?(::DocDaughter)
+      Object.send :remove_const, 'DocSon'      if defined?(::DocSon)
+      Object.send :remove_const, 'DocGrandSon' if defined?(::DocGrandSon)
     end
 
     should &quot;use the same collection in the subclass&quot; do
-      DocChild.collection.name.should == DocParent.collection.name
+      DocDaughter.collection.name.should == DocParent.collection.name
     end
 
     should &quot;assign the class name into the _type property&quot; do
       @parent._type.should == 'DocParent'
-      @child._type.should == 'DocChild'
+      @daughter._type.should == 'DocDaughter'
     end
 
     should &quot;load the document with the assigned type&quot; do
       @parent.save
-      @child.save
-
+      @daughter.save
+            
       collection = DocParent.find(:all)
       collection.size.should == 2
       collection.first.should be_kind_of(DocParent)
       collection.first.name.should == &quot;Daddy Warbucks&quot;
-      collection.last.should be_kind_of(DocChild)
+      collection.last.should be_kind_of(DocDaughter)
       collection.last.name.should == &quot;Little Orphan Annie&quot;
     end
 
@@ -992,6 +997,45 @@ class DocumentTest &lt; Test::Unit::TestCase
       collection.last.should == doc
       collection.last.should be_kind_of(DocParent)
     end
+    
+    should &quot;find scoped to class&quot; do
+      john = DocSon.create(:name =&gt; 'John')
+      steve = DocSon.create(:name =&gt; 'Steve')
+      steph = DocDaughter.create(:name =&gt; 'Steph')
+      carrie = DocDaughter.create(:name =&gt; 'Carrie')
+      
+      DocGrandSon.all(:order =&gt; 'name').should  == []
+      DocSon.all(:order =&gt; 'name').should       == [john, steve]
+      DocDaughter.all(:order =&gt; 'name').should  == [carrie, steph]
+      DocParent.all(:order =&gt; 'name').should    == [carrie, john, steph, steve]
+    end
+    
+    should &quot;count scoped to class&quot; do
+      john = DocSon.create(:name =&gt; 'John')
+      steve = DocSon.create(:name =&gt; 'Steve')
+      steph = DocDaughter.create(:name =&gt; 'Steph')
+      carrie = DocDaughter.create(:name =&gt; 'Carrie')
+      
+      DocGrandSon.count.should  == 0
+      DocSon.count.should       == 2
+      DocDaughter.count.should  == 2
+      DocParent.count.should    == 4
+    end
+    
+    should &quot;know if it is single_collection_inherited?&quot; do
+      DocParent.single_collection_inherited?.should be_false
+      
+      DocDaughter.single_collection_inherited?.should be_true
+      DocSon.single_collection_inherited?.should be_true
+    end
+    
+    should &quot;know if single_collection_inherited_superclass?&quot; do
+      DocParent.single_collection_inherited_superclass?.should be_false
+      
+      DocDaughter.single_collection_inherited_superclass?.should be_true
+      DocSon.single_collection_inherited_superclass?.should be_true
+      DocGrandSon.single_collection_inherited_superclass?.should be_true
+    end
   end
 
   context &quot;timestamping&quot; do</diff>
      <filename>test/functional/test_document.rb</filename>
    </modified>
    <modified>
      <diff>@@ -68,12 +68,6 @@ class Message
   belongs_to :room
 end
 
-class Answer
-  include MongoMapper::Document
-
-  key :body, String
-end
-
 class Enter &lt; Message; end
 class Exit &lt; Message;  end
 class Chat &lt; Message;  end
@@ -85,6 +79,12 @@ class Room
   many :messages, :polymorphic =&gt; true
 end
 
+class Answer
+  include MongoMapper::Document
+
+  key :body, String
+end
+
 class Project
   include MongoMapper::Document
 </diff>
      <filename>test/models.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,73 +1,87 @@
 require 'test_helper'
+require 'models'
 
 class FinderOptionsTest &lt; Test::Unit::TestCase
   include MongoMapper
   
   should &quot;raise error if provided something other than a hash&quot; do
-    lambda { FinderOptions.new }.should raise_error(ArgumentError)
-    lambda { FinderOptions.new(1) }.should raise_error(ArgumentError)
+    lambda { FinderOptions.new(Room) }.should raise_error(ArgumentError)
+    lambda { FinderOptions.new(Room, 1) }.should raise_error(ArgumentError)
   end
   
   should &quot;symbolize the keys of the hash provided&quot; do
-    FinderOptions.new('offset' =&gt; 1).options.keys.map do |key|
+    FinderOptions.new(Room, 'offset' =&gt; 1).options.keys.map do |key|
       key.should be_instance_of(Symbol)
     end
   end
   
   context &quot;#criteria&quot; do
     should &quot;convert conditions to criteria&quot; do
-      FinderOptions.expects(:to_mongo_criteria).with(:foo =&gt; 1).returns({})
-      FinderOptions.new(:conditions =&gt; {:foo =&gt; 1}).criteria
+      FinderOptions.expects(:to_mongo_criteria).with(Room, :foo =&gt; 1).returns({})
+      FinderOptions.new(Room, :conditions =&gt; {:foo =&gt; 1}).criteria
     end
   end
   
   context &quot;#options&quot; do
     should &quot;convert options to mongo options&quot; do
-      FinderOptions.expects(:to_mongo_options).with(:order =&gt; 'foo asc', :select =&gt; 'foo,bar').returns({})
-      FinderOptions.new(:order =&gt; 'foo asc', :select =&gt; 'foo,bar').options
+      FinderOptions.expects(:to_mongo_options).with(Room, :order =&gt; 'foo asc', :select =&gt; 'foo,bar').returns({})
+      FinderOptions.new(Room, :order =&gt; 'foo asc', :select =&gt; 'foo,bar').options
     end
   end
   
   context &quot;Converting conditions to criteria&quot; do
+    should &quot;not add _type to query if model does not have superclass that is single collection inherited&quot; do
+      FinderOptions.to_mongo_criteria(Message, :foo =&gt; 'bar').should == {
+        :foo =&gt; 'bar'
+      }
+    end
+    
+    should &quot;automatically add _type to query if model is single collection inherited&quot; do
+      FinderOptions.to_mongo_criteria(Enter, :foo =&gt; 'bar').should == {
+        :foo =&gt; 'bar',
+        :_type =&gt; 'Enter'
+      }
+    end
+    
     should &quot;work with simple criteria&quot; do
-      FinderOptions.to_mongo_criteria(:foo =&gt; 'bar').should == {
+      FinderOptions.to_mongo_criteria(Room, :foo =&gt; 'bar').should == {
         :foo =&gt; 'bar'
       }
       
-      FinderOptions.to_mongo_criteria(:foo =&gt; 'bar', :baz =&gt; 'wick').should == {
+      FinderOptions.to_mongo_criteria(Room, :foo =&gt; 'bar', :baz =&gt; 'wick').should == {
         :foo =&gt; 'bar', 
         :baz =&gt; 'wick'
       }
     end
     
     should &quot;convert id to _id&quot; do
-      FinderOptions.to_mongo_criteria(:id =&gt; '1').should == {
+      FinderOptions.to_mongo_criteria(Room, :id =&gt; '1').should == {
         :_id =&gt; '1'
       }
     end
     
     should &quot;use $in for arrays&quot; do
-      FinderOptions.to_mongo_criteria(:foo =&gt; [1,2,3]).should == {
+      FinderOptions.to_mongo_criteria(Room, :foo =&gt; [1,2,3]).should == {
         :foo =&gt; {'$in' =&gt; [1,2,3]}
       }
     end
     
     should &quot;not use $in for arrays if already using array operator&quot; do
-      FinderOptions.to_mongo_criteria(:foo =&gt; {'$all' =&gt; [1,2,3]}).should == {
+      FinderOptions.to_mongo_criteria(Room, :foo =&gt; {'$all' =&gt; [1,2,3]}).should == {
         :foo =&gt; {'$all' =&gt; [1,2,3]}
       }
 
-      FinderOptions.to_mongo_criteria(:foo =&gt; {'$any' =&gt; [1,2,3]}).should == {
+      FinderOptions.to_mongo_criteria(Room, :foo =&gt; {'$any' =&gt; [1,2,3]}).should == {
         :foo =&gt; {'$any' =&gt; [1,2,3]}
       }
     end
     
     should &quot;work arbitrarily deep&quot; do
-      FinderOptions.to_mongo_criteria(:foo =&gt; {:bar =&gt; [1,2,3]}).should == {
+      FinderOptions.to_mongo_criteria(Room, :foo =&gt; {:bar =&gt; [1,2,3]}).should == {
         :foo =&gt; {:bar =&gt; {'$in' =&gt; [1,2,3]}}
       }
       
-      FinderOptions.to_mongo_criteria(:foo =&gt; {:bar =&gt; {'$any' =&gt; [1,2,3]}}).should == {
+      FinderOptions.to_mongo_criteria(Room, :foo =&gt; {:bar =&gt; {'$any' =&gt; [1,2,3]}}).should == {
         :foo =&gt; {:bar =&gt; {'$any' =&gt; [1,2,3]}}
       }
     end
@@ -76,166 +90,166 @@ class FinderOptionsTest &lt; Test::Unit::TestCase
   context &quot;ordering&quot; do
     should &quot;single field with ascending direction&quot; do
       sort = [['foo', 1]]
-      FinderOptions.to_mongo_options(:order =&gt; 'foo asc')[:sort].should == sort
-      FinderOptions.to_mongo_options(:order =&gt; 'foo ASC')[:sort].should == sort
+      FinderOptions.to_mongo_options(Room, :order =&gt; 'foo asc')[:sort].should == sort
+      FinderOptions.to_mongo_options(Room, :order =&gt; 'foo ASC')[:sort].should == sort
     end
     
     should &quot;single field with descending direction&quot; do
       sort = [['foo', -1]]
-      FinderOptions.to_mongo_options(:order =&gt; 'foo desc')[:sort].should == sort
-      FinderOptions.to_mongo_options(:order =&gt; 'foo DESC')[:sort].should == sort
+      FinderOptions.to_mongo_options(Room, :order =&gt; 'foo desc')[:sort].should == sort
+      FinderOptions.to_mongo_options(Room, :order =&gt; 'foo DESC')[:sort].should == sort
     end
     
     should &quot;convert field without direction to ascending&quot; do
       sort = [['foo', 1]]
-      FinderOptions.to_mongo_options(:order =&gt; 'foo')[:sort].should == sort
+      FinderOptions.to_mongo_options(Room, :order =&gt; 'foo')[:sort].should == sort
     end
     
     should &quot;convert multiple fields with directions&quot; do
       sort = [['foo', -1], ['bar', 1], ['baz', -1]]
-      FinderOptions.to_mongo_options(:order =&gt; 'foo desc, bar asc, baz desc')[:sort].should == sort
+      FinderOptions.to_mongo_options(Room, :order =&gt; 'foo desc, bar asc, baz desc')[:sort].should == sort
     end
     
     should &quot;convert multiple fields with some missing directions&quot; do
       sort = [['foo', -1], ['bar', 1], ['baz', 1]]
-      FinderOptions.to_mongo_options(:order =&gt; 'foo desc, bar, baz')[:sort].should == sort
+      FinderOptions.to_mongo_options(Room, :order =&gt; 'foo desc, bar, baz')[:sort].should == sort
     end
     
     should &quot;just use sort if sort and order are present&quot; do
       sort = [['$natural', 1]]
-      FinderOptions.to_mongo_options(:sort =&gt; sort, :order =&gt; 'foo asc')[:sort].should == sort
+      FinderOptions.to_mongo_options(Room, :sort =&gt; sort, :order =&gt; 'foo asc')[:sort].should == sort
     end
     
     should &quot;convert natural in order to proper&quot; do
       sort = [['$natural', 1]]
-      FinderOptions.to_mongo_options(:order =&gt; '$natural asc')[:sort].should == sort
+      FinderOptions.to_mongo_options(Room, :order =&gt; '$natural asc')[:sort].should == sort
       sort = [['$natural', -1]]
-      FinderOptions.to_mongo_options(:order =&gt; '$natural desc')[:sort].should == sort
+      FinderOptions.to_mongo_options(Room, :order =&gt; '$natural desc')[:sort].should == sort
     end
     
     should &quot;work for natural order ascending&quot; do
-      FinderOptions.to_mongo_options(:sort =&gt; {'$natural' =&gt; 1})[:sort]['$natural'].should == 1
+      FinderOptions.to_mongo_options(Room, :sort =&gt; {'$natural' =&gt; 1})[:sort]['$natural'].should == 1
     end
     
     should &quot;work for natural order descending&quot; do
-      FinderOptions.to_mongo_options(:sort =&gt; {'$natural' =&gt; -1})[:sort]['$natural'].should == -1
+      FinderOptions.to_mongo_options(Room, :sort =&gt; {'$natural' =&gt; -1})[:sort]['$natural'].should == -1
     end
   end
   
   context &quot;skip&quot; do
     should &quot;default to 0&quot; do
-      FinderOptions.to_mongo_options({})[:skip].should == 0
+      FinderOptions.to_mongo_options(Room, {})[:skip].should == 0
     end
     
     should &quot;use skip provided&quot; do
-      FinderOptions.to_mongo_options(:skip =&gt; 2)[:skip].should == 2
+      FinderOptions.to_mongo_options(Room, :skip =&gt; 2)[:skip].should == 2
     end
     
     should &quot;covert string to integer&quot; do
-      FinderOptions.to_mongo_options(:skip =&gt; '2')[:skip].should == 2
+      FinderOptions.to_mongo_options(Room, :skip =&gt; '2')[:skip].should == 2
     end
     
     should &quot;convert offset to skip&quot; do
-      FinderOptions.to_mongo_options(:offset =&gt; 1)[:skip].should == 1
+      FinderOptions.to_mongo_options(Room, :offset =&gt; 1)[:skip].should == 1
     end
   end
   
   context &quot;limit&quot; do
     should &quot;default to 0&quot; do
-      FinderOptions.to_mongo_options({})[:limit].should == 0
+      FinderOptions.to_mongo_options(Room, {})[:limit].should == 0
     end
     
     should &quot;use limit provided&quot; do
-      FinderOptions.to_mongo_options(:limit =&gt; 2)[:limit].should == 2
+      FinderOptions.to_mongo_options(Room, :limit =&gt; 2)[:limit].should == 2
     end
     
     should &quot;covert string to integer&quot; do
-      FinderOptions.to_mongo_options(:limit =&gt; '2')[:limit].should == 2
+      FinderOptions.to_mongo_options(Room, :limit =&gt; '2')[:limit].should == 2
     end
   end
   
   context &quot;fields&quot; do
     should &quot;default to nil&quot; do
-      FinderOptions.to_mongo_options({})[:fields].should be(nil)
+      FinderOptions.to_mongo_options(Room, {})[:fields].should be(nil)
     end
     
     should &quot;be converted to nil if empty string&quot; do
-      FinderOptions.to_mongo_options(:fields =&gt; '')[:fields].should be(nil)
+      FinderOptions.to_mongo_options(Room, :fields =&gt; '')[:fields].should be(nil)
     end
     
     should &quot;be converted to nil if []&quot; do
-      FinderOptions.to_mongo_options(:fields =&gt; [])[:fields].should be(nil)
+      FinderOptions.to_mongo_options(Room, :fields =&gt; [])[:fields].should be(nil)
     end
     
     should &quot;should work with array&quot; do
-      FinderOptions.to_mongo_options({:fields =&gt; %w(a b)})[:fields].should == %w(a b)
+      FinderOptions.to_mongo_options(Room, {:fields =&gt; %w(a b)})[:fields].should == %w(a b)
     end
     
     should &quot;convert comma separated list to array&quot; do
-      FinderOptions.to_mongo_options({:fields =&gt; 'a, b'})[:fields].should == %w(a b)
+      FinderOptions.to_mongo_options(Room, {:fields =&gt; 'a, b'})[:fields].should == %w(a b)
     end
     
     should &quot;also work as select&quot; do
-      FinderOptions.new(:select =&gt; %w(a b)).options[:fields].should == %w(a b)
+      FinderOptions.new(Room, :select =&gt; %w(a b)).options[:fields].should == %w(a b)
     end
   end
   
   context &quot;Condition auto-detection&quot; do
     should &quot;know :conditions are criteria&quot; do
-      finder = FinderOptions.new(:conditions =&gt; {:foo =&gt; 'bar'})
+      finder = FinderOptions.new(Room, :conditions =&gt; {:foo =&gt; 'bar'})
       finder.criteria.should == {:foo =&gt; 'bar'}
       finder.options.keys.should_not include(:conditions)
     end
     
     should &quot;know fields is an option&quot; do
-      finder = FinderOptions.new(:fields =&gt; ['foo'])
+      finder = FinderOptions.new(Room, :fields =&gt; ['foo'])
       finder.options[:fields].should == ['foo']
       finder.criteria.keys.should_not include(:fields)
     end
     
     # select gets converted to fields so just checking keys
     should &quot;know select is an option&quot; do
-      finder = FinderOptions.new(:select =&gt; 'foo')
+      finder = FinderOptions.new(Room, :select =&gt; 'foo')
       finder.options.keys.should include(:sort)
       finder.criteria.keys.should_not include(:select)
       finder.criteria.keys.should_not include(:fields)
     end
     
     should &quot;know skip is an option&quot; do
-      finder = FinderOptions.new(:skip =&gt; 10)
+      finder = FinderOptions.new(Room, :skip =&gt; 10)
       finder.options[:skip].should == 10
       finder.criteria.keys.should_not include(:skip)
     end
     
     # offset gets converted to skip so just checking keys
     should &quot;know offset is an option&quot; do
-      finder = FinderOptions.new(:offset =&gt; 10)
+      finder = FinderOptions.new(Room, :offset =&gt; 10)
       finder.options.keys.should include(:skip)
       finder.criteria.keys.should_not include(:skip)
       finder.criteria.keys.should_not include(:offset)
     end
 
     should &quot;know limit is an option&quot; do
-      finder = FinderOptions.new(:limit =&gt; 10)
+      finder = FinderOptions.new(Room, :limit =&gt; 10)
       finder.options[:limit].should == 10
       finder.criteria.keys.should_not include(:limit)
     end
 
     should &quot;know sort is an option&quot; do
-      finder = FinderOptions.new(:sort =&gt; [['foo', 1]])
+      finder = FinderOptions.new(Room, :sort =&gt; [['foo', 1]])
       finder.options[:sort].should == [['foo', 1]]
       finder.criteria.keys.should_not include(:sort)
     end
 
     # order gets converted to sort so just checking keys
     should &quot;know order is an option&quot; do
-      finder = FinderOptions.new(:order =&gt; 'foo')
+      finder = FinderOptions.new(Room, :order =&gt; 'foo')
       finder.options.keys.should include(:sort)
       finder.criteria.keys.should_not include(:sort)
     end
         
     should &quot;work with full range of things&quot; do
-      finder_options = FinderOptions.new({
+      finder_options = FinderOptions.new(Room, {
         :foo =&gt; 'bar',
         :baz =&gt; true,
         :sort =&gt; [['foo', 1]],</diff>
      <filename>test/unit/test_finder_options.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>4cca5bca1edef3a30bfbd0916ed3b22eb3e57a43</id>
    </parent>
  </parents>
  <author>
    <name>John Nunemaker</name>
    <email>nunemaker@gmail.com</email>
  </author>
  <url>http://github.com/jnunemaker/mongomapper/commit/32c454d1cc7853bb6de5e58dd108cd04f0536ba3</url>
  <id>32c454d1cc7853bb6de5e58dd108cd04f0536ba3</id>
  <committed-date>2009-10-22T14:03:30-07:00</committed-date>
  <authored-date>2009-10-22T14:03:30-07:00</authored-date>
  <message>Models with _type key are no properly scoped when performing find and count. Fixes #47.</message>
  <tree>bc9527956ef1e436cede2287e73553b4d8fa3db7</tree>
  <committer>
    <name>John Nunemaker</name>
    <email>nunemaker@gmail.com</email>
  </committer>
</commit>
