Sha256: 1d3e11ddbfe719f3a55e137a3c91f5e6dfba7dd2f6ec4f35c7cfc55f790d981a
Contents?: true
Size: 1.63 KB
Versions: 2
Compression:
Stored size: 1.63 KB
Contents
# Copyright (c) 2008 Michael Fellinger m.fellinger@gmail.com # All files in this distribution are subject to the terms of the Ruby license. module Ramaze module Helper::Sequel def paginator(paginated, target) page_count = paginated.page_count prev_page = paginated.prev_page current_page = paginated.current_page next_page = paginated.next_page lower = (current_page - 3).abs lower = lower == 0 ? 1 : lower out = ['<div class="paginator">'] if prev_page out << %(<a class="paginator_prev" href="#{Rs(target, prev_page)}">< Prev</a>) else out << %(<span class="paginator_prev">< Prev</span>) end if current_page > 3 out << %(<a class="paginator_page" href="#{Rs(target, 1)}">#{1}</a> ... ) end lower.upto(current_page) do |pc| next if pc == current_page out << %(<a class="paginator_page" href="#{Rs(target, pc)}">#{pc}</a>) end out << %(<span class="paginator_current">#{current_page}</span>) current_page.upto([page_count, current_page + 3].min) do |pc| next if pc == current_page out << %(<a class="paginator_page" href="#{Rs(target, pc)}">#{pc}</a>) end if current_page < (page_count - 3) out << %(.. <a class="paginator_page" href="#{Rs(target, page_count)}">#{page_count}</a>) end if next_page out << %(<a class="paginator_next" href="#{Rs(target, next_page)}">Next ></a>) else out << %(<span class="paginator_next">Next ></span>) end out << '</div>' out.join(" ") end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ramaze-0.3.9 | lib/ramaze/helper/sequel.rb |
ramaze-0.3.9.1 | lib/ramaze/helper/sequel.rb |