Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

method_missing and respond_to? bug #17

Closed
enriquez opened this Issue · 4 comments

2 participants

Mike Enriquez Mislav Marohnić
Mike Enriquez

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.

http://github.com/enriquez/will_paginate/commit/26e5cf73f37338a8b7c78abddaccc22910d839ff

Mislav Marohnić
Owner

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.

Mike Enriquez

The problem is that will_paginate breaks respond_to? for the sample method.

Example:

class Topic < ActiveRecord::Base
  def self.paginate_by_definition_in_class; end
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.

Mislav Marohnić
Owner

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

Mislav Marohnić
Owner

Pulled! Thanks

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.