diff --git a/lib/kaminari/helpers.rb b/lib/kaminari/helpers.rb index b40f198..ea32e42 100644 --- a/lib/kaminari/helpers.rb +++ b/lib/kaminari/helpers.rb @@ -35,12 +35,9 @@ module Kaminari tags << (num_pages > current_page ? NextLink.new(self) : NextSpan.new(self)) end - def context #:nodoc: - @template.instance_variable_get('@lookup_context') - end - - def resolver #:nodoc: - context.instance_variable_get('@view_paths').first + def partial_exists?(name) #:nodoc: + resolver = context.instance_variable_get('@view_paths').first + resolver.find_all(*args_for_lookup(name)).present? end def to_s #:nodoc: @@ -52,6 +49,20 @@ module Kaminari end private + def context + @template.instance_variable_get('@lookup_context') + end + + def args_for_lookup(name) + if (method = context.method :args_for_lookup).arity == 3 + # 3.0 + method.call name, 'kaminari', true + else + # 3.1 + method.call name, 'kaminari', true, [] + end + end + def method_missing(meth, *args, &blk) @template.send meth, *args, &blk end diff --git a/lib/kaminari/tags.rb b/lib/kaminari/tags.rb index 2839f9d..5e677a6 100644 --- a/lib/kaminari/tags.rb +++ b/lib/kaminari/tags.rb @@ -36,7 +36,7 @@ module Kaminari # 2. a template for its parent class from app/views # 3. the default one inside the engine def find_template(klass = self.class) - if @renderer.resolver.find_all(*args_for_lookup(klass)).present? + if @renderer.partial_exists? klass.template_filename "kaminari/#{klass.template_filename}" elsif (parent = klass.ancestors[1]) == Tag "kaminari/#{self.class.template_filename}" @@ -45,16 +45,6 @@ module Kaminari end end - def args_for_lookup(klass) - if (method = @renderer.context.method :args_for_lookup).arity == 3 - # 3.0 - method.call klass.template_filename, 'kaminari', true - else - # 3.1 - method.call klass.template_filename, 'kaminari', true, [] - end - end - def page_url_for(page) @renderer.url_for @renderer.params.merge(:page => (page <= 1 ? nil : page)) end