world_bank_fetcher 0.0.9 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,7 +4,6 @@ module WorldBankFetcher
4
4
 
5
5
  def initialize(query)
6
6
  @query = query
7
- @results = []
8
7
  end
9
8
 
10
9
  def execute!
@@ -31,26 +30,21 @@ module WorldBankFetcher
31
30
  end
32
31
 
33
32
  def fetch_data_query!
34
- results = []
35
- total_queries.times do |i|
36
- res = query.page(i+1).fetch
37
- return nil if res.nil?
38
- results.concat res
33
+ results = query.fetch
34
+ if query.total > MAXIMUM_BUFFER_SIZE
35
+ total_queries.times do |i|
36
+ unless i == 0
37
+ results.concat query.page(i+1).fetch
38
+ end
39
+ end
40
+ results
41
+ else
42
+ results
39
43
  end
40
- results
41
44
  end
42
45
 
43
46
  def total_queries
44
- query.per_page(1).fetch unless query.total
45
47
  (query.total / MAXIMUM_BUFFER_SIZE.to_f).ceil
46
48
  end
47
-
48
- def results=(results)
49
- @results = results
50
- end
51
-
52
- def results
53
- @results
54
- end
55
49
  end
56
50
  end
@@ -1,3 +1,3 @@
1
1
  module WorldBankFetcher
2
- VERSION = "0.0.9"
2
+ VERSION = "0.0.10"
3
3
  end
@@ -34,17 +34,15 @@ module WorldBankFetcher
34
34
  fake_results = scheduler.execute!
35
35
  end
36
36
 
37
- it "should call preliminary fetch on query if total is nil, then full data query" do
38
- query.should_receive(:total).and_return(nil)
39
- query.should_receive(:fetch).twice.and_return(fake_results)
40
- query.should_receive(:total).and_return(DEFAULT_INITIAL_BUFFER_SIZE - 1)
37
+ it "should only call fetch once if all data received in first fetch" do
38
+ query.should_receive(:fetch).once.and_return(fake_results)
39
+ query.should_receive(:total).and_return(MAXIMUM_BUFFER_SIZE - 1)
41
40
  scheduler.execute!
42
41
  end
43
42
 
44
43
  it "should call preliminary fetch on query if total is nil, then two full data queries given larger data set" do
45
- query.should_receive(:total).and_return(nil)
46
- query.should_receive(:fetch).exactly(3).times.and_return(fake_results)
47
- query.should_receive(:total).and_return(MAXIMUM_BUFFER_SIZE + 1)
44
+ query.should_receive(:fetch).twice.and_return(fake_results)
45
+ query.stub(:total).and_return(MAXIMUM_BUFFER_SIZE + 1)
48
46
  scheduler.execute!
49
47
  end
50
48
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: world_bank_fetcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -83,7 +83,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
83
83
  version: '0'
84
84
  segments:
85
85
  - 0
86
- hash: 780221342756096436
86
+ hash: -1337123450392843755
87
87
  required_rubygems_version: !ruby/object:Gem::Requirement
88
88
  none: false
89
89
  requirements:
@@ -92,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
92
92
  version: '0'
93
93
  segments:
94
94
  - 0
95
- hash: 780221342756096436
95
+ hash: -1337123450392843755
96
96
  requirements: []
97
97
  rubyforge_project:
98
98
  rubygems_version: 1.8.24