From b965105ea203368234636df21c64f05358a467fb Mon Sep 17 00:00:00 2001 From: Brian Hempel Date: Thu, 26 Apr 2012 16:20:19 -0400 Subject: [PATCH] Use Plucky::Methods to determine what methods to delegate to query [Fixes #266] --- .../associations/many_documents_proxy.rb | 3 ++- lib/mongo_mapper/plugins/querying.rb | 8 +------ .../plugins/querying/decorator.rb | 2 ++ .../plugins/querying/plucky_methods.rb | 21 ------------------- 4 files changed, 5 insertions(+), 29 deletions(-) delete mode 100644 lib/mongo_mapper/plugins/querying/plucky_methods.rb diff --git a/lib/mongo_mapper/plugins/associations/many_documents_proxy.rb b/lib/mongo_mapper/plugins/associations/many_documents_proxy.rb index 581216874..5389ecd27 100644 --- a/lib/mongo_mapper/plugins/associations/many_documents_proxy.rb +++ b/lib/mongo_mapper/plugins/associations/many_documents_proxy.rb @@ -4,7 +4,8 @@ module Plugins module Associations class ManyDocumentsProxy < Collection include DynamicQuerying::ClassMethods - include Querying::PluckyMethods + + def_delegators :query, *(Querying::Methods - [:to_a, :size, :empty?]) def replace(docs) load_target diff --git a/lib/mongo_mapper/plugins/querying.rb b/lib/mongo_mapper/plugins/querying.rb index 89930ecda..5fdacbeff 100644 --- a/lib/mongo_mapper/plugins/querying.rb +++ b/lib/mongo_mapper/plugins/querying.rb @@ -1,6 +1,5 @@ # encoding: UTF-8 require 'mongo_mapper/plugins/querying/decorator' -require 'mongo_mapper/plugins/querying/plucky_methods' module MongoMapper module Plugins @@ -9,13 +8,8 @@ module Querying module ClassMethods extend Forwardable - include PluckyMethods - def_delegators :query, :to_a, :size, :empty? - - def find_each(opts={}) - super(opts).each { |doc| yield(doc) } - end + def_delegators :query, *Querying::Methods def find_by_id(id) find_one(:_id => id) diff --git a/lib/mongo_mapper/plugins/querying/decorator.rb b/lib/mongo_mapper/plugins/querying/decorator.rb index f0314b764..4cad6a9a7 100644 --- a/lib/mongo_mapper/plugins/querying/decorator.rb +++ b/lib/mongo_mapper/plugins/querying/decorator.rb @@ -2,6 +2,8 @@ module MongoMapper module Plugins module Querying + Methods = Plucky::Methods + [:find!] + module Decorator include DynamicQuerying::ClassMethods diff --git a/lib/mongo_mapper/plugins/querying/plucky_methods.rb b/lib/mongo_mapper/plugins/querying/plucky_methods.rb deleted file mode 100644 index 4c5ca20e9..000000000 --- a/lib/mongo_mapper/plugins/querying/plucky_methods.rb +++ /dev/null @@ -1,21 +0,0 @@ -# encoding: UTF-8 -require 'forwardable' - -module MongoMapper - module Plugins - module Querying - module PluckyMethods - extend Forwardable - def_delegators :query, :where, :filter, - :fields, :ignore, :only, - :limit, :paginate, :per_page, :skip, :offset, - :sort, :order, :reverse, - :count, - :distinct, - :last, :first, :find_one, :all, :find_each, - :find, :find!, - :exists?, :exist? - end - end - end -end \ No newline at end of file