schron 0.0.5 → 0.0.6

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: f49a1d20dee523a612a54957311f0b2e0d6c1261
4
- data.tar.gz: 1b86c1df7aaa310f1729032f2a029c3135293a88
3
+ metadata.gz: 4aeceef48e41835c46613cdc24244e572de9be71
4
+ data.tar.gz: d12b5a7d4afe3becb745bf7f0c3d5f7ed85af577
5
5
  SHA512:
6
- metadata.gz: e4b7793227d44a52f21568e892a3f1525c03bc8d0f037daf4115bbeda4900c3d593e5c301a03e951fd6a50946edab32d564682dff67bc3e34dcb2874830fc938
7
- data.tar.gz: 6c4a329eb00714ee3b258b88e94ea313718b7e09f879b6db011681e2bc3b9d4654df9ee0d38911cea5f9087b7c1bd0e58ab28812cf788e47570fe7d8b528d5c7
6
+ metadata.gz: cd30c7665c334b7765286b0bbe340efd7d6a1a4165010bbfc13c56c0d72ffa29f316a55768c55269949adba84ebf8bdc408a129b01db0d08e5f6f26287153dd1
7
+ data.tar.gz: 88ce344e0850b608b49215f3e67d89c39297a9ad8ca036134d271b9d617892ad571cee88782b0775d5736e38d1401ae415e70bef5c1a8bbcef68df0ce13e6343
@@ -87,16 +87,30 @@ module Schron
87
87
  end
88
88
 
89
89
  def batched_each(size, &block)
90
- batches(size) { |group| group.each(&block) }
90
+ enum = Enumerator.new do |y|
91
+ batches(size) do |group|
92
+ group.each do |item|
93
+ y << item
94
+ end
95
+ end
96
+ end
97
+ block_given? ?
98
+ enum.each(&block) :
99
+ enum
91
100
  end
92
101
 
93
102
  def batches(size, &block)
94
- current_page = 1
95
- begin
96
- results = page(current_page, per_page: size).all
97
- block.call(results)
98
- current_page = results.paging.next_page
99
- end while current_page
103
+ enum = Enumerator.new do |y|
104
+ current_page = 1
105
+ begin
106
+ results = page(current_page, per_page: size).all
107
+ y << results
108
+ current_page = results.paging.next_page
109
+ end while current_page
110
+ end
111
+ block_given? ?
112
+ enum.each(&block) :
113
+ enum
100
114
  end
101
115
 
102
116
  protected
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "schron"
7
- spec.version = "0.0.5"
7
+ spec.version = "0.0.6"
8
8
  spec.authors = ["David Faber"]
9
9
  spec.email = ["david@1bios.co"]
10
10
  spec.summary = %q{Repository implementation for entity persistence}
@@ -71,6 +71,13 @@ describe Schron::Query do
71
71
  expect(group.size).to eq(1)
72
72
  end
73
73
  end
74
+
75
+ it 'returns an enum if no block is passed' do
76
+ 2.times { archive.insert(Schron::GenericEntity.new) }
77
+ enum = query.batches(1)
78
+ expect(enum).to be_kind_of(Enumerator)
79
+ expect(enum.map(&:size)).to eq([1, 1])
80
+ end
74
81
  end
75
82
 
76
83
  describe 'batched each' do
@@ -78,10 +85,17 @@ describe Schron::Query do
78
85
  expect(ds).to receive(:exec_query).at_least(2).and_call_original
79
86
  2.times { archive.insert(Schron::GenericEntity.new) }
80
87
  i = 0
81
- query.batches(1) do |item|
88
+ query.batched_each(1) do |item|
82
89
  i += 1
83
90
  end
84
91
  expect(i).to eq(2)
85
92
  end
93
+
94
+ it 'returns an enum if no block is passed' do
95
+ 2.times { archive.insert(Schron::GenericEntity.new) }
96
+ enum = query.batched_each(1)
97
+ expect(enum).to be_kind_of(Enumerator)
98
+ expect(enum.map(&:id).sort).to eq(archive.all.map(&:id).sort)
99
+ end
86
100
  end
87
- end
101
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schron
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Faber
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-27 00:00:00.000000000 Z
11
+ date: 2014-10-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake