Find file
Fetching contributors…
Cannot retrieve contributors at this time
53 lines (38 sloc) 1.28 KB


A really simple pagination library, heavily based on the agnostic branch of will_paginate.


Leaf supports pagination for collections responding to total_pages, per_page, previous_page and total_entries in Sinatra views out of the box.

It currently supports two renderers: +Leaf::ViewHelpers::LinkRenderer+ and +Leaf::ViewHelpers::ListRenderer+


gem install leaf

Example usage

require 'rubygems'
require 'sinatra'
require 'leaf'

include Leaf::ViewHelpers::Base

# Needed to paginate any array
# you’ll probably use something else.
require 'leaf/array'

get '/' do
  page = (params[:page]) ? params[:page] : 1
  array = ('a'..'z').to_a

  haml :index, :locals => { 
    :collection => array.paginate({
      :page => page, 
      :per_page => 5

@@ index
= leaf(collection, :renderer => Leaf::ViewHelpers::ListRenderer)
  - collection.each do |letter|
    %li= letter

Authors and credits

Leaf is based on will_paginate which was originally written by PJ Hyett, who later handed over development to Mislav Marohnić. (The library was completely rewritten since then.)