quandl_client 0.1.7 → 0.1.8
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.
- data/lib/quandl/client/models/dataset.rb +13 -5
- data/lib/quandl/client/version.rb +1 -1
- data/spec/quandl/client/models/dataset/persistence_spec.rb +61 -0
- data/spec/quandl/client/models/dataset/search_spec.rb +23 -0
- data/spec/quandl/client/models/dataset_spec.rb +0 -72
- data/spec/spec_helper.rb +2 -1
- metadata +33 -7
- checksums.yaml +0 -7
- data/spec/quandl/client/client_spec.rb +0 -5
@@ -44,12 +44,14 @@ class Dataset
|
|
44
44
|
##############
|
45
45
|
# PROPERTIES #
|
46
46
|
##############
|
47
|
+
|
48
|
+
attributes :source_code, :code, :name, :urlize_name,
|
49
|
+
:description, :updated_at, :frequency,
|
50
|
+
:from_date, :to_date, :column_names, :private, :type,
|
51
|
+
:display_url, :column_spec, :import_spec, :import_url,
|
52
|
+
:locations_attributes, :data
|
47
53
|
|
48
|
-
|
49
|
-
:description, :updated_at, :frequency, :from_date,
|
50
|
-
:to_date, :column_names, :private, :type, :display_url
|
51
|
-
|
52
|
-
attributes :locations_attributes
|
54
|
+
before_save :ensure_data_is_csv
|
53
55
|
|
54
56
|
alias_method :locations, :locations_attributes
|
55
57
|
alias_method :locations=, :locations_attributes=
|
@@ -66,6 +68,12 @@ class Dataset
|
|
66
68
|
@raw_data ||= (self.data || Dataset.find(full_code).data || [])
|
67
69
|
end
|
68
70
|
|
71
|
+
protected
|
72
|
+
|
73
|
+
def ensure_data_is_csv
|
74
|
+
self.data = Quandl::Data::Table.new(data).to_csv
|
75
|
+
end
|
76
|
+
|
69
77
|
end
|
70
78
|
|
71
79
|
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Dataset do
|
5
|
+
context "when built" do
|
6
|
+
subject{ build(:dataset) }
|
7
|
+
its(:valid?){ should be_true }
|
8
|
+
end
|
9
|
+
|
10
|
+
context "when created" do
|
11
|
+
context "without token" do
|
12
|
+
|
13
|
+
before(:all){ Quandl::Client.token = '' }
|
14
|
+
|
15
|
+
let(:dataset){ create(:dataset) }
|
16
|
+
subject{ dataset }
|
17
|
+
|
18
|
+
its(:saved?){ should be_false }
|
19
|
+
its(:status){ should eq 401 }
|
20
|
+
|
21
|
+
end
|
22
|
+
context "with token" do
|
23
|
+
|
24
|
+
before(:all){ Quandl::Client.token = AUTH_TOKEN }
|
25
|
+
|
26
|
+
let(:source){ create(:source) }
|
27
|
+
let(:dataset){ create(:dataset, source_code: source.code ) }
|
28
|
+
subject{ dataset }
|
29
|
+
|
30
|
+
its(:saved?){ should be_true }
|
31
|
+
its(:status){ should eq 201 }
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
context "when updated" do
|
37
|
+
before(:all){ Quandl::Client.token = AUTH_TOKEN }
|
38
|
+
|
39
|
+
let(:source){ create(:source) }
|
40
|
+
let(:dataset){ create(:dataset, source_code: source.code, data: Quandl::Data::Random.table(rows: 20, columns: 2).to_csv ) }
|
41
|
+
|
42
|
+
it "should change data" do
|
43
|
+
# update the dataset
|
44
|
+
subject = Dataset.find(dataset.id)
|
45
|
+
new_row = [ subject.data_table[0][0], 1.0, 2.0]
|
46
|
+
subject.data = [ new_row ]
|
47
|
+
subject.save
|
48
|
+
# check the data
|
49
|
+
Dataset.find(dataset.id).data_table.sort_descending[0].should eq new_row
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should change column_spec" do
|
53
|
+
subject = Dataset.find(dataset.id)
|
54
|
+
subject.column_spec = "[0,[\"Date \\n\",{}],[\"Column 1 \",{}],[\"Column 2 \",{}]]"
|
55
|
+
subject.save
|
56
|
+
Dataset.find(dataset.id).column_spec.should eq subject.column_spec
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Dataset do
|
5
|
+
|
6
|
+
before(:all){ Quandl::Client.token = AUTH_TOKEN }
|
7
|
+
|
8
|
+
let(:source){ create(:source) }
|
9
|
+
let(:dataset){ create(:dataset, source_code: source.code ) }
|
10
|
+
|
11
|
+
it "should find the dataset by id" do
|
12
|
+
Dataset.find(dataset.id).id.should eq dataset.id
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should find the dataset by full code" do
|
16
|
+
Dataset.find(dataset.full_code).id.should eq dataset.id
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should exclude_data" do
|
20
|
+
Dataset.exclude_data(true).find(dataset.id).data.should be_blank
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
@@ -2,76 +2,4 @@
|
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
4
|
describe Dataset do
|
5
|
-
|
6
|
-
describe "#update" do
|
7
|
-
|
8
|
-
before(:all){ Quandl::Client.token = AUTH_TOKEN }
|
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 = AUTH_TOKEN }
|
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 = AUTH_TOKEN }
|
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
5
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -2,6 +2,7 @@ $:.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
|
|
2
2
|
|
3
3
|
require "rspec"
|
4
4
|
require 'factory_girl'
|
5
|
+
require 'pry'
|
5
6
|
|
6
7
|
factory_dir = File.join( File.dirname(__FILE__), 'factories/**/*.rb' )
|
7
8
|
Dir.glob( factory_dir ).each{|f| require(f); puts f }
|
@@ -9,7 +10,7 @@ Dir.glob( factory_dir ).each{|f| require(f); puts f }
|
|
9
10
|
require "quandl/client"
|
10
11
|
|
11
12
|
include Quandl::Client
|
12
|
-
Quandl::Client.use 'http://
|
13
|
+
Quandl::Client.use 'http://localhost:3000/api/'
|
13
14
|
AUTH_TOKEN = ENV['QUANDL_AUTH_TOKEN']
|
14
15
|
|
15
16
|
RSpec.configure do |config|
|
metadata
CHANGED
@@ -1,18 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quandl_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Blake Hilscher
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2013-
|
12
|
+
date: 2013-08-01 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: rake
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
19
|
- - ~>
|
18
20
|
- !ruby/object:Gem::Version
|
@@ -20,6 +22,7 @@ dependencies:
|
|
20
22
|
type: :development
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
27
|
- - ~>
|
25
28
|
- !ruby/object:Gem::Version
|
@@ -27,6 +30,7 @@ dependencies:
|
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: rspec
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
35
|
- - ~>
|
32
36
|
- !ruby/object:Gem::Version
|
@@ -34,6 +38,7 @@ dependencies:
|
|
34
38
|
type: :development
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
43
|
- - ~>
|
39
44
|
- !ruby/object:Gem::Version
|
@@ -41,6 +46,7 @@ dependencies:
|
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
47
|
name: factory_girl_rails
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
44
50
|
requirements:
|
45
51
|
- - '>='
|
46
52
|
- !ruby/object:Gem::Version
|
@@ -48,6 +54,7 @@ dependencies:
|
|
48
54
|
type: :development
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
51
58
|
requirements:
|
52
59
|
- - '>='
|
53
60
|
- !ruby/object:Gem::Version
|
@@ -55,6 +62,7 @@ dependencies:
|
|
55
62
|
- !ruby/object:Gem::Dependency
|
56
63
|
name: fivemat
|
57
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
58
66
|
requirements:
|
59
67
|
- - ~>
|
60
68
|
- !ruby/object:Gem::Version
|
@@ -62,6 +70,7 @@ dependencies:
|
|
62
70
|
type: :development
|
63
71
|
prerelease: false
|
64
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
65
74
|
requirements:
|
66
75
|
- - ~>
|
67
76
|
- !ruby/object:Gem::Version
|
@@ -69,6 +78,7 @@ dependencies:
|
|
69
78
|
- !ruby/object:Gem::Dependency
|
70
79
|
name: pry
|
71
80
|
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
72
82
|
requirements:
|
73
83
|
- - '>='
|
74
84
|
- !ruby/object:Gem::Version
|
@@ -76,6 +86,7 @@ dependencies:
|
|
76
86
|
type: :development
|
77
87
|
prerelease: false
|
78
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
79
90
|
requirements:
|
80
91
|
- - '>='
|
81
92
|
- !ruby/object:Gem::Version
|
@@ -83,6 +94,7 @@ dependencies:
|
|
83
94
|
- !ruby/object:Gem::Dependency
|
84
95
|
name: activesupport
|
85
96
|
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
86
98
|
requirements:
|
87
99
|
- - '>='
|
88
100
|
- !ruby/object:Gem::Version
|
@@ -90,6 +102,7 @@ dependencies:
|
|
90
102
|
type: :runtime
|
91
103
|
prerelease: false
|
92
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
93
106
|
requirements:
|
94
107
|
- - '>='
|
95
108
|
- !ruby/object:Gem::Version
|
@@ -97,6 +110,7 @@ dependencies:
|
|
97
110
|
- !ruby/object:Gem::Dependency
|
98
111
|
name: her
|
99
112
|
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
100
114
|
requirements:
|
101
115
|
- - ~>
|
102
116
|
- !ruby/object:Gem::Version
|
@@ -104,6 +118,7 @@ dependencies:
|
|
104
118
|
type: :runtime
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
107
122
|
requirements:
|
108
123
|
- - ~>
|
109
124
|
- !ruby/object:Gem::Version
|
@@ -111,6 +126,7 @@ dependencies:
|
|
111
126
|
- !ruby/object:Gem::Dependency
|
112
127
|
name: yajl-ruby
|
113
128
|
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
114
130
|
requirements:
|
115
131
|
- - ~>
|
116
132
|
- !ruby/object:Gem::Version
|
@@ -118,6 +134,7 @@ dependencies:
|
|
118
134
|
type: :runtime
|
119
135
|
prerelease: false
|
120
136
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
121
138
|
requirements:
|
122
139
|
- - ~>
|
123
140
|
- !ruby/object:Gem::Version
|
@@ -125,6 +142,7 @@ dependencies:
|
|
125
142
|
- !ruby/object:Gem::Dependency
|
126
143
|
name: json
|
127
144
|
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
128
146
|
requirements:
|
129
147
|
- - ~>
|
130
148
|
- !ruby/object:Gem::Version
|
@@ -132,6 +150,7 @@ dependencies:
|
|
132
150
|
type: :runtime
|
133
151
|
prerelease: false
|
134
152
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
135
154
|
requirements:
|
136
155
|
- - ~>
|
137
156
|
- !ruby/object:Gem::Version
|
@@ -139,6 +158,7 @@ dependencies:
|
|
139
158
|
- !ruby/object:Gem::Dependency
|
140
159
|
name: quandl_data
|
141
160
|
requirement: !ruby/object:Gem::Requirement
|
161
|
+
none: false
|
142
162
|
requirements:
|
143
163
|
- - '>='
|
144
164
|
- !ruby/object:Gem::Version
|
@@ -146,6 +166,7 @@ dependencies:
|
|
146
166
|
type: :runtime
|
147
167
|
prerelease: false
|
148
168
|
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
149
170
|
requirements:
|
150
171
|
- - '>='
|
151
172
|
- !ruby/object:Gem::Version
|
@@ -153,6 +174,7 @@ dependencies:
|
|
153
174
|
- !ruby/object:Gem::Dependency
|
154
175
|
name: scope_composer
|
155
176
|
requirement: !ruby/object:Gem::Requirement
|
177
|
+
none: false
|
156
178
|
requirements:
|
157
179
|
- - '>='
|
158
180
|
- !ruby/object:Gem::Version
|
@@ -160,6 +182,7 @@ dependencies:
|
|
160
182
|
type: :runtime
|
161
183
|
prerelease: false
|
162
184
|
version_requirements: !ruby/object:Gem::Requirement
|
185
|
+
none: false
|
163
186
|
requirements:
|
164
187
|
- - '>='
|
165
188
|
- !ruby/object:Gem::Version
|
@@ -197,38 +220,41 @@ files:
|
|
197
220
|
- quandl_client.gemspec
|
198
221
|
- spec/factories/dataset.rb
|
199
222
|
- spec/factories/source.rb
|
200
|
-
- spec/quandl/client/
|
223
|
+
- spec/quandl/client/models/dataset/persistence_spec.rb
|
224
|
+
- spec/quandl/client/models/dataset/search_spec.rb
|
201
225
|
- spec/quandl/client/models/dataset_spec.rb
|
202
226
|
- spec/quandl/client/models/source_spec.rb
|
203
227
|
- spec/spec_helper.rb
|
204
228
|
homepage: http://blake.hilscher.ca/
|
205
229
|
licenses:
|
206
230
|
- MIT
|
207
|
-
metadata: {}
|
208
231
|
post_install_message:
|
209
232
|
rdoc_options: []
|
210
233
|
require_paths:
|
211
234
|
- lib
|
212
235
|
required_ruby_version: !ruby/object:Gem::Requirement
|
236
|
+
none: false
|
213
237
|
requirements:
|
214
238
|
- - '>='
|
215
239
|
- !ruby/object:Gem::Version
|
216
240
|
version: '0'
|
217
241
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
242
|
+
none: false
|
218
243
|
requirements:
|
219
244
|
- - '>='
|
220
245
|
- !ruby/object:Gem::Version
|
221
246
|
version: '0'
|
222
247
|
requirements: []
|
223
248
|
rubyforge_project:
|
224
|
-
rubygems_version:
|
249
|
+
rubygems_version: 1.8.25
|
225
250
|
signing_key:
|
226
|
-
specification_version:
|
251
|
+
specification_version: 3
|
227
252
|
summary: Client rest orm.
|
228
253
|
test_files:
|
229
254
|
- spec/factories/dataset.rb
|
230
255
|
- spec/factories/source.rb
|
231
|
-
- spec/quandl/client/
|
256
|
+
- spec/quandl/client/models/dataset/persistence_spec.rb
|
257
|
+
- spec/quandl/client/models/dataset/search_spec.rb
|
232
258
|
- spec/quandl/client/models/dataset_spec.rb
|
233
259
|
- spec/quandl/client/models/source_spec.rb
|
234
260
|
- spec/spec_helper.rb
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 992e43de8dc3c713b7d9f6e606ed87e70ea1c685
|
4
|
-
data.tar.gz: 0bb774247bbce2b562d131dc33e76e16d4bf36fb
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: ed549aaa6e8fd50cf803291cc3b877ce2372cf49665bef5ff7bdacc73bb173056adfba30cdb231de103f86d045a019e2831b48f544517f23f46c2b4144d01190
|
7
|
-
data.tar.gz: 028d6e599d518d4febb323651f2d319533038b6c2c565e91852f01c16912c2b5ab33bbfe7604bdca092fd7fd1f2e217c77ace56363428c315c3b7b8af9f55d01
|