class Ramaze::Helper::Paginate::Paginator
Provides easy pagination and navigation
Attributes
css[R]
Public Class Methods
new(data = [], page = 1, limit = 10, var = 'pager', opts = {})
click to toggle source
# File lib/ramaze/helper/paginate.rb, line 116 def initialize(data = [], page = 1, limit = 10, var = 'pager', opts = {}) @data, @page, @limit, @var = data, page, limit, var @css = Paginate.trait[:paginate][:css].dup @css.merge!(opts[:css]) if opts[:css] @pager = pager_for(data) @page = @page > page_count ? page_count : @page @pager = pager_for(data) end
Public Instance Methods
count()
click to toggle source
# File lib/ramaze/helper/paginate.rb, line 207 def count ; @pager.count ; end
current_page()
click to toggle source
# File lib/ramaze/helper/paginate.rb, line 202 def current_page; @pager.current_page; end
each(&block)
click to toggle source
# File lib/ramaze/helper/paginate.rb, line 199 def each(&block); @pager.each(&block); end
empty?()
click to toggle source
# File lib/ramaze/helper/paginate.rb, line 206 def empty? ; @pager.empty? ; end
first_page?()
click to toggle source
# File lib/ramaze/helper/paginate.rb, line 200 def first_page? ; @pager.first_page? ; end
last_page()
click to toggle source
# File lib/ramaze/helper/paginate.rb, line 203 def last_page ; @pager.last_page ; end
last_page?()
click to toggle source
# File lib/ramaze/helper/paginate.rb, line 204 def last_page? ; @pager.last_page? ; end
needed?()
click to toggle source
Useful to omit pager if it's of no use.
# File lib/ramaze/helper/paginate.rb, line 192 def needed? @pager.page_count > 1 end
next_page()
click to toggle source
# File lib/ramaze/helper/paginate.rb, line 205 def next_page ; @pager.next_page ; end
page_count()
click to toggle source
these methods are actually on the pager, but we def them here for convenience (method_missing in helper is evil and even slower)
# File lib/ramaze/helper/paginate.rb, line 198 def page_count ; @pager.page_count ; end
prev_page()
click to toggle source
# File lib/ramaze/helper/paginate.rb, line 201 def prev_page ; @pager.prev_page ; end
Private Instance Methods
link(g, n, text = n, hash = {})
click to toggle source
# File lib/ramaze/helper/paginate.rb, line 224 def link(g, n, text = n, hash = {}) text = h(text.to_s) action = Current.action params = request.params.merge(@var.to_s => n) hash[:href] = action.node.r(action.path, params) g.a(hash){ text } end
pager_for(obj)
click to toggle source
# File lib/ramaze/helper/paginate.rb, line 211 def pager_for(obj) @page = @page < 1 ? 1 : @page case obj when Array ArrayPager.new(obj, @page, @limit) when (defined?(DataMapper::Collection) and DataMapper::Collection) DataMapperPager.new(obj, @page, @limit) else obj.paginate(@page, @limit) end end