krunaldo-dm-pagination 0.2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +20 -0
- data/README +23 -0
- data/Rakefile +58 -0
- data/TODO +5 -0
- data/lib/dm-pagination/merbtasks.rb +6 -0
- data/lib/dm-pagination/paginatable.rb +9 -0
- data/lib/dm-pagination/pagination.rb +41 -0
- data/lib/dm-pagination/pagination_builder.rb +85 -0
- data/lib/dm-pagination.rb +41 -0
- data/spec/dm-pagination_spec.rb +99 -0
- data/spec/fixture/app/controllers/pagination_builder.rb +11 -0
- data/spec/fixture/app/models/post.rb +10 -0
- data/spec/fixture/app/views/layout/application.html.erb +11 -0
- data/spec/fixture/app/views/pagination_builder/simple.html.erb +7 -0
- data/spec/fixture/app/views/pagination_builder/variant.html.erb +1 -0
- data/spec/fixture/config/router.rb +13 -0
- data/spec/spec_helper.rb +42 -0
- metadata +89 -0
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2009 YOUR NAME
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
dm-pagination
|
2
|
+
=============
|
3
|
+
|
4
|
+
A plugin for the Merb framework that provides pagination for DataMapper.
|
5
|
+
|
6
|
+
USAGE:
|
7
|
+
|
8
|
+
In your controller,
|
9
|
+
|
10
|
+
class Posts
|
11
|
+
def index
|
12
|
+
@posts = Post.paginate(:page => params[:page])
|
13
|
+
end
|
14
|
+
|
15
|
+
In your view,
|
16
|
+
|
17
|
+
<ul>
|
18
|
+
<% @posts.each do |post| %>
|
19
|
+
<li><%= h(post.body) %></li>
|
20
|
+
<% end %>
|
21
|
+
</ul>
|
22
|
+
<%= paginate @posts %>
|
23
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake/gempackagetask'
|
3
|
+
|
4
|
+
require 'merb-core'
|
5
|
+
require 'merb-core/tasks/merb'
|
6
|
+
|
7
|
+
GEM_NAME = "dm-pagination"
|
8
|
+
GEM_VERSION = "0.1.2.1"
|
9
|
+
AUTHOR = "Genki Takiuchi"
|
10
|
+
EMAIL = "genki@s21g.com"
|
11
|
+
HOMEPAGE = "http://blog.s21g.com/genki"
|
12
|
+
SUMMARY = "Merb plugin that provides pagination for DataMapper"
|
13
|
+
|
14
|
+
spec = Gem::Specification.new do |s|
|
15
|
+
s.rubyforge_project = 'merb'
|
16
|
+
s.name = GEM_NAME
|
17
|
+
s.version = GEM_VERSION
|
18
|
+
s.platform = Gem::Platform::RUBY
|
19
|
+
s.has_rdoc = true
|
20
|
+
s.extra_rdoc_files = ["README", "LICENSE", 'TODO']
|
21
|
+
s.summary = SUMMARY
|
22
|
+
s.description = s.summary
|
23
|
+
s.author = AUTHOR
|
24
|
+
s.email = EMAIL
|
25
|
+
s.homepage = HOMEPAGE
|
26
|
+
s.add_dependency('merb', '>= 1.0.7.1')
|
27
|
+
s.require_path = 'lib'
|
28
|
+
s.files = %w(LICENSE README Rakefile TODO) + Dir.glob("{lib,spec}/**/*")
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
Rake::GemPackageTask.new(spec) do |pkg|
|
33
|
+
pkg.gem_spec = spec
|
34
|
+
end
|
35
|
+
|
36
|
+
desc "install the plugin as a gem"
|
37
|
+
task :install do
|
38
|
+
Merb::RakeHelper.install(GEM_NAME, :version => GEM_VERSION)
|
39
|
+
end
|
40
|
+
|
41
|
+
desc "Uninstall the gem"
|
42
|
+
task :uninstall do
|
43
|
+
Merb::RakeHelper.uninstall(GEM_NAME, :version => GEM_VERSION)
|
44
|
+
end
|
45
|
+
|
46
|
+
desc "Create a gemspec file"
|
47
|
+
task :gemspec do
|
48
|
+
File.open("#{GEM_NAME}.gemspec", "w") do |file|
|
49
|
+
file.puts spec.to_ruby
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
desc "Run spec"
|
54
|
+
task :spec do
|
55
|
+
sh "spec spec --color"
|
56
|
+
end
|
57
|
+
|
58
|
+
task :default => :spec
|
data/TODO
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
module DmPagination
|
2
|
+
class Pagination
|
3
|
+
def initialize(collection, options)
|
4
|
+
@page = (options[:page] || 1).to_i
|
5
|
+
@per_page = (options[:per_page] || 10).to_i
|
6
|
+
@proxy_collection = collection
|
7
|
+
@collection = collection.all(
|
8
|
+
:offset => (@page - 1)*@per_page, :limit => @per_page)
|
9
|
+
@num_pages = num_pages
|
10
|
+
end
|
11
|
+
|
12
|
+
def page
|
13
|
+
@page
|
14
|
+
end
|
15
|
+
|
16
|
+
def num_pages
|
17
|
+
(@proxy_collection.count + @per_page - 1) / @per_page
|
18
|
+
end
|
19
|
+
|
20
|
+
def pages(window = 5, left = 2, right = 2)
|
21
|
+
return [] if @num_pages <= 1
|
22
|
+
(1..@num_pages).inject([]) do |result, i|
|
23
|
+
i <= left || (@num_pages - i) < right || (i-page).abs < window ?
|
24
|
+
result << i : (result.last.nil? ? result : result << nil)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def count
|
29
|
+
offset = (@page - 1)*@per_page
|
30
|
+
[0, [@proxy_collection.count - offset, @per_page].min].max
|
31
|
+
end
|
32
|
+
|
33
|
+
def respond_to?(*args, &block)
|
34
|
+
super || @collection.send(:respond_to?, *args, &block)
|
35
|
+
end
|
36
|
+
|
37
|
+
def method_missing(method, *args, &block)
|
38
|
+
@collection.send(method, *args, &block)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
module DmPagination
|
2
|
+
class PaginationBuilder
|
3
|
+
def initialize(context, pagination, *args, &block)
|
4
|
+
@context = context
|
5
|
+
@pagination = pagination
|
6
|
+
@block = block
|
7
|
+
@options = args.last.kind_of?(Hash) ? args.pop : {}
|
8
|
+
@options[:page] ||= :page
|
9
|
+
@args = args.blank? ? [:prev, :pages, :next] : args
|
10
|
+
end
|
11
|
+
|
12
|
+
def to_s(*args)
|
13
|
+
args = @args if args.blank?
|
14
|
+
items = args.map{|i| respond_to?("link_to_#{i}") ?
|
15
|
+
send("link_to_#{i}") : []}.flatten
|
16
|
+
@context.tag(:div, items.join("\n"), :class => "pagination")
|
17
|
+
end
|
18
|
+
|
19
|
+
def link_to_pages
|
20
|
+
@pagination.pages.map{|page| link_to_page(page)}
|
21
|
+
end
|
22
|
+
|
23
|
+
def link_to_prev
|
24
|
+
if @pagination.page > 1
|
25
|
+
@context.link_to prev_label,
|
26
|
+
url(@options[:page] => @pagination.page - 1),
|
27
|
+
:class => :prev, :rel => "prev"
|
28
|
+
else
|
29
|
+
span.call(prev_label, :prev)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def link_to_next
|
34
|
+
if @pagination.page < @pagination.num_pages
|
35
|
+
@context.link_to next_label,
|
36
|
+
url(@options[:page] => @pagination.page + 1),
|
37
|
+
:class => :next, :rel => "next"
|
38
|
+
else
|
39
|
+
span.call(next_label, :next)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def link_to_page(page)
|
44
|
+
if page.nil?
|
45
|
+
span.call truncate, @options[:style]
|
46
|
+
elsif page == @pagination.page
|
47
|
+
span.call page, [@options[:style], 'current'].compact.join(' ')
|
48
|
+
else
|
49
|
+
span.call link(page), @options[:style]
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
private
|
54
|
+
def span
|
55
|
+
proc do |*args|
|
56
|
+
@context.tag(:span, args[0].to_s,
|
57
|
+
:class => [args[1], "disabled"].compact.join(' '))
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def link(page, *args)
|
62
|
+
if @block
|
63
|
+
@block.call(page, *args)
|
64
|
+
else
|
65
|
+
@context.link_to(page, url(@options[:page] => page))
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def truncate
|
70
|
+
@options[:truncate] || Merb::Plugins.config[:dm_pagination][:truncate]
|
71
|
+
end
|
72
|
+
|
73
|
+
def prev_label
|
74
|
+
@options[:prev] || Merb::Plugins.config[:dm_pagination][:prev_label]
|
75
|
+
end
|
76
|
+
|
77
|
+
def next_label
|
78
|
+
@options[:next] || Merb::Plugins.config[:dm_pagination][:next_label]
|
79
|
+
end
|
80
|
+
|
81
|
+
def url(params)
|
82
|
+
@context.url(@context.params.merge(params))
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# make sure we're running inside Merb
|
2
|
+
if defined?(Merb::Plugins)
|
3
|
+
|
4
|
+
# Merb gives you a Merb::Plugins.config hash...feel free to put your stuff in your piece of it
|
5
|
+
Merb::Plugins.config[:dm_pagination] = {
|
6
|
+
:prev_label => '« Prev',
|
7
|
+
:next_label => 'Next »',
|
8
|
+
:truncate => '...'
|
9
|
+
}
|
10
|
+
|
11
|
+
Merb::BootLoader.before_app_loads do
|
12
|
+
# require code that must be loaded before the application
|
13
|
+
require 'dm-pagination/paginatable'
|
14
|
+
module DataMapper
|
15
|
+
module Resource
|
16
|
+
module ClassMethods
|
17
|
+
include DmPagination::Paginatable
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class Collection
|
22
|
+
extend DmPagination::Paginatable
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
require 'dm-pagination/pagination_builder'
|
27
|
+
module Merb
|
28
|
+
module GlobalHelpers
|
29
|
+
def paginate(pagination, *args, &block)
|
30
|
+
DmPagination::PaginationBuilder.new(self, pagination, *args, &block)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
Merb::BootLoader.after_app_loads do
|
37
|
+
# code that can be required after the application loads
|
38
|
+
end
|
39
|
+
|
40
|
+
Merb::Plugins.add_rakefiles "dm-pagination/merbtasks"
|
41
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
2
|
+
|
3
|
+
DataMapper.setup(:default, "sqlite3::memory:")
|
4
|
+
|
5
|
+
Post.auto_migrate!
|
6
|
+
|
7
|
+
describe "dm-pagination" do
|
8
|
+
describe "paginatable" do
|
9
|
+
it "should extend DataMapper::Resource" do
|
10
|
+
test = Post.new
|
11
|
+
test.should_not be_nil
|
12
|
+
Post.should be_respond_to(:paginate)
|
13
|
+
Post.all.should be_respond_to(:paginate)
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should return Pagination object" do
|
17
|
+
Post.paginate.should be_kind_of(DmPagination::Pagination)
|
18
|
+
Post.all.paginate.should be_kind_of(DmPagination::Pagination)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should respond to model's method" do
|
22
|
+
Post.paginate.should be_respond_to(:to_atom)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe "pagination" do
|
27
|
+
before :all do
|
28
|
+
Post.all.destroy!
|
29
|
+
101.times{|i| Post.create(:index => i)}
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should be specified on 101 test posts" do
|
33
|
+
Post.count.should == 101
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should have 10 pages" do
|
37
|
+
Post.paginate.num_pages.should == 11
|
38
|
+
Post.all.paginate.num_pages.should == 11
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should be able to calculate num pages on scope" do
|
42
|
+
Post.all(:index.gt => 50).count.should == 50
|
43
|
+
Post.all(:index.gt => 50).paginate.num_pages.should == 5
|
44
|
+
Post.all(:index.gt => 49).paginate.num_pages.should == 6
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should act as Collection" do
|
48
|
+
Post.paginate(:page => 8).count.should == 10
|
49
|
+
Post.paginate(:page => 11).count.should == 1
|
50
|
+
Post.paginate(:page => 12).count.should == 0
|
51
|
+
Post.paginate(:page => 5, :per_page => 6).count.should == 6
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
describe "pagination builder" do
|
56
|
+
include Merb::Helpers::Tag
|
57
|
+
|
58
|
+
before :all do
|
59
|
+
Post.all.destroy!
|
60
|
+
101.times{|i| Post.create(:index => i)}
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should be tested on 101 posts" do
|
64
|
+
Post.count.should == 101
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should have rendered with pagination" do
|
68
|
+
response = request "/pagination_builder/simple"
|
69
|
+
response.should be_successful
|
70
|
+
response.should have_selector("div.pagination")
|
71
|
+
response.should have_selector("ul")
|
72
|
+
response.should have_selector("li")
|
73
|
+
response.should have_selector("a[rel=next]")
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should have rendered with pagination at page 2" do
|
77
|
+
response = request "/pagination_builder/simple", :params => {:page => 2}
|
78
|
+
response.should be_successful
|
79
|
+
response.should have_selector("a.prev[rel=prev]")
|
80
|
+
response.should have_selector("a.next[rel=next]")
|
81
|
+
response.body.scan(/Prev|Next/).should == %w(Prev Next)
|
82
|
+
url = "/pagination_builder/simple?page=3"
|
83
|
+
response.should have_xpath("//a[@href='#{url}']")
|
84
|
+
end
|
85
|
+
|
86
|
+
it "should be able to control links" do
|
87
|
+
response = request "/pagination_builder/variant"
|
88
|
+
response.should be_successful
|
89
|
+
response.body.scan(/Prev|Next/).should == %w(Next Prev)
|
90
|
+
response.should have_selector("a.next[rel=next]")
|
91
|
+
response.should_not have_selector("a.prev[rel=prev]")
|
92
|
+
response.should have_selector("span.prev")
|
93
|
+
response.should have_selector("span.number")
|
94
|
+
response.should_not have_selector("span.prev.number")
|
95
|
+
url = "/pagination_builder/variant?foo=2"
|
96
|
+
response.should have_xpath("//a[@href='#{url}']")
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us" lang="en-us">
|
3
|
+
<head>
|
4
|
+
<title>Fresh Merb App</title>
|
5
|
+
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
6
|
+
<link rel="stylesheet" href="/stylesheets/master.css" type="text/css" media="screen" charset="utf-8"/>
|
7
|
+
</head>
|
8
|
+
<body>
|
9
|
+
<%= catch_content :for_layout %>
|
10
|
+
</body>
|
11
|
+
</html>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= paginate @posts, :pages, :next, :prev, :style => 'number', :page => :foo %>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
Merb::Router.prepare do |r|
|
2
|
+
# RESTful routes
|
3
|
+
# r.resources :posts
|
4
|
+
|
5
|
+
# This is the default route for /:controller/:action/:id
|
6
|
+
# This is fine for most cases. If you're heavily using resource-based
|
7
|
+
# routes, you may want to comment/remove this line to prevent
|
8
|
+
# clients from calling your create or destroy actions with a GET
|
9
|
+
r.default_routes
|
10
|
+
|
11
|
+
# Change this for your home page to be available at /
|
12
|
+
# r.match('/').to(:controller => 'whatever', :action =>'index')
|
13
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
$:.push File.join(File.dirname(__FILE__), '..', 'lib')
|
2
|
+
require 'rubygems'
|
3
|
+
require 'spec'
|
4
|
+
require 'merb-core'
|
5
|
+
require 'merb-helpers'
|
6
|
+
require 'merb-assets'
|
7
|
+
require 'dm-core'
|
8
|
+
require 'dm-pagination'
|
9
|
+
require 'dm-pagination/paginatable'
|
10
|
+
require 'dm-pagination/pagination_builder'
|
11
|
+
require 'dm-aggregates'
|
12
|
+
|
13
|
+
default_options = {
|
14
|
+
:environment => 'test',
|
15
|
+
:adapter => 'runner',
|
16
|
+
:merb_root => File.dirname(__FILE__) / 'fixture',
|
17
|
+
:log_file => File.dirname(__FILE__) / '..' / 'log' / "merb_test.log"
|
18
|
+
}
|
19
|
+
options = default_options.merge($START_OPTIONS || {})
|
20
|
+
DataMapper::Model.append_extensions DmPagination::Paginatable
|
21
|
+
module Merb
|
22
|
+
module GlobalHelpers
|
23
|
+
def paginate(pagination, *args, &block)
|
24
|
+
DmPagination::PaginationBuilder.new(self, pagination, *args, &block)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
Merb.disable(:initfile)
|
30
|
+
Merb.start_environment(options)
|
31
|
+
|
32
|
+
Spec::Runner.configure do |config|
|
33
|
+
config.include Merb::Test::RequestHelper
|
34
|
+
config.include Webrat::Matchers
|
35
|
+
config.include Webrat::HaveTagMatcher
|
36
|
+
|
37
|
+
def with_level(level)
|
38
|
+
Merb.logger = Merb::Logger.new(StringIO.new, level)
|
39
|
+
yield
|
40
|
+
Merb.logger
|
41
|
+
end
|
42
|
+
end
|
metadata
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: krunaldo-dm-pagination
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Genki Takiuchi
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-01-27 00:00:00 -08:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: merb
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.0.7.1
|
24
|
+
version:
|
25
|
+
description: Merb plugin that provides pagination for DataMapper
|
26
|
+
email: genki@s21g.com
|
27
|
+
executables: []
|
28
|
+
|
29
|
+
extensions: []
|
30
|
+
|
31
|
+
extra_rdoc_files:
|
32
|
+
- README
|
33
|
+
- LICENSE
|
34
|
+
- TODO
|
35
|
+
files:
|
36
|
+
- LICENSE
|
37
|
+
- README
|
38
|
+
- Rakefile
|
39
|
+
- TODO
|
40
|
+
- lib/dm-pagination
|
41
|
+
- lib/dm-pagination/merbtasks.rb
|
42
|
+
- lib/dm-pagination/paginatable.rb
|
43
|
+
- lib/dm-pagination/pagination.rb
|
44
|
+
- lib/dm-pagination/pagination_builder.rb
|
45
|
+
- lib/dm-pagination.rb
|
46
|
+
- spec/dm-pagination_spec.rb
|
47
|
+
- spec/fixture
|
48
|
+
- spec/fixture/app
|
49
|
+
- spec/fixture/app/controllers
|
50
|
+
- spec/fixture/app/controllers/pagination_builder.rb
|
51
|
+
- spec/fixture/app/models
|
52
|
+
- spec/fixture/app/models/post.rb
|
53
|
+
- spec/fixture/app/views
|
54
|
+
- spec/fixture/app/views/layout
|
55
|
+
- spec/fixture/app/views/layout/application.html.erb
|
56
|
+
- spec/fixture/app/views/pagination_builder
|
57
|
+
- spec/fixture/app/views/pagination_builder/simple.html.erb
|
58
|
+
- spec/fixture/app/views/pagination_builder/variant.html.erb
|
59
|
+
- spec/fixture/config
|
60
|
+
- spec/fixture/config/router.rb
|
61
|
+
- spec/spec_helper.rb
|
62
|
+
has_rdoc: true
|
63
|
+
homepage: http://blog.s21g.com/genki
|
64
|
+
post_install_message:
|
65
|
+
rdoc_options: []
|
66
|
+
|
67
|
+
require_paths:
|
68
|
+
- lib
|
69
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: "0"
|
74
|
+
version:
|
75
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: "0"
|
80
|
+
version:
|
81
|
+
requirements: []
|
82
|
+
|
83
|
+
rubyforge_project: merb
|
84
|
+
rubygems_version: 1.2.0
|
85
|
+
signing_key:
|
86
|
+
specification_version: 2
|
87
|
+
summary: Merb plugin that provides pagination for DataMapper
|
88
|
+
test_files: []
|
89
|
+
|