world_bank_fetcher 0.0.11 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
@@ -15,19 +15,14 @@ module WorldBankFetcher
15
15
  all_data = fetch_everything query
16
16
  if all_data
17
17
  data = CountryParser.filter(all_data)
18
- @checksum = checksum data
19
- {:results => data, :checksum => @checksum}
18
+ data
20
19
  else
21
20
  nil
22
21
  end
23
22
  end
24
23
 
25
24
  private
26
-
27
- def checksum(data)
28
- Digest::MD5.hexdigest Marshal.dump(data)
29
- end
30
-
25
+
31
26
  def build_query(options)
32
27
  options[:indicator] ? indicator_query(options[:indicator]) : countries_query
33
28
  end
@@ -1,3 +1,3 @@
1
1
  module WorldBankFetcher
2
- VERSION = "0.0.11"
2
+ VERSION = "0.0.12"
3
3
  end
data/spec/job_spec.rb CHANGED
@@ -1,66 +1,45 @@
1
1
  require 'helper'
2
2
 
3
3
  module WorldBankFetcher
4
- describe Job do
5
- before do
6
- CountryParser.stub!(:filter) do |arg|
7
- arg
8
- end
9
- end
10
-
4
+ describe Job do
11
5
  let(:indicator_string) { 'SP.POP.TOTL' }
12
6
 
13
- context 'initialize' do
7
+ describe 'initialize' do
14
8
  it "should accept hash w/ indicator to specify job type in intializer" do
9
+ country_parser_filters_nothing!
15
10
  WorldBank::Data.should_receive(:country).with('all').and_return(stubbed_query)
16
11
  Job.new(:indicator => indicator_string)
17
12
  end
18
13
 
19
14
  it "should accept countries to indicate all countries in initializer hash" do
15
+ country_parser_filters_nothing!
20
16
  WorldBank::Country.should_receive(:all).and_return(stubbed_query)
21
17
  Job.new(:countries => true)
22
18
  end
23
19
  end
24
20
 
25
- context 'fetch' do
21
+ describe 'fetch' do
26
22
  it "should return nil if query shceduler returns nil" do
27
- WorldBank::DataQuery.any_instance.stub(:total).and_return(39)
23
+ country_parser_filters_nothing!
28
24
  QueryScheduler.any_instance.should_receive(:execute!).and_return(nil)
29
25
  job = Job.new(:indicator => indicator_string)
30
26
  job.fetch.should be_nil
31
27
  end
32
28
 
33
29
  it "should not return nil if query shceduler returns non nil value" do
34
- WorldBank::DataQuery.any_instance.stub(:total).and_return(39)
30
+ country_parser_filters_nothing!
35
31
  QueryScheduler.any_instance.should_receive(:execute!).and_return(:something)
36
32
  job = Job.new(:indicator => indicator_string)
37
33
  job.fetch.should_not be_nil
38
34
  end
39
35
 
40
- it "returns a hash if there are no errors" do
41
- WorldBank::DataQuery.any_instance.stub(:total).and_return(39)
36
+ it "filters return value from Query Scheduler through CountryParser" do
42
37
  QueryScheduler.any_instance.should_receive(:execute!).and_return(:something)
43
-
38
+ CountryParser.should_receive(:filter).with(:something).and_return(:something_else)
44
39
  job = Job.new(:indicator => indicator_string)
45
- job.fetch.should be_an_instance_of(Hash)
40
+ job.fetch.should eq(:something_else)
46
41
  end
47
-
48
- context 'checksum' do
49
- it "should return unique checksums given unique results" do
50
- job = Job.new(:indicator => indicator_string)
51
- d1 = [:blah, :blog, :dj]
52
- d2 = [:bjad, :awe, :asdf]
53
- job.send(:checksum, d1).should_not eq(job.send(:checksum, d2))
54
- end
55
-
56
- it "should receive same checksum if scheduler returns identical results" do
57
- job = Job.new(:indicator => indicator_string)
58
- d1 = [:blah, :blog, :dj]
59
- job.send(:checksum, d1).should eq(job.send(:checksum, d1))
60
- end
61
-
62
- end
63
- end
42
+ end
64
43
 
65
44
  private
66
45
  def stubbed_query
@@ -68,5 +47,11 @@ module WorldBankFetcher
68
47
  dummy_query.stub(:indicator)
69
48
  dummy_query
70
49
  end
50
+
51
+ def country_parser_filters_nothing!
52
+ CountryParser.stub!(:filter) do |arg|
53
+ arg
54
+ end
55
+ end
71
56
  end
72
57
  end
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.11
4
+ version: 0.0.12
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-29 00:00:00.000000000 Z
12
+ date: 2012-08-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -83,7 +83,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
83
83
  version: '0'
84
84
  segments:
85
85
  - 0
86
- hash: -36905167652878939
86
+ hash: -4294862042739340307
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: -36905167652878939
95
+ hash: -4294862042739340307
96
96
  requirements: []
97
97
  rubyforge_project:
98
98
  rubygems_version: 1.8.24