her-kaminari 0.0.1 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
[![Gem Version](https://badge.fury.io/rb/her-kaminari.svg)](http://badge.fury.io/rb/her-kaminari)
|
4
|
+
[![Build Status](https://travis-ci.org/DanielBlanco/her-kaminari.svg?branch=db%2Ftravis-coverall)](https://travis-ci.org/DanielBlanco/her-kaminari)
|
5
|
+
[![Code Climate](https://codeclimate.com/github/DanielBlanco/her-kaminari/badges/gpa.svg)](https://codeclimate.com/github/DanielBlanco/her-kaminari)
|
6
|
+
[![Coverage Status](https://coveralls.io/repos/DanielBlanco/her-kaminari/badge.svg)](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:
|