her-kaminari 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8ffa99110a7233d0838f61953d48c94981debe48
4
+ data.tar.gz: d3bde921ef86247057bd5d1de920e58988d208f0
5
+ SHA512:
6
+ metadata.gz: c74a8d242f69d2ce6f2662d05acc7f3b0a9211270353197ee2221a29ff60c07547a1fcf80cfecc36a96cf8399b34c14711619238aad05b94c5060e752edd81d9
7
+ data.tar.gz: 54867a070c7a429fee9a1a74135b7d5473b4cf178f523d96c69279d28c814fcaf83c4e4026915a9991d90160e15c230f1b3fb5ac95debf4589547aca444476f6
@@ -0,0 +1,15 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.bundle
11
+ *.so
12
+ *.o
13
+ *.a
14
+ mkmf.log
15
+ *.gem
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in her-kaminari.gemspec
4
+ gemspec
@@ -0,0 +1,7 @@
1
+ # Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+ guard :minitest do
4
+ watch(%r{^test/test_helper\.rb}) { 'test' }
5
+ watch(%r{^test/.+_test\.rb})
6
+ watch(%r{^lib/(.+).rb$}) { |m| "test/lib/#{m[1]}_test.rb" }
7
+ end
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2014 Daniel Blanco Rojas
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Daniel Blanco Rojas
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,82 @@
1
+ # Her::Kaminari
2
+
3
+ Makes [Her](https://github.com/remiprev/her "ORM that maps REST resources to Ruby objects") aware of APIs that return pagination headers like [grape-kaminari](https://github.com/monterail/grape-kaminari "kaminari paginator integration for grape API framework") gem.
4
+
5
+ Her models can now query these APIs like any other kaminari model:
6
+
7
+ ```ruby
8
+ User.page(1).per(10)
9
+ ```
10
+
11
+ **IMPORTANT:** Pagination is done by the API not by this gem, this gem just parses
12
+ the response data and creates a Kaminari compatible collection that you can use in
13
+ your views.
14
+
15
+ ## Gem Dependencies
16
+
17
+ * [Her](https://github.com/remiprev/her "ORM that maps REST resources to Ruby objects")
18
+ * [Kaminari](https://github.com/amatsuda/kaminari "Paginator for Rails")
19
+
20
+ ## Installation
21
+
22
+ Add this line to your application's Gemfile:
23
+
24
+ ```ruby
25
+ gem 'her-kaminari'
26
+ ```
27
+
28
+ And then execute:
29
+
30
+ $ bundle
31
+
32
+ Or install it yourself as:
33
+
34
+ $ gem install her-kaminari
35
+
36
+ ## Usage
37
+
38
+ First include Her::Kaminari::HeaderParser in your Her setup like this:
39
+
40
+ ```ruby
41
+ Her::API.setup url: 'https://api.example.com' do |c|
42
+ #...
43
+
44
+ # Response
45
+ c.use Her::Kaminari::HeaderParser
46
+
47
+ # ...
48
+ end
49
+ ```
50
+
51
+ HeaderParser expects that the API request returns the following headers:
52
+
53
+ ```
54
+ X-Total: Total number of records.
55
+ X-Page: Current page number.
56
+ X-Per-Page: Number of records per page.
57
+ X-Offset: (optional) the starting point for the return data.
58
+ ```
59
+
60
+
61
+ Then include Her::Kaminari::Collection in your Her model like this:
62
+
63
+ ```ruby
64
+ class User
65
+ include Her::Model
66
+ include Her::Kaminari::Collection
67
+ end
68
+ ```
69
+
70
+ Now you can use your Her model like any other Kaminari model.
71
+
72
+ ## History
73
+
74
+ After reading [How to pass pagination headers with Kaminari, Her and Grape?](http://aenain.github.io/2014/05/27/how-to-pass-pagination-headers-with-kaminari-her-and-grape.html) post by [Artur Hebda](http://aenain.github.io) I decided that it was a good idea to create a gem with his code.
75
+
76
+ ## Contributing
77
+
78
+ 1. Fork it ( https://github.com/[my-github-username]/her-kaminari/fork )
79
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
80
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
81
+ 4. Push to the branch (`git push origin my-new-feature`)
82
+ 5. Create a new Pull Request
@@ -0,0 +1,11 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rake/testtask'
3
+
4
+ Rake::TestTask.new do |t|
5
+ t.libs << 'test'
6
+ t.pattern = 'test/**/*_test.rb'
7
+ t.verbose = true
8
+ end
9
+
10
+
11
+ task :default => :test
@@ -0,0 +1,31 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'her/kaminari/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "her-kaminari"
8
+ spec.version = Her::Kaminari::VERSION
9
+ spec.authors = ["Daniel Blanco Rojas, Artur Hebda"]
10
+ spec.email = ["daniel.blancorojas@gmail.com"]
11
+ spec.summary = %q{Kaminari pagination for Her models.}
12
+ spec.description = %q{Makes Her aware of APIs that return pagination headers.}
13
+ spec.homepage = "https://github.com/DanielBlanco/her-kaminari"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_runtime_dependency 'her', '~> 0.7', '>= 0.7.2'
22
+ spec.add_runtime_dependency 'kaminari', '~> 0.16.1', '>= 0.16.1'
23
+
24
+ spec.add_development_dependency 'bundler', '~> 1.7'
25
+ spec.add_development_dependency 'rake', '~> 10.0'
26
+ spec.add_development_dependency 'minitest', '~> 5.0'
27
+ spec.add_development_dependency 'pry', '~> 0.10.1', '>= 0.10.1'
28
+ spec.add_development_dependency 'guard', '~> 2.6.1', '>= 2.6.1'
29
+ spec.add_development_dependency 'guard-minitest', '~> 2.3.2', '>= 2.3.2'
30
+ spec.add_development_dependency 'grape', '~> 0.9.0', '>= 0.9.0' # <= Just to shut up kaminari warning
31
+ end
@@ -0,0 +1,13 @@
1
+ # -*- encoding : utf-8 -*-
2
+ # lib/her/kaminari.rb
3
+
4
+ require 'her'
5
+
6
+ module Her
7
+ module Kaminari
8
+ end
9
+ end
10
+
11
+ require 'her/kaminari/collection'
12
+ require 'her/kaminari/header_parser'
13
+ require 'her/kaminari/version'
@@ -0,0 +1,54 @@
1
+ # -*- encoding : utf-8 -*-
2
+ # lib/her/kaminari/collection.rb
3
+ require 'kaminari'
4
+ require 'kaminari/models/array_extension'
5
+
6
+ module Her
7
+ module Kaminari
8
+ module Collection
9
+ def self.included(base)
10
+ base.class_eval do
11
+ # support for kaminari pagination methods
12
+ scope :page, ->(page) { where(page: page || 1) }
13
+ scope :per, ->(per_page) { where(per_page: per_page || 50) }
14
+ end
15
+ base.extend(ClassMethods)
16
+ end
17
+
18
+ module ClassMethods
19
+
20
+ # Creates a new paginated collection from API data.
21
+ # This method makes the assumption the collection was already paginated
22
+ # by the API.
23
+ #
24
+ # @return [Kaminari::PaginatableArray] a paginated collection
25
+ def new_collection(parsed_data)
26
+ collection = super(parsed_data)
27
+ pagination = parsed_data[:pagination]
28
+ collection = ::Kaminari::PaginatableArray.new(
29
+ collection,
30
+ total_count: pagination[:total_count],
31
+ limit: pagination[:per_page]
32
+ ).tap do |array|
33
+ array.extend ::Kaminari::PageScopeMethods
34
+ array.singleton_class.class_eval do
35
+
36
+ # @return [Integer] our API page number
37
+ define_method :current_page do
38
+ pagination[:page]
39
+ end
40
+
41
+ # @return [Integer] our API offset number
42
+ define_method :offset_value do
43
+ pagination[:offset]
44
+ end
45
+
46
+ end
47
+ end
48
+ collection
49
+ end
50
+
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,32 @@
1
+ # -*- encoding : utf-8 -*-
2
+ # lib/her/kaminari/header_parser.rb
3
+ module Her
4
+ module Kaminari
5
+ class HeaderParser < Faraday::Response::Middleware
6
+
7
+ # @param [Hash] env environment
8
+ def on_complete(env)
9
+ @env = env
10
+
11
+ pagination = {
12
+ total_count: header("x-total").to_i,
13
+ per_page: (header("x-per-page") || env.body[:data].count).to_i,
14
+ page: header("x-page").to_i,
15
+ offset: header('x-offset').to_i
16
+ }
17
+
18
+ env[:body].merge!(pagination: pagination)
19
+ end
20
+
21
+ private
22
+
23
+ # Returns a response header value.
24
+ #
25
+ # @param [String] name of the header attribute
26
+ # @return [String] the response header value
27
+ def header(name)
28
+ @env.response_headers[name]
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,6 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module Her
3
+ module Kaminari
4
+ VERSION = "0.0.1"
5
+ end
6
+ end
@@ -0,0 +1,23 @@
1
+ # -*- encoding : utf-8 -*-
2
+ # test/lib/her/kaminari/collection_test.rb
3
+ require 'test_helper'
4
+
5
+ describe Her::Kaminari::Collection do
6
+ before do
7
+ class Champion
8
+ include Her::Model
9
+ include Her::Kaminari::Collection
10
+ end
11
+ end
12
+
13
+ it 'should query by kaminari methods' do
14
+ champions = Champion.page(2).per(2)
15
+ #binding.pry
16
+ champions.size.must_equal 2
17
+ champions.current_page.must_equal 2
18
+ champions.total_count.must_equal 9
19
+ champions.first.id.must_equal 3
20
+ end
21
+
22
+ end
23
+
@@ -0,0 +1,21 @@
1
+ # -*- encoding : utf-8 -*-
2
+ # test/lib/her/kaminari_test.rb
3
+ require 'test_helper'
4
+
5
+ describe Her::Kaminari::HeaderParser do
6
+
7
+ subject { Her::Kaminari::HeaderParser.new }
8
+ let(:body) { { 'data' => [1,2,3,4,5] } }
9
+ let(:headers) { {'x-total'=>5, 'x-page'=> 1, 'x-per-page' => 3 } }
10
+
11
+ it 'parses pagination headers' do
12
+ env = OpenStruct.new(body: body, response_headers: headers)
13
+ subject.on_complete(env)
14
+ env[:body].tap do |json|
15
+ expected = {total_count: 5, per_page: 3, page: 1, offset: 0 }
16
+ json[:pagination].must_equal expected
17
+ end
18
+ end
19
+
20
+ end
21
+
@@ -0,0 +1,11 @@
1
+ # -*- encoding : utf-8 -*-
2
+ # test/lib/her/kaminari_test.rb
3
+ require 'test_helper'
4
+
5
+ describe Her::Kaminari do
6
+
7
+ it 'must be defined' do
8
+ Her::Kaminari::VERSION.wont_be_nil
9
+ end
10
+
11
+ end
File without changes
@@ -0,0 +1,38 @@
1
+ # -*- encoding : utf-8 -*-
2
+ # support/her_api.rbj
3
+
4
+ # Her setup
5
+ Her::API.setup url: 'https://api.example.com' do |c|
6
+ # Request
7
+ c.use Faraday::Request::UrlEncoded
8
+
9
+ # Response
10
+ c.use Her::Kaminari::HeaderParser
11
+ c.use Her::Middleware::DefaultParseJSON
12
+
13
+ # Adapter
14
+ c.adapter :test do |stub|
15
+ stub.get("/champions") do |env|
16
+ champions = [
17
+ { id: 1, name: 'Aatrox'},
18
+ { id: 2, name: 'Ahri'},
19
+ { id: 3, name: 'Akali'},
20
+ { id: 4, name: 'Alistar' },
21
+ { id: 5, name: 'Amumu' },
22
+ { id: 6, name: 'Anivia' },
23
+ { id: 7, name: 'Annie' },
24
+ { id: 8, name: 'Ashe' },
25
+ { id: 9, name: 'Azir' }
26
+ ]
27
+ page = (env.params['page'] || 1).to_i
28
+ per_page = (env.params['per_page'] || 5).to_i
29
+ headers = {
30
+ 'x-total' => champions.size,
31
+ 'x-page' => page,
32
+ 'x-per-page' => per_page
33
+ }
34
+ champions = ::Kaminari.paginate_array(champions).page(page).per(per_page)
35
+ [200, headers, champions.to_json]
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,14 @@
1
+ # -*- encoding : utf-8 -*-
2
+ # test/test_helper.rb
3
+ ENV['RACK_ENV'] = 'test'
4
+
5
+ require 'minitest/spec'
6
+ require 'minitest/autorun'
7
+ require 'minitest/pride'
8
+ require 'json'
9
+ require 'rack/test'
10
+ require 'pry'
11
+ require 'grape'
12
+ require 'her/kaminari'
13
+ require 'support/her_api'
14
+
metadata ADDED
@@ -0,0 +1,230 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: her-kaminari
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Daniel Blanco Rojas, Artur Hebda
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-10-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: her
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.7'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.7.2
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '0.7'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 0.7.2
33
+ - !ruby/object:Gem::Dependency
34
+ name: kaminari
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: 0.16.1
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 0.16.1
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: 0.16.1
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.16.1
53
+ - !ruby/object:Gem::Dependency
54
+ name: bundler
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '1.7'
60
+ type: :development
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "~>"
65
+ - !ruby/object:Gem::Version
66
+ version: '1.7'
67
+ - !ruby/object:Gem::Dependency
68
+ name: rake
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '10.0'
74
+ type: :development
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '10.0'
81
+ - !ruby/object:Gem::Dependency
82
+ name: minitest
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: '5.0'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - "~>"
93
+ - !ruby/object:Gem::Version
94
+ version: '5.0'
95
+ - !ruby/object:Gem::Dependency
96
+ name: pry
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: 0.10.1
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: 0.10.1
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: 0.10.1
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: 0.10.1
115
+ - !ruby/object:Gem::Dependency
116
+ name: guard
117
+ requirement: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - "~>"
120
+ - !ruby/object:Gem::Version
121
+ version: 2.6.1
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: 2.6.1
125
+ type: :development
126
+ prerelease: false
127
+ version_requirements: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 2.6.1
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: 2.6.1
135
+ - !ruby/object:Gem::Dependency
136
+ name: guard-minitest
137
+ requirement: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - "~>"
140
+ - !ruby/object:Gem::Version
141
+ version: 2.3.2
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: 2.3.2
145
+ type: :development
146
+ prerelease: false
147
+ version_requirements: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: 2.3.2
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: 2.3.2
155
+ - !ruby/object:Gem::Dependency
156
+ name: grape
157
+ requirement: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - "~>"
160
+ - !ruby/object:Gem::Version
161
+ version: 0.9.0
162
+ - - ">="
163
+ - !ruby/object:Gem::Version
164
+ version: 0.9.0
165
+ type: :development
166
+ prerelease: false
167
+ version_requirements: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - "~>"
170
+ - !ruby/object:Gem::Version
171
+ version: 0.9.0
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: 0.9.0
175
+ description: Makes Her aware of APIs that return pagination headers.
176
+ email:
177
+ - daniel.blancorojas@gmail.com
178
+ executables: []
179
+ extensions: []
180
+ extra_rdoc_files: []
181
+ files:
182
+ - ".gitignore"
183
+ - Gemfile
184
+ - Guardfile
185
+ - LICENSE
186
+ - LICENSE.txt
187
+ - README.md
188
+ - Rakefile
189
+ - her-kaminari.gemspec
190
+ - lib/her/kaminari.rb
191
+ - lib/her/kaminari/collection.rb
192
+ - lib/her/kaminari/header_parser.rb
193
+ - lib/her/kaminari/version.rb
194
+ - test/lib/her/kaminari/collection_test.rb
195
+ - test/lib/her/kaminari/header_parser_test.rb
196
+ - test/lib/her/kaminari_test.rb
197
+ - test/support/.keep
198
+ - test/support/her_api.rb
199
+ - test/test_helper.rb
200
+ homepage: https://github.com/DanielBlanco/her-kaminari
201
+ licenses:
202
+ - MIT
203
+ metadata: {}
204
+ post_install_message:
205
+ rdoc_options: []
206
+ require_paths:
207
+ - lib
208
+ required_ruby_version: !ruby/object:Gem::Requirement
209
+ requirements:
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: '0'
213
+ required_rubygems_version: !ruby/object:Gem::Requirement
214
+ requirements:
215
+ - - ">="
216
+ - !ruby/object:Gem::Version
217
+ version: '0'
218
+ requirements: []
219
+ rubyforge_project:
220
+ rubygems_version: 2.2.2
221
+ signing_key:
222
+ specification_version: 4
223
+ summary: Kaminari pagination for Her models.
224
+ test_files:
225
+ - test/lib/her/kaminari/collection_test.rb
226
+ - test/lib/her/kaminari/header_parser_test.rb
227
+ - test/lib/her/kaminari_test.rb
228
+ - test/support/.keep
229
+ - test/support/her_api.rb
230
+ - test/test_helper.rb