Since will_paginate's method_missing takes control over any method that starts with the word "paginate", any custom methods that start with that word will not be found with respond_to?
A work around for now is to rename the method to not use the word "paginate" in the front.
method_missing only handles calls to nonexistent methods that start with "paginate". it will never handle calls to methods that actually exist.
I'm not sure what you want here, and what needs to be fixed. In the test you wrote you just defined a sample method and checked if it's defined. This confuses me and I still don't see how this relates to pagination or ActiveRecord at all.
The problem is that will_paginate breaks respond_to? for the sample method.
class Topic < ActiveRecord::Base
def self.paginate_by_definition_in_class; end
Topic.respond_to?(:paginate_by_definition_in_class) # => false (should be true)
Since the sample method starts with the word "paginate", will_paginate's respond_to? method never checks for any existing methods that start with the word "paginate". Therefore, it unexpectedly returns false because the plugin thinks that "definition_in_class" is a dynamic finder.
Oh. I'm very sorry. I didn't read good enough. I thought you said method calls are broken, while it's just respond_to? in question.
Gonna pull your fix next time I'm working on wp. Thanks