her-kaminari 0.0.1 → 0.0.3
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 +4 -4
- data/.coveralls.yml +1 -0
- data/.travis.yml +17 -0
- data/README.md +5 -0
- data/her-kaminari.gemspec +1 -0
- data/lib/her/kaminari/collection.rb +1 -0
- data/lib/her/kaminari/relation_extension.rb +38 -0
- data/lib/her/kaminari/version.rb +1 -1
- data/lib/her/kaminari.rb +1 -0
- data/test/lib/her/kaminari/relation_extension_test.rb +24 -0
- data/test/test_helper.rb +3 -0
- metadata +22 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 694afb1827a0f8f8bd4f5469e7473d5a291795ca
|
|
4
|
+
data.tar.gz: a434facbcd31256d3c0409fa8c376797d6ad4c11
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b0a5bfe54b4c9147f8d39fb65b6cc6ba968a586a234d9c82cd367756beba18449f9b9a506e44e9766a19efc8d92f52b99fd9212a0ed406f1153c98fbeabb7049
|
|
7
|
+
data.tar.gz: 26024559865abc3da6695d9c717638fe11eb7aa8d207b1f402287205d3888296cdca5941f278ba13df0a6ca0c70630cda73ce26be65b29f03f961b0c58fe7337
|
data/.coveralls.yml
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
service_name: travis-ci
|
data/.travis.yml
ADDED
data/README.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Her::Kaminari
|
|
2
2
|
|
|
3
|
+
[](http://badge.fury.io/rb/her-kaminari)
|
|
4
|
+
[](https://travis-ci.org/DanielBlanco/her-kaminari)
|
|
5
|
+
[](https://codeclimate.com/github/DanielBlanco/her-kaminari)
|
|
6
|
+
[](https://coveralls.io/r/DanielBlanco/her-kaminari)
|
|
7
|
+
|
|
3
8
|
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
9
|
|
|
5
10
|
Her models can now query these APIs like any other kaminari model:
|
data/her-kaminari.gemspec
CHANGED
|
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
|
|
|
21
21
|
spec.add_runtime_dependency 'her', '~> 0.7', '>= 0.7.2'
|
|
22
22
|
spec.add_runtime_dependency 'kaminari', '~> 0.16.1', '>= 0.16.1'
|
|
23
23
|
|
|
24
|
+
spec.add_development_dependency 'coveralls'
|
|
24
25
|
spec.add_development_dependency 'bundler', '~> 1.7'
|
|
25
26
|
spec.add_development_dependency 'rake', '~> 10.0'
|
|
26
27
|
spec.add_development_dependency 'minitest', '~> 5.0'
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
|
+
# lib/her/kaminari/relation_extension.rb
|
|
3
|
+
module Her
|
|
4
|
+
module Kaminari
|
|
5
|
+
module RelationExtension
|
|
6
|
+
def self.included(base)
|
|
7
|
+
base.class_eval do
|
|
8
|
+
# Iterates through each page.
|
|
9
|
+
#
|
|
10
|
+
# Useful for stitching together an array of all records, across every
|
|
11
|
+
# page. For example:
|
|
12
|
+
#
|
|
13
|
+
# users = User.all.each_page.flat_map(&:to_a)
|
|
14
|
+
#
|
|
15
|
+
# If there are 3 total pages, it would result in these HTTP requests:
|
|
16
|
+
#
|
|
17
|
+
# GET /v1/users
|
|
18
|
+
# GET /v1/users?page=2
|
|
19
|
+
# GET /v1/users?page=3
|
|
20
|
+
#
|
|
21
|
+
# ...and this array of users (25 records per page):
|
|
22
|
+
#
|
|
23
|
+
# users.count
|
|
24
|
+
# # => 75
|
|
25
|
+
#
|
|
26
|
+
# With the exception of the first one, pages are lazily fetched.
|
|
27
|
+
def each_page
|
|
28
|
+
return to_enum(:each_page) unless block_given?
|
|
29
|
+
|
|
30
|
+
(current_page..total_pages).each do |number|
|
|
31
|
+
yield (number == current_page) ? self : page(number)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
data/lib/her/kaminari/version.rb
CHANGED
data/lib/her/kaminari.rb
CHANGED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
|
+
# test/lib/her/kaminari/relation_extension_test.rb
|
|
3
|
+
require 'test_helper'
|
|
4
|
+
|
|
5
|
+
describe Her::Kaminari::RelationExtension do
|
|
6
|
+
before do
|
|
7
|
+
@model = Class.new do
|
|
8
|
+
include Her::Model
|
|
9
|
+
include Her::Kaminari::Collection
|
|
10
|
+
|
|
11
|
+
root_element :champion
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
describe '.each_page' do
|
|
16
|
+
before { @subject = @model.all.each_page }
|
|
17
|
+
|
|
18
|
+
it 'yields each page' do
|
|
19
|
+
@subject.count.must_equal 2
|
|
20
|
+
@subject.map(&:current_page).must_equal [1, 2]
|
|
21
|
+
@subject.map(&:count).must_equal [5, 4]
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: her-kaminari
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Daniel Blanco Rojas, Artur Hebda
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2015-03-10 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: her
|
|
@@ -50,6 +50,20 @@ dependencies:
|
|
|
50
50
|
- - ">="
|
|
51
51
|
- !ruby/object:Gem::Version
|
|
52
52
|
version: 0.16.1
|
|
53
|
+
- !ruby/object:Gem::Dependency
|
|
54
|
+
name: coveralls
|
|
55
|
+
requirement: !ruby/object:Gem::Requirement
|
|
56
|
+
requirements:
|
|
57
|
+
- - ">="
|
|
58
|
+
- !ruby/object:Gem::Version
|
|
59
|
+
version: '0'
|
|
60
|
+
type: :development
|
|
61
|
+
prerelease: false
|
|
62
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
63
|
+
requirements:
|
|
64
|
+
- - ">="
|
|
65
|
+
- !ruby/object:Gem::Version
|
|
66
|
+
version: '0'
|
|
53
67
|
- !ruby/object:Gem::Dependency
|
|
54
68
|
name: bundler
|
|
55
69
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -179,7 +193,9 @@ executables: []
|
|
|
179
193
|
extensions: []
|
|
180
194
|
extra_rdoc_files: []
|
|
181
195
|
files:
|
|
196
|
+
- ".coveralls.yml"
|
|
182
197
|
- ".gitignore"
|
|
198
|
+
- ".travis.yml"
|
|
183
199
|
- Gemfile
|
|
184
200
|
- Guardfile
|
|
185
201
|
- LICENSE
|
|
@@ -190,9 +206,11 @@ files:
|
|
|
190
206
|
- lib/her/kaminari.rb
|
|
191
207
|
- lib/her/kaminari/collection.rb
|
|
192
208
|
- lib/her/kaminari/header_parser.rb
|
|
209
|
+
- lib/her/kaminari/relation_extension.rb
|
|
193
210
|
- lib/her/kaminari/version.rb
|
|
194
211
|
- test/lib/her/kaminari/collection_test.rb
|
|
195
212
|
- test/lib/her/kaminari/header_parser_test.rb
|
|
213
|
+
- test/lib/her/kaminari/relation_extension_test.rb
|
|
196
214
|
- test/lib/her/kaminari_test.rb
|
|
197
215
|
- test/support/.keep
|
|
198
216
|
- test/support/her_api.rb
|
|
@@ -224,7 +242,9 @@ summary: Kaminari pagination for Her models.
|
|
|
224
242
|
test_files:
|
|
225
243
|
- test/lib/her/kaminari/collection_test.rb
|
|
226
244
|
- test/lib/her/kaminari/header_parser_test.rb
|
|
245
|
+
- test/lib/her/kaminari/relation_extension_test.rb
|
|
227
246
|
- test/lib/her/kaminari_test.rb
|
|
228
247
|
- test/support/.keep
|
|
229
248
|
- test/support/her_api.rb
|
|
230
249
|
- test/test_helper.rb
|
|
250
|
+
has_rdoc:
|