# File lib/mongo_mapper/plugins/dynamic_querying.rb, line 10 def dynamic_find(finder, args) attributes = {} finder.attributes.each_with_index do |attr, index| attributes[attr] = args[index] end options = args.extract_options!.merge(attributes) if result = send(finder.finder, options) result else if finder.raise? raise DocumentNotFound, "Couldn't find Document with #{attributes.inspect} in collection named #{collection.name}" end if finder.instantiator self.send(finder.instantiator, attributes) end end end