will_paginate 3.0.5 → 3.0.6
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.
- checksums.yaml +7 -0
- data/README.md +2 -2
- data/lib/will_paginate/active_record.rb +8 -3
- data/lib/will_paginate/version.rb +1 -1
- data/spec/database.yml +4 -1
- data/spec/finders/active_record_spec.rb +18 -6
- data/spec/finders/activerecord_test_connector.rb +11 -8
- data/spec/fixtures/developer.rb +3 -2
- data/spec/fixtures/project.rb +1 -3
- data/spec/fixtures/reply.rb +0 -2
- data/spec/fixtures/topic.rb +1 -4
- data/spec/matchers/deprecation_matcher.rb +27 -0
- data/spec/matchers/phrase_matcher.rb +19 -0
- data/spec/matchers/query_count_matcher.rb +36 -0
- data/spec/spec_helper.rb +2 -48
- data/spec/view_helpers/action_view_spec.rb +6 -6
- data/spec/view_helpers/view_example_group.rb +4 -0
- metadata +16 -15
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 2b4a394317f67e89d1bea01f567721310ee8a13c
|
4
|
+
data.tar.gz: db08d65616e1e1f62e3cc8ec0da17703bd78dd3c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6cbe6fabc2c9b57da7d9df6fa8408b0c9ff471a8c956db8af8a1d82e0430fd8cae1f89cc9898a5e9796288f411ae76fca939c3ec77647c6179c8f2c61b699847
|
7
|
+
data.tar.gz: f58e6d478a08ea4c24494886d4d623b9f6ff2a2dca2c56d9261325179d8d4598426c20ebe947f8b8d6838cd90347a43e84396b1e367d10981b426eec2fb7b980
|
data/README.md
CHANGED
@@ -5,8 +5,8 @@ will_paginate is a pagination library that integrates with Ruby on Rails, Sinatr
|
|
5
5
|
Installation:
|
6
6
|
|
7
7
|
``` ruby
|
8
|
-
## Gemfile for Rails 3
|
9
|
-
gem 'will_paginate', '~> 3.0'
|
8
|
+
## Gemfile for Rails 3+, Sinatra, and Merb
|
9
|
+
gem 'will_paginate', '~> 3.0.6'
|
10
10
|
```
|
11
11
|
|
12
12
|
See [installation instructions][install] on the wiki for more info.
|
@@ -2,6 +2,11 @@ require 'will_paginate/per_page'
|
|
2
2
|
require 'will_paginate/page_number'
|
3
3
|
require 'will_paginate/collection'
|
4
4
|
require 'active_record'
|
5
|
+
begin
|
6
|
+
require 'active_record/deprecated_finders'
|
7
|
+
rescue LoadError
|
8
|
+
# only for Rails 4.1
|
9
|
+
end
|
5
10
|
|
6
11
|
module WillPaginate
|
7
12
|
# = Paginating finders for ActiveRecord models
|
@@ -78,16 +83,16 @@ module WillPaginate
|
|
78
83
|
end
|
79
84
|
end
|
80
85
|
|
81
|
-
def count
|
86
|
+
def count(*args)
|
82
87
|
if limit_value
|
83
88
|
excluded = [:order, :limit, :offset, :reorder]
|
84
89
|
excluded << :includes unless eager_loading?
|
85
90
|
rel = self.except(*excluded)
|
86
91
|
# TODO: hack. decide whether to keep
|
87
92
|
rel = rel.apply_finder_options(@wp_count_options) if defined? @wp_count_options
|
88
|
-
rel.count
|
93
|
+
rel.count(*args)
|
89
94
|
else
|
90
|
-
super
|
95
|
+
super(*args)
|
91
96
|
end
|
92
97
|
end
|
93
98
|
|
data/spec/database.yml
CHANGED
@@ -8,15 +8,18 @@ mysql:
|
|
8
8
|
database: will_paginate
|
9
9
|
username:
|
10
10
|
encoding: utf8
|
11
|
+
socket: <%= ENV["BOXEN_MYSQL_SOCKET"] %>
|
11
12
|
|
12
13
|
mysql2:
|
13
14
|
adapter: mysql2
|
14
15
|
database: will_paginate
|
15
16
|
username:
|
16
17
|
encoding: utf8
|
18
|
+
socket: <%= ENV["BOXEN_MYSQL_SOCKET"] %>
|
17
19
|
|
18
20
|
postgres:
|
19
21
|
adapter: postgresql
|
20
22
|
database: will_paginate
|
21
|
-
username: postgres
|
23
|
+
username: <%= "postgres" if ENV["TRAVIS"] %>
|
22
24
|
min_messages: warning
|
25
|
+
port: <%= ENV["BOXEN_POSTGRESQL_PORT"] %>
|
@@ -191,6 +191,7 @@ describe WillPaginate::ActiveRecord do
|
|
191
191
|
it "keeps :include for count when they are referenced in :conditions" do
|
192
192
|
developers = Developer.paginate(:page => 1, :per_page => 1).includes(:projects)
|
193
193
|
with_condition = developers.where('projects.id > 1')
|
194
|
+
with_condition = with_condition.references(:projects) if with_condition.respond_to?(:references)
|
194
195
|
with_condition.total_entries.should == 1
|
195
196
|
|
196
197
|
$query_sql.last.should =~ /\bJOIN\b/
|
@@ -304,13 +305,16 @@ describe WillPaginate::ActiveRecord do
|
|
304
305
|
end
|
305
306
|
|
306
307
|
it "should paginate with :include and :conditions" do
|
307
|
-
|
308
|
+
klass = Topic
|
309
|
+
klass = klass.references(:replies) if klass.respond_to?(:references)
|
310
|
+
|
311
|
+
result = klass.paginate \
|
308
312
|
:page => 1,
|
309
313
|
:include => :replies,
|
310
314
|
:conditions => "replies.content LIKE 'Bird%' ",
|
311
315
|
:per_page => 10
|
312
316
|
|
313
|
-
expected =
|
317
|
+
expected = klass.find :all,
|
314
318
|
:include => 'replies',
|
315
319
|
:conditions => "replies.content LIKE 'Bird%' ",
|
316
320
|
:limit => 10
|
@@ -339,13 +343,19 @@ describe WillPaginate::ActiveRecord do
|
|
339
343
|
it "should paginate with include" do
|
340
344
|
project = projects(:active_record)
|
341
345
|
|
342
|
-
|
346
|
+
topics = project.topics
|
347
|
+
topics = topics.references(:replies) if topics.respond_to?(:references)
|
348
|
+
|
349
|
+
result = topics.paginate \
|
343
350
|
:page => 1,
|
344
351
|
:include => :replies,
|
345
352
|
:conditions => ["replies.content LIKE ?", 'Nice%'],
|
346
353
|
:per_page => 10
|
347
354
|
|
348
|
-
|
355
|
+
topics = Topic
|
356
|
+
topics = topics.references(:replies) if topics.respond_to?(:references)
|
357
|
+
|
358
|
+
expected = topics.find :all,
|
349
359
|
:include => 'replies',
|
350
360
|
:conditions => ["project_id = ? AND replies.content LIKE ?", project.id, 'Nice%'],
|
351
361
|
:limit => 10
|
@@ -360,8 +370,10 @@ describe WillPaginate::ActiveRecord do
|
|
360
370
|
|
361
371
|
lambda {
|
362
372
|
# with association-specified order
|
363
|
-
result = ignore_deprecation {
|
364
|
-
|
373
|
+
result = ignore_deprecation {
|
374
|
+
dhh.projects.includes(:topics).paginate(:page => 1, :order => 'projects.name')
|
375
|
+
}
|
376
|
+
result.to_a.should == expected_name_ordered
|
365
377
|
result.total_entries.should == 2
|
366
378
|
}.should run_queries(2)
|
367
379
|
|
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'active_record'
|
2
2
|
require 'active_record/fixtures'
|
3
3
|
require 'active_support/multibyte' # needed for Ruby 1.9.1
|
4
|
+
require 'stringio'
|
5
|
+
require 'erb'
|
4
6
|
|
5
7
|
$query_count = 0
|
6
8
|
$query_sql = []
|
@@ -9,7 +11,7 @@ ignore_sql = /
|
|
9
11
|
^(
|
10
12
|
PRAGMA | SHOW\ max_identifier_length |
|
11
13
|
SELECT\ (currval|CAST|@@IDENTITY|@@ROWCOUNT) |
|
12
|
-
SHOW\ (FIELDS|TABLES)
|
14
|
+
SHOW\ ((FULL\ )?FIELDS|TABLES)
|
13
15
|
)\b |
|
14
16
|
\bFROM\ (sqlite_master|pg_tables|pg_attribute)\b
|
15
17
|
/x
|
@@ -59,8 +61,9 @@ module ActiverecordTestConnector
|
|
59
61
|
|
60
62
|
def setup_connection
|
61
63
|
db = ENV['DB'].blank?? 'sqlite3' : ENV['DB']
|
62
|
-
|
63
|
-
|
64
|
+
|
65
|
+
erb = ERB.new(File.read(File.expand_path('../../database.yml', __FILE__)))
|
66
|
+
configurations = YAML.load(erb.result)
|
64
67
|
raise "no configuration for '#{db}'" unless configurations.key? db
|
65
68
|
configuration = configurations[db]
|
66
69
|
|
@@ -68,17 +71,17 @@ module ActiverecordTestConnector
|
|
68
71
|
puts "using #{configuration['adapter']} adapter"
|
69
72
|
|
70
73
|
ActiveRecord::Base.configurations = { db => configuration }
|
71
|
-
ActiveRecord::Base.establish_connection(db)
|
74
|
+
ActiveRecord::Base.establish_connection(db.to_sym)
|
72
75
|
ActiveRecord::Base.default_timezone = :utc
|
73
76
|
end
|
74
77
|
|
75
78
|
def load_schema
|
76
|
-
|
77
|
-
|
78
|
-
silence_args << :stdout if silencer.arity != 0
|
79
|
-
silencer.call(*silence_args) do
|
79
|
+
begin
|
80
|
+
$stdout = StringIO.new
|
80
81
|
ActiveRecord::Migration.verbose = false
|
81
82
|
load File.join(FIXTURES_PATH, 'schema.rb')
|
83
|
+
ensure
|
84
|
+
$stdout = STDOUT
|
82
85
|
end
|
83
86
|
end
|
84
87
|
|
data/spec/fixtures/developer.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
class Developer < User
|
2
|
-
has_and_belongs_to_many :projects, :
|
2
|
+
has_and_belongs_to_many :projects, :order => 'projects.name', :join_table => 'developers_projects'
|
3
3
|
|
4
4
|
def self.with_poor_ones(&block)
|
5
|
-
|
5
|
+
options = { :conditions => ['salary <= ?', 80000], :order => 'salary' }
|
6
|
+
with_scope({ :find => options }, :overwrite) do
|
6
7
|
yield
|
7
8
|
end
|
8
9
|
end
|
data/spec/fixtures/project.rb
CHANGED
@@ -7,9 +7,7 @@ class Project < ActiveRecord::Base
|
|
7
7
|
|
8
8
|
has_many :replies, :through => :topics do
|
9
9
|
def only_recent(params = {})
|
10
|
-
|
10
|
+
where(['replies.created_at > ?', 15.minutes.ago])
|
11
11
|
end
|
12
12
|
end
|
13
|
-
|
14
|
-
has_many :unique_replies, :through => :topics, :source => :replies, :uniq => true
|
15
13
|
end
|
data/spec/fixtures/reply.rb
CHANGED
data/spec/fixtures/topic.rb
CHANGED
@@ -1,11 +1,8 @@
|
|
1
1
|
class Topic < ActiveRecord::Base
|
2
|
-
has_many :replies, :dependent => :destroy
|
2
|
+
has_many :replies, :dependent => :destroy
|
3
3
|
belongs_to :project
|
4
4
|
|
5
5
|
scope :mentions_activerecord, lambda {
|
6
6
|
where(['topics.title LIKE ?', '%ActiveRecord%'])
|
7
7
|
}
|
8
|
-
scope :distinct, lambda {
|
9
|
-
select("DISTINCT #{table_name}.*")
|
10
|
-
}
|
11
8
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'stringio'
|
2
|
+
|
3
|
+
class DeprecationMatcher
|
4
|
+
def initialize(message)
|
5
|
+
@message = message
|
6
|
+
end
|
7
|
+
|
8
|
+
def matches?(block)
|
9
|
+
@actual = hijack_stderr(&block)
|
10
|
+
PhraseMatcher.new("DEPRECATION WARNING: #{@message}").matches?(@actual)
|
11
|
+
end
|
12
|
+
|
13
|
+
def failure_message
|
14
|
+
"expected deprecation warning #{@message.inspect}, got #{@actual.inspect}"
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def hijack_stderr
|
20
|
+
err = $stderr
|
21
|
+
$stderr = StringIO.new
|
22
|
+
yield
|
23
|
+
$stderr.string.rstrip
|
24
|
+
ensure
|
25
|
+
$stderr = err
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class PhraseMatcher
|
2
|
+
def initialize(string)
|
3
|
+
@string = string
|
4
|
+
@pattern = /\b#{Regexp.escape string}\b/
|
5
|
+
end
|
6
|
+
|
7
|
+
def matches?(actual)
|
8
|
+
@actual = actual.to_s
|
9
|
+
@actual =~ @pattern
|
10
|
+
end
|
11
|
+
|
12
|
+
def failure_message
|
13
|
+
"expected #{@actual.inspect} to contain phrase #{@string.inspect}"
|
14
|
+
end
|
15
|
+
|
16
|
+
def negative_failure_message
|
17
|
+
"expected #{@actual.inspect} not to contain phrase #{@string.inspect}"
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
class QueryCountMatcher
|
2
|
+
def initialize(num)
|
3
|
+
@expected_count = num
|
4
|
+
end
|
5
|
+
|
6
|
+
def matches?(block)
|
7
|
+
run(block)
|
8
|
+
|
9
|
+
if @expected_count.respond_to? :include?
|
10
|
+
@expected_count.include? @count
|
11
|
+
else
|
12
|
+
@count == @expected_count
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def run(block)
|
17
|
+
$query_count = 0
|
18
|
+
$query_sql = []
|
19
|
+
block.call
|
20
|
+
ensure
|
21
|
+
@queries = $query_sql.dup
|
22
|
+
@count = $query_count
|
23
|
+
end
|
24
|
+
|
25
|
+
def performed_queries
|
26
|
+
@queries
|
27
|
+
end
|
28
|
+
|
29
|
+
def failure_message
|
30
|
+
"expected #{@expected_count} queries, got #{@count}\n#{@queries.join("\n")}"
|
31
|
+
end
|
32
|
+
|
33
|
+
def negative_failure_message
|
34
|
+
"expected query count not to be #{@expected_count}"
|
35
|
+
end
|
36
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -6,6 +6,8 @@ rescue LoadError
|
|
6
6
|
# no debugger available
|
7
7
|
end
|
8
8
|
|
9
|
+
Dir[File.expand_path('../matchers/*_matcher.rb', __FILE__)].each { |matcher| require matcher }
|
10
|
+
|
9
11
|
RSpec.configure do |config|
|
10
12
|
config.include Module.new {
|
11
13
|
protected
|
@@ -22,51 +24,3 @@ RSpec.configure do |config|
|
|
22
24
|
config.mock_with :mocha
|
23
25
|
config.backtrace_clean_patterns << /view_example_group/
|
24
26
|
end
|
25
|
-
|
26
|
-
class PhraseMatcher
|
27
|
-
def initialize(string)
|
28
|
-
@string = string
|
29
|
-
@pattern = /\b#{Regexp.escape string}\b/
|
30
|
-
end
|
31
|
-
|
32
|
-
def matches?(actual)
|
33
|
-
@actual = actual.to_s
|
34
|
-
@actual =~ @pattern
|
35
|
-
end
|
36
|
-
|
37
|
-
def failure_message
|
38
|
-
"expected #{@actual.inspect} to contain phrase #{@string.inspect}"
|
39
|
-
end
|
40
|
-
|
41
|
-
def negative_failure_message
|
42
|
-
"expected #{@actual.inspect} not to contain phrase #{@string.inspect}"
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
require 'stringio'
|
47
|
-
|
48
|
-
class DeprecationMatcher
|
49
|
-
def initialize(message)
|
50
|
-
@message = message
|
51
|
-
end
|
52
|
-
|
53
|
-
def matches?(block)
|
54
|
-
@actual = hijack_stderr(&block)
|
55
|
-
PhraseMatcher.new("DEPRECATION WARNING: #{@message}").matches?(@actual)
|
56
|
-
end
|
57
|
-
|
58
|
-
def failure_message
|
59
|
-
"expected deprecation warning #{@message.inspect}, got #{@actual.inspect}"
|
60
|
-
end
|
61
|
-
|
62
|
-
private
|
63
|
-
|
64
|
-
def hijack_stderr
|
65
|
-
err = $stderr
|
66
|
-
$stderr = StringIO.new
|
67
|
-
yield
|
68
|
-
$stderr.string.rstrip
|
69
|
-
ensure
|
70
|
-
$stderr = err
|
71
|
-
end
|
72
|
-
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'active_support/rescuable' # needed for Ruby 1.9.1
|
3
3
|
require 'action_controller'
|
4
|
+
require 'action_view'
|
4
5
|
require 'will_paginate/view_helpers/action_view'
|
5
6
|
require 'will_paginate/collection'
|
6
7
|
|
@@ -312,13 +313,12 @@ describe WillPaginate::ActionView do
|
|
312
313
|
end
|
313
314
|
|
314
315
|
it "renders using ActionView helpers on a custom object" do
|
315
|
-
helper =
|
316
|
-
class << helper
|
316
|
+
helper = Class.new {
|
317
317
|
attr_reader :controller
|
318
318
|
include ActionView::Helpers::UrlHelper
|
319
319
|
include Routes.url_helpers
|
320
320
|
include WillPaginate::ActionView
|
321
|
-
|
321
|
+
}.new
|
322
322
|
helper.default_url_options[:controller] = 'dummy'
|
323
323
|
|
324
324
|
collection = WillPaginate::Collection.new(2, 1, 3)
|
@@ -331,12 +331,11 @@ describe WillPaginate::ActionView do
|
|
331
331
|
end
|
332
332
|
|
333
333
|
it "renders using ActionDispatch helper on a custom object" do
|
334
|
-
helper =
|
335
|
-
class << helper
|
334
|
+
helper = Class.new {
|
336
335
|
include ActionDispatch::Routing::UrlFor
|
337
336
|
include Routes.url_helpers
|
338
337
|
include WillPaginate::ActionView
|
339
|
-
|
338
|
+
}.new
|
340
339
|
helper.default_url_options.update \
|
341
340
|
:only_path => true,
|
342
341
|
:controller => 'dummy'
|
@@ -398,6 +397,7 @@ end
|
|
398
397
|
|
399
398
|
class DummyRequest
|
400
399
|
attr_accessor :symbolized_path_parameters
|
400
|
+
alias :path_parameters :symbolized_path_parameters
|
401
401
|
|
402
402
|
def initialize
|
403
403
|
@get = true
|
@@ -1,9 +1,13 @@
|
|
1
1
|
require 'active_support'
|
2
|
+
require 'stringio'
|
2
3
|
begin
|
4
|
+
$stderr = StringIO.new
|
3
5
|
require 'minitest/unit'
|
4
6
|
rescue LoadError
|
5
7
|
# Fails on Ruby 1.8, but it's OK since we only need MiniTest::Assertions
|
6
8
|
# on Rails 4 which doesn't support 1.8 anyway.
|
9
|
+
ensure
|
10
|
+
$stderr = STDERR
|
7
11
|
end
|
8
12
|
require 'action_dispatch/testing/assertions'
|
9
13
|
require 'will_paginate/array'
|
metadata
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: will_paginate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
version: 3.0.5
|
4
|
+
version: 3.0.6
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Mislav Marohnić
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-06-28 00:00:00.000000000 Z
|
13
12
|
dependencies: []
|
14
13
|
description: will_paginate provides a simple API for performing paginated queries
|
15
14
|
with Active Record, DataMapper and Sequel, and includes helpers for rendering pagination
|
@@ -21,6 +20,9 @@ extra_rdoc_files:
|
|
21
20
|
- README.md
|
22
21
|
- LICENSE
|
23
22
|
files:
|
23
|
+
- LICENSE
|
24
|
+
- README.md
|
25
|
+
- lib/will_paginate.rb
|
24
26
|
- lib/will_paginate/active_record.rb
|
25
27
|
- lib/will_paginate/array.rb
|
26
28
|
- lib/will_paginate/collection.rb
|
@@ -34,13 +36,12 @@ files:
|
|
34
36
|
- lib/will_paginate/railtie.rb
|
35
37
|
- lib/will_paginate/sequel.rb
|
36
38
|
- lib/will_paginate/version.rb
|
39
|
+
- lib/will_paginate/view_helpers.rb
|
37
40
|
- lib/will_paginate/view_helpers/action_view.rb
|
38
41
|
- lib/will_paginate/view_helpers/link_renderer.rb
|
39
42
|
- lib/will_paginate/view_helpers/link_renderer_base.rb
|
40
43
|
- lib/will_paginate/view_helpers/merb.rb
|
41
44
|
- lib/will_paginate/view_helpers/sinatra.rb
|
42
|
-
- lib/will_paginate/view_helpers.rb
|
43
|
-
- lib/will_paginate.rb
|
44
45
|
- spec/collection_spec.rb
|
45
46
|
- spec/console
|
46
47
|
- spec/console_fixtures.rb
|
@@ -64,6 +65,9 @@ files:
|
|
64
65
|
- spec/fixtures/topics.yml
|
65
66
|
- spec/fixtures/user.rb
|
66
67
|
- spec/fixtures/users.yml
|
68
|
+
- spec/matchers/deprecation_matcher.rb
|
69
|
+
- spec/matchers/phrase_matcher.rb
|
70
|
+
- spec/matchers/query_count_matcher.rb
|
67
71
|
- spec/page_number_spec.rb
|
68
72
|
- spec/per_page_spec.rb
|
69
73
|
- spec/spec_helper.rb
|
@@ -71,34 +75,31 @@ files:
|
|
71
75
|
- spec/view_helpers/base_spec.rb
|
72
76
|
- spec/view_helpers/link_renderer_base_spec.rb
|
73
77
|
- spec/view_helpers/view_example_group.rb
|
74
|
-
- README.md
|
75
|
-
- LICENSE
|
76
78
|
homepage: https://github.com/mislav/will_paginate/wiki
|
77
79
|
licenses:
|
78
80
|
- MIT
|
81
|
+
metadata: {}
|
79
82
|
post_install_message:
|
80
83
|
rdoc_options:
|
81
|
-
- --main
|
84
|
+
- "--main"
|
82
85
|
- README.md
|
83
|
-
- --charset=UTF-8
|
86
|
+
- "--charset=UTF-8"
|
84
87
|
require_paths:
|
85
88
|
- lib
|
86
89
|
required_ruby_version: !ruby/object:Gem::Requirement
|
87
|
-
none: false
|
88
90
|
requirements:
|
89
|
-
- -
|
91
|
+
- - ">="
|
90
92
|
- !ruby/object:Gem::Version
|
91
93
|
version: '0'
|
92
94
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
93
|
-
none: false
|
94
95
|
requirements:
|
95
|
-
- -
|
96
|
+
- - ">="
|
96
97
|
- !ruby/object:Gem::Version
|
97
98
|
version: '0'
|
98
99
|
requirements: []
|
99
100
|
rubyforge_project:
|
100
|
-
rubygems_version:
|
101
|
+
rubygems_version: 2.2.2
|
101
102
|
signing_key:
|
102
|
-
specification_version:
|
103
|
+
specification_version: 4
|
103
104
|
summary: Pagination plugin for web frameworks and other apps
|
104
105
|
test_files: []
|