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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8ffa99110a7233d0838f61953d48c94981debe48
4
- data.tar.gz: d3bde921ef86247057bd5d1de920e58988d208f0
3
+ metadata.gz: 694afb1827a0f8f8bd4f5469e7473d5a291795ca
4
+ data.tar.gz: a434facbcd31256d3c0409fa8c376797d6ad4c11
5
5
  SHA512:
6
- metadata.gz: c74a8d242f69d2ce6f2662d05acc7f3b0a9211270353197ee2221a29ff60c07547a1fcf80cfecc36a96cf8399b34c14711619238aad05b94c5060e752edd81d9
7
- data.tar.gz: 54867a070c7a429fee9a1a74135b7d5473b4cf178f523d96c69279d28c814fcaf83c4e4026915a9991d90160e15c230f1b3fb5ac95debf4589547aca444476f6
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
@@ -0,0 +1,17 @@
1
+ language: ruby
2
+ cache: bundler
3
+ sudo: false
4
+
5
+ rvm:
6
+ - 2.1.1
7
+ - ruby-head
8
+
9
+ script: 'bundle exec rake'
10
+
11
+ notifications:
12
+ email:
13
+ recipients:
14
+ - daniel.blancorojas@gmail.com
15
+ on_failure: change
16
+ on_success: never
17
+
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'
@@ -13,6 +13,7 @@ module Her
13
13
  scope :per, ->(per_page) { where(per_page: per_page || 50) }
14
14
  end
15
15
  base.extend(ClassMethods)
16
+ base::Relation.include(Her::Kaminari::RelationExtension)
16
17
  end
17
18
 
18
19
  module ClassMethods
@@ -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
@@ -1,6 +1,6 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  module Her
3
3
  module Kaminari
4
- VERSION = "0.0.1"
4
+ VERSION = "0.0.3"
5
5
  end
6
6
  end
data/lib/her/kaminari.rb CHANGED
@@ -11,3 +11,4 @@ end
11
11
  require 'her/kaminari/collection'
12
12
  require 'her/kaminari/header_parser'
13
13
  require 'her/kaminari/version'
14
+ require 'her/kaminari/relation_extension'
@@ -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
@@ -2,6 +2,9 @@
2
2
  # test/test_helper.rb
3
3
  ENV['RACK_ENV'] = 'test'
4
4
 
5
+ require 'coveralls'
6
+ Coveralls.wear!
7
+
5
8
  require 'minitest/spec'
6
9
  require 'minitest/autorun'
7
10
  require 'minitest/pride'
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.1
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: 2014-10-27 00:00:00.000000000 Z
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: