views/bootstrap_classic_safe.haml
%div
%ul.pagination
- if current_page > 1
%li
=link_to "‹ First".html_safe, url(controller, action, params.merge("page" => 1)), :class => :first_last
- if previous_page
%li
=link_to "«".html_safe, url(controller, action, params.merge("page" => previous_page)), :class => :prev_next
- if current_page > 2
- pages = (current_page + 5 >= total_pages) ? ((current_page - 2)..total_pages) : ((current_page - 2)..(current_page + 5))
- else
- pages = (1..(total_pages > 5 ? 5 : total_pages))
- if current_page > 3
%li
%span.current='...'
- pages.each do |page|
%li
- if page == current_page
%span.current=page
- else
=link_to page.to_s.html_safe, url(controller, action, params.merge("page" => page))
- if current_page + 5 < total_pages
%li
%span.current='...'
- if next_page
%li
=link_to "»".html_safe, url(controller, action, params.merge("page" => next_page)), :class => :prev_next
- if last_page
%li
=link_to "Last ›".html_safe, url(controller, action, params.merge("page" => last_page)), :class => :first_last