mailchimp_api 1.0.0.pre.11 → 1.0.0.pre.12

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
  SHA256:
3
- metadata.gz: e1558e2a34a6df4a62a33ad95adcbad36e8ca962ba6598af347f03b5721bed4f
4
- data.tar.gz: c4fd86b6e6994d92286f7ab63668e3578d2df89e0224353d6ca9b69c258c73ca
3
+ metadata.gz: 166a50a3c46d0059617ba8a0c63faeebcf252f40db163c90e2c203d274e1a41c
4
+ data.tar.gz: bba58e35d1517bc352b2af95a08383de65ad4addc2bfbc410363fb0dceb1f28d
5
5
  SHA512:
6
- metadata.gz: d4fa7b461537628d84b8cc5fdc4b02ace8f0d32de2c03dffa763c003e3ef0ea30c73c56cf7ee34f075cba10ae03214e7130377077052b35198ecc469af5ba3cb
7
- data.tar.gz: b1792d1ed32d4007222bfd51d8c0010c1905dcfff17d7ce1adab380fc354b2dbf3d37cb4d0ee931a1a873d50c701c741a9ee137f4ac81846f7796fbc203014b9
6
+ metadata.gz: ee3bb154501afa83e33279932c873096dd0fd053790fd0a9839f47477c60cea10ebb6fec047785d4c2c2f890482dc4f7391ec8688227da3a25485bbbd7d63362
7
+ data.tar.gz: e4e4088d43a776556ace5ef51d3fbed5db3167a5bd695cfa6afe01a2e0bce02c02f47a599b62d297d1a4af34ab959cbd7101d3cedf1f0b6f1a0b020d674fda2b
data/CHANGELOG.md CHANGED
@@ -16,3 +16,4 @@
16
16
  - Support of '/lists/<id>/signup-forms'
17
17
  - `.count` support
18
18
  - `exists?` support
19
+ - `enumerator` support
@@ -3,6 +3,7 @@
3
3
  module MailchimpAPI
4
4
  class MergeField < Base
5
5
  extend MailchimpAPI::Support::Countable
6
+ extend MailchimpAPI::Support::Enumerable
6
7
 
7
8
  include MailchimpAPI::Support::PatchUpdate
8
9
 
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MailchimpAPI::Support
4
+ module Enumerable
5
+ def enumerator(page_size: 10, params: {})
6
+ CachingEnumerator.new do |y|
7
+ number_of_items = count params: params
8
+ number_of_pages = (number_of_items / page_size).ceil
9
+ current_page = 0
10
+
11
+ loop do
12
+ all_params = {
13
+ offset: current_page * page_size,
14
+ count: page_size
15
+ }.merge(params)
16
+
17
+ results = find :all, params: all_params
18
+ current_page += 1
19
+
20
+ results.each do |result|
21
+ y.yield result
22
+ end
23
+
24
+ break if results.empty? || (current_page >= number_of_pages)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MailchimpAPI
4
- VERSION = '1.0.0.pre.11'
4
+ VERSION = '1.0.0.pre.12'
5
5
  end
data/lib/mailchimp_api.rb CHANGED
@@ -4,6 +4,7 @@ $LOAD_PATH.unshift File.dirname(__FILE__)
4
4
 
5
5
  # gem requires
6
6
  require 'activeresource'
7
+ require 'caching_enumerator'
7
8
 
8
9
  # gem extensions
9
10
  require 'active_resource/connection_ext'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mailchimp_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.pre.11
4
+ version: 1.0.0.pre.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - rewind.io
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-25 00:00:00.000000000 Z
11
+ date: 2019-02-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activeresource
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 5.1.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: caching_enumerator
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.0.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.0.1
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -208,6 +222,7 @@ files:
208
222
  - lib/mailchimp_api/resources/segment_member.rb
209
223
  - lib/mailchimp_api/resources/signup_form.rb
210
224
  - lib/mailchimp_api/resources/support/countable.rb
225
+ - lib/mailchimp_api/resources/support/enumerable.rb
211
226
  - lib/mailchimp_api/resources/support/patch_update.rb
212
227
  - lib/mailchimp_api/resources/support/post_update.rb
213
228
  - lib/mailchimp_api/resources/tag.rb