quandl_client 0.0.15 → 0.0.16

Sign up to get free protection for your applications and to get access to all the features.
@@ -22,6 +22,10 @@ module Properties
22
22
  true
23
23
  end
24
24
 
25
+ def save!
26
+ save
27
+ end
28
+
25
29
  def saved?
26
30
  status == 200 || status == 201
27
31
  end
@@ -1,6 +1,6 @@
1
1
  module Quandl
2
2
  module Client
3
- VERSION = '0.0.15'
3
+ VERSION = '0.0.16'
4
4
  API_VERSION = 'v1'
5
5
 
6
6
  class << self
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
19
19
 
20
20
  s.add_development_dependency "rake", "~> 10.0"
21
21
  s.add_development_dependency "rspec", "~> 2.13"
22
+ s.add_development_dependency "factory_girl_rails"
22
23
  s.add_development_dependency "fivemat", "~> 1.2"
23
24
  s.add_development_dependency "pry"
24
25
 
@@ -0,0 +1,10 @@
1
+ FactoryGirl.define do
2
+
3
+ factory :dataset do
4
+ source_code "QUANDL_CLIENT_TEST_SOURCE"
5
+ sequence(:code) { |n| "QUANDL_CLIENT_#{n}" }
6
+ name "Quandl Client Dataset"
7
+ description "Quandl Client Dataset Spec"
8
+ end
9
+
10
+ end
@@ -0,0 +1,10 @@
1
+ FactoryGirl.define do
2
+
3
+ factory :source do
4
+ sequence(:code) { |n| "QUANDL_CLIENT_#{(Time.now.to_f * 1000).to_i}_#{n}" }
5
+ name "Quandl Client Source"
6
+ description "Quandl Client Source Spec"
7
+ sequence(:host) { |n| "http://quandl.com/host/#{(Time.now.to_f * 1000).to_i}_#{n}" }
8
+ end
9
+
10
+ end
@@ -0,0 +1,77 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe Dataset do
5
+
6
+ describe "#update" do
7
+
8
+ before(:all){ Quandl::Client.token = '93yzptKyhdkrqLhmezdi' }
9
+
10
+ let(:source){ create(:source) }
11
+ let(:dataset){ create(:dataset, source_code: source.code ) }
12
+
13
+ it "should update with data" do
14
+ rdataset = Dataset.find(dataset.id)
15
+ data = Quandl::Data::Random.table(rows: 100, columns: 4)
16
+ rdataset.data = data.to_csv
17
+ rdataset.save
18
+ Dataset.find(dataset.id).data_table.to_date.count.should eq data.to_date.count
19
+ end
20
+
21
+ end
22
+
23
+ describe "#find" do
24
+
25
+ before(:all){ Quandl::Client.token = '93yzptKyhdkrqLhmezdi' }
26
+
27
+ let(:source){ create(:source) }
28
+ let(:dataset){ create(:dataset, source_code: source.code ) }
29
+
30
+ it "should find the dataset by id" do
31
+ Dataset.find(dataset.id).id.should eq dataset.id
32
+ end
33
+
34
+ it "should find the dataset by full code" do
35
+ Dataset.find(dataset.full_code).id.should eq dataset.id
36
+ end
37
+
38
+ end
39
+
40
+ describe "#new" do
41
+
42
+ subject{ build(:dataset) }
43
+
44
+ its(:valid?){ should be_true }
45
+
46
+ end
47
+
48
+ describe "#save" do
49
+
50
+ context "without token" do
51
+
52
+ before(:all){ Quandl::Client.token = '' }
53
+
54
+ let(:dataset){ create(:dataset) }
55
+ subject{ dataset }
56
+
57
+ its(:saved?){ should be_false }
58
+ its(:status){ should eq 401 }
59
+
60
+ end
61
+
62
+ context "with token" do
63
+
64
+ before(:all){ Quandl::Client.token = '93yzptKyhdkrqLhmezdi' }
65
+
66
+ let(:source){ create(:source) }
67
+ let(:dataset){ create(:dataset, source_code: source.code ) }
68
+ subject{ dataset }
69
+
70
+ its(:saved?){ should be_true }
71
+ its(:status){ should eq 201 }
72
+
73
+ end
74
+
75
+ end
76
+
77
+ end
@@ -0,0 +1,51 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe Source do
5
+
6
+ let(:source){ build(:source) }
7
+
8
+ context "without token" do
9
+
10
+ before(:all){ Quandl::Client.token = '' }
11
+
12
+ subject{ source }
13
+ its(:valid?){ should be_true }
14
+
15
+ describe "#save" do
16
+
17
+ it "should not be authorized to create a source" do
18
+ source.save
19
+ source.status.should eq 401
20
+ end
21
+
22
+ end
23
+
24
+ end
25
+
26
+ context "with token" do
27
+
28
+ before(:all){ Quandl::Client.token = '93yzptKyhdkrqLhmezdi' }
29
+
30
+ describe "#save" do
31
+
32
+ it "should save the source" do
33
+ source.save
34
+ source.status.should eq 201
35
+ end
36
+
37
+ it "should update the source" do
38
+ source.save
39
+ retrieved_source = Source.find(source.id)
40
+ retrieved_source.description = "something new #{Time.now}"
41
+ retrieved_source.save
42
+ Source.find(source.id).description.should eq retrieved_source.description
43
+ end
44
+
45
+ end
46
+
47
+
48
+ end
49
+
50
+
51
+ end
@@ -1,4 +1,15 @@
1
1
  $:.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
2
2
 
3
3
  require "rspec"
4
- require "quandl/client"
4
+ require 'factory_girl'
5
+
6
+ factory_dir = File.join( File.dirname(__FILE__), 'factories/**/*.rb' )
7
+ Dir.glob( factory_dir ).each{|f| require(f); puts f }
8
+
9
+ require "quandl/client"
10
+
11
+ include Quandl::Client
12
+
13
+ RSpec.configure do |config|
14
+ config.include FactoryGirl::Syntax::Methods
15
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: quandl_client
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.15
5
+ version: 0.0.16
6
6
  platform: ruby
7
7
  authors:
8
8
  - Blkae Hilscher
@@ -43,6 +43,22 @@ dependencies:
43
43
  version: '2.13'
44
44
  type: :development
45
45
  prerelease: false
46
+ - !ruby/object:Gem::Dependency
47
+ name: factory_girl_rails
48
+ version_requirements: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ requirement: !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ! '>='
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ type: :development
61
+ prerelease: false
46
62
  - !ruby/object:Gem::Dependency
47
63
  name: fivemat
48
64
  version_requirements: !ruby/object:Gem::Requirement
@@ -202,7 +218,11 @@ files:
202
218
  - lib/quandl/client/version.rb
203
219
  - lib/quandl/her/patch.rb
204
220
  - quandl_client.gemspec
205
- - spec/quandl_client.rb
221
+ - spec/factories/dataset.rb
222
+ - spec/factories/source.rb
223
+ - spec/quandl/client/client_spec.rb
224
+ - spec/quandl/client/models/dataset_spec.rb
225
+ - spec/quandl/client/models/source_spec.rb
206
226
  - spec/spec_helper.rb
207
227
  homepage: http://blake.hilscher.ca/
208
228
  licenses:
@@ -230,5 +250,9 @@ signing_key:
230
250
  specification_version: 3
231
251
  summary: Client rest orm.
232
252
  test_files:
233
- - spec/quandl_client.rb
253
+ - spec/factories/dataset.rb
254
+ - spec/factories/source.rb
255
+ - spec/quandl/client/client_spec.rb
256
+ - spec/quandl/client/models/dataset_spec.rb
257
+ - spec/quandl/client/models/source_spec.rb
234
258
  - spec/spec_helper.rb