quandl_client 2.6.0 → 2.6.1
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.
- checksums.yaml +4 -4
- data/README.md +14 -7
- data/Rakefile +2 -2
- data/UPGRADE.md +7 -0
- data/VERSION +1 -1
- data/lib/quandl/client/base/validation.rb +12 -0
- data/lib/quandl/client/models/dataset.rb +26 -0
- data/spec/lib/quandl/client/scraper_spec.rb +3 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8f3c7b2e6d00eae927b27582c0639e2335f8baaf
|
4
|
+
data.tar.gz: 92fab0d74f709dffc8ee74694ba2508caf0e1122
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a4e52c2c6c007ae90725f3dd46bec811e599e446fdfcbdc8598997cf5901c3d5fd8b7161aef6985dab70090a5aa9a5721542c18a7bbdc2f219f29511ea5977bf
|
7
|
+
data.tar.gz: 06d31ce69a4f5d0ce1d24de67bd6269a53acc71bcecd969770e9cf2dbcd89653c0f22043af0088d22ce6b215654e33112ab8417d1cfbbfff2406fc7c95c7765c
|
data/README.md
CHANGED
@@ -1,4 +1,11 @@
|
|
1
|
-
#
|
1
|
+
# Quandl::Client
|
2
|
+
|
3
|
+
## Purpose
|
4
|
+
|
5
|
+
The purpose of this gem is to interact with the [quandl api](http://www.quandl.com/help/api)
|
6
|
+
|
7
|
+
|
8
|
+
## Installation
|
2
9
|
|
3
10
|
```ruby
|
4
11
|
|
@@ -9,7 +16,7 @@ gem 'quandl_client'
|
|
9
16
|
|
10
17
|
|
11
18
|
|
12
|
-
|
19
|
+
## Configuration
|
13
20
|
|
14
21
|
```ruby
|
15
22
|
|
@@ -24,10 +31,10 @@ Quandl::Client.token = ENV['QUANDL_AUTH_TOKEN']
|
|
24
31
|
|
25
32
|
|
26
33
|
|
27
|
-
|
34
|
+
## Usage
|
28
35
|
|
29
36
|
|
30
|
-
|
37
|
+
### Quandl::Client::Dataset
|
31
38
|
|
32
39
|
|
33
40
|
#### Search
|
@@ -151,7 +158,7 @@ d.error_messages
|
|
151
158
|
|
152
159
|
|
153
160
|
|
154
|
-
|
161
|
+
### Quandl::Client::Source
|
155
162
|
|
156
163
|
|
157
164
|
#### Search
|
@@ -214,7 +221,7 @@ Source.destroy_existing(52352)
|
|
214
221
|
|
215
222
|
|
216
223
|
|
217
|
-
|
224
|
+
### Quandl::Client::Sheet
|
218
225
|
|
219
226
|
|
220
227
|
#### Search
|
@@ -277,7 +284,7 @@ Quandl::Client::Sheet.destroy_existing(15252)
|
|
277
284
|
|
278
285
|
|
279
286
|
|
280
|
-
|
287
|
+
### Authentication
|
281
288
|
|
282
289
|
```ruby
|
283
290
|
|
data/Rakefile
CHANGED
@@ -9,8 +9,8 @@ require "quandl/client"
|
|
9
9
|
|
10
10
|
include Quandl::Client
|
11
11
|
|
12
|
-
Quandl::Client.use ENV['
|
13
|
-
Quandl::Client.token = ENV['
|
12
|
+
Quandl::Client.use ENV['QUANDL_URL']
|
13
|
+
Quandl::Client.token = ENV['QUANDL_AUTH_TOKEN']
|
14
14
|
|
15
15
|
task :default => :spec
|
16
16
|
|
data/UPGRADE.md
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.6.
|
1
|
+
2.6.1
|
@@ -7,6 +7,18 @@ module Validation
|
|
7
7
|
|
8
8
|
before_save :halt_unless_valid!
|
9
9
|
|
10
|
+
validate :response_errors_should_be_blank!
|
11
|
+
|
12
|
+
def response_errors_should_be_blank!
|
13
|
+
return unless response_errors.respond_to?(:each)
|
14
|
+
response_errors.each do |key, messages|
|
15
|
+
if messages.respond_to?(:each)
|
16
|
+
messages.each{|message| errors.add(key, message) }
|
17
|
+
end
|
18
|
+
end
|
19
|
+
true
|
20
|
+
end
|
21
|
+
|
10
22
|
def valid_with_server?
|
11
23
|
return false unless valid?
|
12
24
|
return false unless errors_params.blank?
|
@@ -47,6 +47,7 @@ class Quandl::Client::Dataset < Quandl::Client::Base
|
|
47
47
|
validates :code, presence: true, format: { with: Quandl::Pattern.code, message: "is invalid. Expected format: #{Quandl::Pattern.code.to_example}" }
|
48
48
|
validates :display_url, allow_blank: true, url: true
|
49
49
|
validate :data_should_be_valid!
|
50
|
+
validate :dataset_data_should_be_valid!
|
50
51
|
validate :data_row_count_should_match_column_count!
|
51
52
|
validate :data_columns_should_not_exceed_column_names!
|
52
53
|
validate :data_rows_should_have_equal_columns!
|
@@ -124,6 +125,10 @@ class Quandl::Client::Dataset < Quandl::Client::Base
|
|
124
125
|
@dataset_data ||= Quandl::Client::Dataset::Data.new( id: id )
|
125
126
|
end
|
126
127
|
|
128
|
+
def dataset_data?
|
129
|
+
@dataset_data.is_a?(Quandl::Client::Dataset::Data)
|
130
|
+
end
|
131
|
+
|
127
132
|
def reload
|
128
133
|
@dataset_data = nil
|
129
134
|
@data_scope = nil
|
@@ -140,6 +145,14 @@ class Quandl::Client::Dataset < Quandl::Client::Base
|
|
140
145
|
true
|
141
146
|
end
|
142
147
|
|
148
|
+
def dataset_data_should_be_valid!
|
149
|
+
if dataset_data? && !dataset_data.valid?
|
150
|
+
dataset_data.errors.each{|k,v| self.errors.add( k,v ) }
|
151
|
+
return false
|
152
|
+
end
|
153
|
+
true
|
154
|
+
end
|
155
|
+
|
143
156
|
def ambiguous_code_requires_source_code!
|
144
157
|
if code.to_s.numeric? && source_code.blank?
|
145
158
|
message = %Q{Pure numerical codes like "#{code}" are not allowed unless you include a source code. Do this:\nsource_code: <USERNAME>\ncode: #{code}}
|
@@ -200,7 +213,20 @@ class Quandl::Client::Dataset < Quandl::Client::Base
|
|
200
213
|
dataset_data.save
|
201
214
|
# update dataset's attributes with dataset_data's attributes
|
202
215
|
attributes.each{|k,v| attributes[k] = dataset_data.attributes[k] if dataset_data.attributes.has_key?(k) }
|
216
|
+
# update dataset errors with dataset_data
|
203
217
|
@metadata[:status] = dataset_data.status unless dataset_data.saved?
|
218
|
+
# inherit_errors(dataset_data) unless dataset_data.saved?
|
219
|
+
end
|
220
|
+
|
221
|
+
def inherit_errors(object)
|
222
|
+
return unless object.respond_to?(:response_errors) && object.response_errors.respond_to?(:each)
|
223
|
+
object.response_errors.each do |key, messages|
|
224
|
+
if messages.respond_to?(:each)
|
225
|
+
messages.each{|message| errors.add(key, message) }
|
226
|
+
end
|
227
|
+
end
|
228
|
+
@metadata[:status] = object.status
|
229
|
+
object
|
204
230
|
end
|
205
231
|
|
206
232
|
def enforce_required_formats
|
@@ -15,7 +15,8 @@ describe Scraper do
|
|
15
15
|
|
16
16
|
context "save" do
|
17
17
|
before(:each){ scraper.save }
|
18
|
-
its(
|
18
|
+
its("error_messages.to_s"){ should match "You must provide one of" }
|
19
|
+
its("error_messages.to_s"){ should match "scraper_url, git_url" }
|
19
20
|
end
|
20
21
|
|
21
22
|
context "scraper= File" do
|
@@ -49,7 +50,7 @@ describe Scraper do
|
|
49
50
|
scraper.git_url = "git@github.com:tammer/scrapers.git"
|
50
51
|
scraper.save
|
51
52
|
}
|
52
|
-
its(
|
53
|
+
its("error_messages.to_s"){ should match %Q{can't be blank} }
|
53
54
|
end
|
54
55
|
|
55
56
|
context "git_url='git@github.com:tammer/scrapers.git' & git_reference='master'" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quandl_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.6.
|
4
|
+
version: 2.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Blake Hilscher
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-03-
|
11
|
+
date: 2014-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: quandl_data
|