Module: Ramaze::Helper::Paginate

Includes:
Traited
Defined in:
lib/ramaze/helper/paginate.rb

Overview

Helper for pagination and pagination-navigation.

See detailed API docs for Paginator below. Also have a look at the examples/helpers/paginate.rb

Defined Under Namespace

Classes: Paginator

Instance Method Summary (collapse)

Instance Method Details

- (Object) paginate(dataset, options = {})

Returns a new Paginator instance.

Note that the pagination relies on being inside a Ramaze request to gain necessary metadata about the page it resides on, you cannot use it outside of Ramaze yet.

The examples below are meant to be used within your controller or view.

Usage with Array:

  data = (1..100).to_a
  @pager = paginate(data, :limit => 30, :page => 2)
  @pager.navigation
  @pager.each{|e| puts(e) }

Usage with Sequel:

  data = Article.filter(:public => true)
  @pager = paginate(data, :limit => 5)
  @pager.navigation
  @pager.each{|e| puts(e)

Note that you must first extend Sequel with the pagination extension.

  Sequel.extension :pagination

dataset may be a Sequel dataset or an Array options Takes precedence to trait[:paginate] and may contain

          following pairs:
  :limit  The number of elements used when you call #each on the
          paginator
  :var    The variable name being used in the request, this is helpful
          if you want to use two or more independent paginations on the
          same page.
  :page   The page you are currently on, if not given it will be
          retrieved from current request variables. Defaults to 1 if
          neither exists.


55
56
57
58
59
60
61
62
# File 'lib/ramaze/helper/paginate.rb', line 55

def paginate(dataset, options = {})
  options = ancestral_trait[:paginate].merge(options)
  limit = options[:limit]
  var   = options[:var]
  page  = options[:page] || (request[var] || 1).to_i

  Paginator.new(dataset, page, limit, var)
end