Module: Responders::PaginateResponder
- Defined in:
- lib/responders/paginate_responder.rb
Instance Method Summary collapse
Instance Method Details
#max_per_page ⇒ Object
40 41 42 43 44 |
# File 'lib/responders/paginate_responder.rb', line 40 def max_per_page @max_per_page ||= controller.max_per_page if controller.respond_to? :max_per_page @max_per_page ||= 50 @max_per_page end |
#page ⇒ Object
17 18 19 20 21 22 23 24 |
# File 'lib/responders/paginate_responder.rb', line 17 def page @page ||= controller.page if controller.respond_to? :page @page ||= controller.params[:page].try(:to_i) @page ||= 1 @page rescue 1 end |
#per_page ⇒ Object
31 32 33 34 35 36 37 38 |
# File 'lib/responders/paginate_responder.rb', line 31 def per_page @per_page ||= controller.per_page if controller.respond_to? :per_page @per_page ||= controller.params[:per_page].try(:to_i) @per_page = [[1, @per_page].max, max_per_page].min @per_page rescue max_per_page end |
#to_format ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/responders/paginate_responder.rb', line 4 def to_format if get? && resource.respond_to?(:paginate) @resource = resource.paginate :page => self.page, :per_page => self.per_page controller.response.link(controller.url_for(request.params.merge(:page => 1)), :rel => "first") controller.response.link(controller.url_for(request.params.merge(:page => page - 1)), :rel => "prev") if page > 1 controller.response.link(controller.url_for(request.params.merge(:page => page + 1)), :rel => "next") if total_pages && page < total_pages controller.response.link(controller.url_for(request.params.merge(:page => total_pages)), :rel => "last") if total_pages controller.response.headers["X-Total-Pages"] = total_pages if total_pages end super end |
#total_pages ⇒ Object
26 27 28 29 |
# File 'lib/responders/paginate_responder.rb', line 26 def total_pages @total_pages ||= resource.total_pages if resource.respond_to? :total_pages @total_pages end |