module Responders
  module PaginateResponder
    def to_format
      paginate! if get?

      super
    end

    private

    def paginate!
      adapter = ::Responders::PaginateResponder.init(self)
      @resource = adapter.paginate! if adapter
    end

    class << self
      def register(adapter)
        adapters << adapter
      end

      def adapters
        @adpaters ||= ::Set.new
      end

      def init(responder)
        if responder.controller.respond_to?(:pagination_adapter_init)
          return controller.pagination_adapter_init(responder)
        end

        adapter = find(responder)
        adapter.new(responder) if adapter
      end

      def find(responder)
        adapters.find do |adapter|
          adapter.suitable?(responder.resource, responder)
        end
      end
    end
  end
end

module Responders
  module PaginateResponder
    def to_format
      paginate! if get?

      super
    end

    private

    def paginate!
      adapter = ::Responders::PaginateResponder.find(self)
      @resource = adapter.new(self).paginate! if adapter
    end

    class << self
      def register(adapter)
        adapters << adapter
      end

      def adapters
        @adpaters ||= ::Set.new
      end

      def find(responder)
        adapters.find do |adapter|
          adapter.suitable?(responder.resource, responder)
        end
      end
    end
  end
end

--- 
+++ 
@@ -9,8 +9,8 @@
     private
 
     def paginate!
-      adapter = ::Responders::PaginateResponder.find(self)
-      @resource = adapter.new(self).paginate! if adapter
+      adapter = ::Responders::PaginateResponder.init(self)
+      @resource = adapter.paginate! if adapter
     end
 
     class << self
@@ -22,6 +22,15 @@
         @adpaters ||= ::Set.new
       end
 
+      def init(responder)
+        if responder.controller.respond_to?(:pagination_adapter_init)
+          return controller.pagination_adapter_init(responder)
+        end
+
+        adapter = find(responder)
+        adapter.new(responder) if adapter
+      end
+
       def find(responder)
         adapters.find do |adapter|
           adapter.suitable?(responder.resource, responder)
Add controller hook for adapter initialization
