godfat / pagify
- Source
- Commits
- Network (0)
- Issues (0)
- Downloads (3)
- Wiki (1)
- Graphs
-
Branch:
master
pagify /
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Wed Feb 04 03:37:52 -0800 2009 | |
| |
CHANGES | Mon Nov 16 02:51:29 -0800 2009 | |
| |
LICENSE | Sat Oct 11 08:13:43 -0700 2008 | |
| |
NOTICE | Wed Oct 22 01:16:42 -0700 2008 | |
| |
README | Mon Nov 16 07:47:25 -0800 2009 | |
| |
Rakefile | Thu Dec 03 02:02:27 -0800 2009 | |
| |
TODO | Mon Nov 16 07:50:02 -0800 2009 | |
| |
lib/ | Mon Nov 16 02:51:29 -0800 2009 | |
| |
misc.txt | Tue Nov 17 09:47:11 -0800 2009 | |
| |
pagify.gemspec | Mon Nov 16 07:47:59 -0800 2009 | |
| |
spec/ | Sat Oct 11 08:13:43 -0700 2008 | |
| |
test/ | Mon Nov 16 02:15:26 -0800 2009 | |
| |
tmp/ | Wed Oct 22 02:45:42 -0700 2008 |
README
= pagify 0.7.0 by Lin Jen-Shin (aka godfat-真常[http://godfat.org]) godfat (XD) godfat.org == LINKS: * github-project[http://github.com/godfat/pagify] * rubyforge-project[http://rubyforge.org/projects/ludy] == DESCRIPTION: Pagination tools for Array(or custom class), DataMapper and ActiveRecord Helpers for Innate/Ramaze and Rails included. == FEATURES: * Aims to be as flexible as possible * Separate intrusive "pagify" method and Array/DataMapper/ActiveRecord Pager. * Separate view helpers. There's only html helper right now. * Web framework specific helper included. Currently for Innate/Ramaze and Rails. == SYNOPSIS: # for fast Rails will_paginate replacement: require 'pagify/active_record' require 'pagify/helper/rails' # in controller: @photos = Photo.pagify(:page => params[:page]) # in view: pagify_links(@photos) # for Innate/Ramaze: require 'pagify' require 'pagify/helper/innate' # in controller, say you want pagify helper: class Controller < Ramaze::Controller helper :pagify end # for the data part, see DataMapperPager or ActiveRecordPager # in view, same as in Rails # basic DataMapper usage: require 'pagify/data_mapper' class User include DataMapper::Resource property :id, Serial property :name, String has n, :pets end class Pet include DataMapper::Resource property :id, Serial property :name, String belongs_to :user end User.pagify :page => 1, :per_page => 10 # => create a page contains users User.all(:name => 'godfat').pagify # => create a page contains users named godfat User.get(1).pets.pagify # => create a page contains pets owned by user 1 # basic html helper usage: require 'pagify/helper/html' # create a string with page links. Pet.pagify.pager.html.links(params[:page]){ |page| # the block result would be used as url for each page "/pets/list?page=#{page}" } Pagify::Helper::HTML.setting[:prev_text] = '<]' # globally change html setting # NOTE: if you would like to use instance level setting, you shouldn't use method pagify, # NOTE: new your own DataMapperPager or so to remember instance level html setting. # NOTE: for example, see below: class Pet # same as above def self.page num @pager ||= begin pager = Pagify::DataMapperPager.new(:per_page => 20) # below would be pager instance level setting # you can setup global setting mentioned above in your init script perhaps pager.html.setting[:separator] = ' . ' pager.html.setting[:ellipsis] = '...' pager end @pager.page(num) end end # then you would use Pet.page(3) or user.pets.page(2) to retrieve data # this would create next/prev links only. Pet.page(1).html.links_navigate{ |page| "/pets/list?page=#{page}" } # this would create next/prev links and other page links pet_pager.page(1).html.links_full{ |page| "/pets/show?page=#{page}" } # and you can build your pager from scratch via BasicPager. # e.g. BasicPager.new :fetcher => lambda{|*a|[]}, :counter => lambda{0} # this would be similar to Pagify::NullPager. # you can disable null page via passing :null_page => false to any pager, # or set pager.null_page = false; anytime. # see example or test for more examples (and use case for ActiveRecordPager). == REQUIREMENTS: * ruby 1.8+ or 1.9.1+ * for Basic/ArrayPager: only ruby is needed * for DataMapperPager: dm-core and dm-aggregates 0.10.1+ * for ActiveRecordPager: activerecord 2.3.4+ * for Innate helper: innate 2009.07+ == INSTALL: * gem install pagify == LICENSE: Apache License 2.0 Copyright (c) 2008-2009, Lin Jen-Shin (aka godfat 真常) Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

