object_json_mapper 0.1.2 → 0.1.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: 30d2dcd5a0c72333fe6ec838008c1a497fc19660
4
- data.tar.gz: 8c292c2873c52c34a79067ac5f41843ce12efd67
3
+ metadata.gz: 5b3e97045388fd419fa219271f937a53514006a6
4
+ data.tar.gz: d128b678abc5556cd20dbec389f77ca74cfff33a
5
5
  SHA512:
6
- metadata.gz: c9fc87766a4c30e5d6194c33219a8e297cbd425d2eeba0c336ea9123f5baa40a5be8011dc9d0f15901672ed2cb6e21f246d9925124cb7ae31bf5956e75ab8462
7
- data.tar.gz: 27f5d6a5f09436de2451c944cfd6b8d7813cb9400f312f97bc4c1bb06377f651a418498a8ddfdfa00003a314dce91a993b6f37ee9286b6d9440285dc7dce3420
6
+ metadata.gz: 43c81b255d975f4e7047a40dcd001145d5c281a3eb16dd9a866c68d23d5d2e44514ea84760a08f86efe11dce00f79effc6d9bbf38acc5eeb06040252a17b1f0c
7
+ data.tar.gz: 5f283647096da6fe777adf6bde7f0ae21bfb4e2a4deafdfa94e6e4ce1bdb61778a4b08cf7217e0f83ebe40fec2d8eb10ca0941dcbe096084582670870c41ec5a
data/README.md CHANGED
@@ -20,6 +20,7 @@
20
20
  * [Pluck](#pluck)
21
21
  * [None](#none)
22
22
  * [Root](#root)
23
+ * [Paginate](#paginate)
23
24
  * [Configure](#configure)
24
25
 
25
26
  ## Installation
@@ -219,6 +220,19 @@ User.root('people').where(name: 'Name')
219
220
  # => GET http://localhost:3000/people?name=Name
220
221
  ```
221
222
 
223
+ ## Paginate
224
+
225
+ *`Kaminari` required.*
226
+
227
+ Yields all pages.
228
+
229
+ ```ruby
230
+ User.where(name: 'Name').paginate { |user| hello(user) }
231
+ # => GET http://localhost:3000/people?name=Name?page=1
232
+ # => GET http://localhost:3000/people?name=Name?page=2
233
+ # => GET http://localhost:3000/people?name=Name?page=3
234
+ ```
235
+
222
236
  ## Configure
223
237
 
224
238
  Available options:
data/bin/console CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'bundler/setup'
4
+ require 'kaminari'
4
5
  require 'object_json_mapper'
5
6
  require 'pry'
6
7
  # require 'irb'
@@ -8,7 +9,7 @@ require 'pry'
8
9
  ObjectJSONMapper.configure do |config|
9
10
  config.base_url = 'http://localhost:3000/v1/'
10
11
  config.headers = {
11
- 'Authorization-Consumer' => '65d064d8-4b52-4b4d-8f5b-acc36a21e3bf'
12
+ 'Authorization-Consumer' => '00000000-0000-0000-0000-000000000000'
12
13
  }
13
14
  end
14
15
 
@@ -20,10 +21,6 @@ class User < ObjectJSONMapper::Base
20
21
  has_many :subscriptions
21
22
 
22
23
  scope :qwe, -> { where(id: 1) }
23
-
24
- configure do |c|
25
- c.root_url = 'children'
26
- end
27
24
  end
28
25
 
29
26
  class Subscription < ObjectJSONMapper::Base
@@ -4,9 +4,12 @@ module Kaminari
4
4
  include Kaminari::ConfigurationMethods
5
5
 
6
6
  def self.included(base)
7
- base.define_singleton_method(Kaminari.config.page_method_name) do |num|
7
+ page = lambda do |num|
8
8
  where(page: num, per_page: Kaminari.config.default_per_page)
9
9
  end
10
+
11
+ base.define_singleton_method(Kaminari.config.page_method_name, &page)
12
+ base.send(:define_method, Kaminari.config.page_method_name, &page)
10
13
  end
11
14
  end
12
15
 
@@ -62,6 +62,23 @@ module ObjectJSONMapper
62
62
  .map { |attributes| klass.persist(attributes) }
63
63
  end
64
64
 
65
+ # @yield [ObjectJSONMapper::Relation] with next page until last page reached.
66
+ def paginate
67
+ i = 1
68
+
69
+ loop do
70
+ chunk = page(i)
71
+
72
+ break if chunk.out_of_range?
73
+
74
+ yield chunk if block_given?
75
+
76
+ break if chunk.last_page?
77
+
78
+ i += 1
79
+ end
80
+ end
81
+
65
82
  def deep_clone
66
83
  clone.tap do |object|
67
84
  object.conditions = conditions.clone
@@ -1,3 +1,3 @@
1
1
  module ObjectJSONMapper
2
- VERSION = '0.1.2'.freeze
2
+ VERSION = '0.1.3'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: object_json_mapper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - droptheplot
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2017-08-18 00:00:00.000000000 Z
12
+ date: 2017-10-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler