quandl 1.0.2 → 1.2.0
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 +5 -5
- data/README.md +3 -15
- data/lib/quandl/api_config.rb +18 -3
- data/lib/quandl/connection.rb +18 -18
- data/lib/quandl/errors/quandl_error.rb +1 -7
- data/lib/quandl/model/base.rb +2 -1
- data/lib/quandl/model/data.rb +4 -3
- data/lib/quandl/model/database.rb +8 -11
- data/lib/quandl/model/dataset.rb +3 -3
- data/lib/quandl/model/list.rb +5 -4
- data/lib/quandl/operations/get.rb +2 -2
- data/lib/quandl/util.rb +4 -3
- data/lib/quandl/version.rb +3 -1
- metadata +29 -61
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: f3d4680c92a1565994d4f21afb2599c53c2ce9fc586a394ebbfcc701c9f5921f
|
4
|
+
data.tar.gz: 724353065c55448a8ca49bedfedd416a48f6c973bba5bb810902bfa528879d8d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fa2019b05f0a47855226f349374311135b2985cce894f505afeeb7f3cf05fe709c0118030c5bae34fbe4d3282ba290f90b05151befd2bce84d0f68fe2c31b947
|
7
|
+
data.tar.gz: c740d3dcb67a5066754e65e066048bd119f117306bcec772b3443c24cee3b503e573d4c4b33fca46e8a22166af16d7564b9e164d78fd8d98f404a756e775b25e
|
data/README.md
CHANGED
@@ -2,13 +2,6 @@
|
|
2
2
|
|
3
3
|
The official ruby gem for all your data needs! The Quandl client can be used to interact with the latest version of the [Quandl RESTful API](https://www.quandl.com/docs/api).
|
4
4
|
|
5
|
-
## Deprecation of old package
|
6
|
-
|
7
|
-
With the release of our v3 API we are officially deprecating version 2 of the `quandl_client` ruby gem. We have re-written the package from the ground up and will be moving forward with a 1.x.x package with the name of `quandl` that will rely on version 3 of our restful api. During this transitional period you can continue to use the old package here:
|
8
|
-
|
9
|
-
https://rubygems.org/gems/quandl_client
|
10
|
-
|
11
|
-
|
12
5
|
## Installation
|
13
6
|
|
14
7
|
```ruby
|
@@ -32,7 +25,7 @@ Quandl::ApiConfig.api_version = '2015-04-09'
|
|
32
25
|
|
33
26
|
### Dataset
|
34
27
|
|
35
|
-
Retrieving dataset data can be done in a similar way to Databases. For example to retrieve a dataset use its full code:
|
28
|
+
Retrieving dataset data can be done in a similar way to Databases. For example to retrieve a dataset use its full code:
|
36
29
|
|
37
30
|
```ruby
|
38
31
|
require 'quandl'
|
@@ -60,7 +53,7 @@ Quandl::Dataset.get('WIKI/AAPL').data
|
|
60
53
|
=> ... data ...
|
61
54
|
```
|
62
55
|
|
63
|
-
|
56
|
+
You can access the data much like you would other lists. In addition all the data column fields are mapped to their column_names for convenience:
|
64
57
|
|
65
58
|
```ruby
|
66
59
|
Quandl::Dataset.get('WIKI/AAPL').data.first.date
|
@@ -127,7 +120,7 @@ database.data_fields
|
|
127
120
|
=> ["id", "name", "database_code", "description", "datasets_count", "downloads", "premium", "image"]
|
128
121
|
```
|
129
122
|
|
130
|
-
You can then uses these methods in your code. Additionally you can access the data by using the hash
|
123
|
+
You can then uses these methods in your code. Additionally you can access the data by using the hash equivalent lookup.
|
131
124
|
|
132
125
|
```ruby
|
133
126
|
database = Quandl::Database.get('WIKI')
|
@@ -189,10 +182,6 @@ databases = Quandl::Database.all.to_csv
|
|
189
182
|
=> "Id,Name,Database Code,Description,Datasets Count,Downloads,Premium,Image,Bundle Ids,Plan ...
|
190
183
|
```
|
191
184
|
|
192
|
-
## Questions/Comments
|
193
|
-
|
194
|
-
For any questions, comments or inquires about this package please open a ticket on the github repo or email the development team at <dev@quandl.com>. For any questions about data provided by the API please email connect@quandl.com
|
195
|
-
|
196
185
|
## Additional Links
|
197
186
|
|
198
187
|
* [Quandl](https://www.quandl.com)
|
@@ -202,4 +191,3 @@ For any questions, comments or inquires about this package please open a ticket
|
|
202
191
|
## License
|
203
192
|
|
204
193
|
[MIT License](http://opensource.org/licenses/MIT)
|
205
|
-
|
data/lib/quandl/api_config.rb
CHANGED
@@ -1,32 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Quandl
|
2
4
|
class ApiConfig
|
3
5
|
API_KEY_THREAD_KEY = 'quandl_api_key'
|
4
6
|
API_BASE_THREAD_KEY = 'quandl_api_base'
|
5
7
|
API_VERSION_THREAD_KEY = 'quandl_api_version_key'
|
6
8
|
|
9
|
+
@api_key = nil
|
10
|
+
@api_base = nil
|
11
|
+
@api_version = nil
|
12
|
+
|
7
13
|
class << self
|
8
14
|
def api_key=(api_key)
|
15
|
+
@api_key ||= api_key
|
9
16
|
Thread.current[API_KEY_THREAD_KEY] = api_key
|
10
17
|
end
|
11
18
|
|
12
19
|
def api_key
|
13
|
-
Thread.current[API_KEY_THREAD_KEY]
|
20
|
+
Thread.current[API_KEY_THREAD_KEY] || @api_key
|
14
21
|
end
|
15
22
|
|
16
23
|
def api_base=(api_base)
|
24
|
+
@api_base ||= api_base
|
17
25
|
Thread.current[API_BASE_THREAD_KEY] = api_base
|
18
26
|
end
|
19
27
|
|
20
28
|
def api_base
|
21
|
-
Thread.current[API_BASE_THREAD_KEY] || 'https://www.quandl.com/api/v3'
|
29
|
+
Thread.current[API_BASE_THREAD_KEY] || @api_base || 'https://www.quandl.com/api/v3'
|
22
30
|
end
|
23
31
|
|
24
32
|
def api_version=(api_version)
|
33
|
+
@api_version ||= api_version
|
25
34
|
Thread.current[API_VERSION_THREAD_KEY] = api_version
|
26
35
|
end
|
27
36
|
|
28
37
|
def api_version
|
29
|
-
Thread.current[API_VERSION_THREAD_KEY]
|
38
|
+
Thread.current[API_VERSION_THREAD_KEY] || @api_version
|
39
|
+
end
|
40
|
+
|
41
|
+
def reset
|
42
|
+
@api_key = nil
|
43
|
+
@api_base = nil
|
44
|
+
@api_version = nil
|
30
45
|
end
|
31
46
|
end
|
32
47
|
end
|
data/lib/quandl/connection.rb
CHANGED
@@ -8,8 +8,8 @@ module Quandl
|
|
8
8
|
headers = { accept: accept_value, request_source: 'ruby', request_source_version: Quandl::VERSION }.merge(headers)
|
9
9
|
headers = { x_api_token: ApiConfig.api_key }.merge(headers) if ApiConfig.api_key
|
10
10
|
|
11
|
-
request_url = ApiConfig.api_base
|
12
|
-
request_url = request_url
|
11
|
+
request_url = "#{ApiConfig.api_base}/#{url}"
|
12
|
+
request_url = "#{request_url}?#{params.to_query}" if params.present?
|
13
13
|
|
14
14
|
request_opts = { url: request_url, headers: headers, method: http_verb }
|
15
15
|
response = execute_request(request_opts, &block)
|
@@ -46,29 +46,29 @@ module Quandl
|
|
46
46
|
|
47
47
|
case code_letter
|
48
48
|
when 'L'
|
49
|
-
|
50
|
-
resp.headers, code)
|
51
|
-
when 'M'
|
52
|
-
fail InternalServerError.new(message, resp.code, resp.body, error_body,
|
49
|
+
raise LimitExceededError.new(message, resp.code, resp.body, error_body,
|
53
50
|
resp.headers, code)
|
51
|
+
when 'M'
|
52
|
+
raise InternalServerError.new(message, resp.code, resp.body, error_body,
|
53
|
+
resp.headers, code)
|
54
54
|
when 'A'
|
55
|
-
|
56
|
-
|
55
|
+
raise AuthenticationError.new(message, resp.code, resp.body, error_body,
|
56
|
+
resp.headers, code)
|
57
57
|
when 'P'
|
58
|
-
|
59
|
-
|
58
|
+
raise ForbiddenError.new(message, resp.code, resp.body, error_body,
|
59
|
+
resp.headers, code)
|
60
60
|
when 'S'
|
61
|
-
|
62
|
-
|
61
|
+
raise InvalidRequestError.new(message, resp.code, resp.body, error_body,
|
62
|
+
resp.headers, code)
|
63
63
|
when 'C'
|
64
|
-
|
65
|
-
|
64
|
+
raise NotFoundError.new(message, resp.code, resp.body, error_body,
|
65
|
+
resp.headers, code)
|
66
66
|
when 'X'
|
67
|
-
|
68
|
-
|
67
|
+
raise ServiceUnavailableError.new(message, resp.code, resp.body,
|
68
|
+
error_body, resp.headers, code)
|
69
69
|
else
|
70
|
-
|
71
|
-
|
70
|
+
raise QuandlError.new(message, resp.code, resp.body, error_body,
|
71
|
+
resp.headers, code)
|
72
72
|
end
|
73
73
|
end
|
74
74
|
end
|
@@ -1,13 +1,7 @@
|
|
1
1
|
# based off of stripe gem: https://github.com/stripe/stripe-ruby
|
2
2
|
module Quandl
|
3
3
|
class QuandlError < StandardError
|
4
|
-
attr_reader :quandl_message
|
5
|
-
attr_reader :http_status
|
6
|
-
attr_reader :http_body
|
7
|
-
attr_reader :http_headers
|
8
|
-
attr_reader :request_id
|
9
|
-
attr_reader :json_body
|
10
|
-
attr_reader :quandl_error_code
|
4
|
+
attr_reader :quandl_message, :http_status, :http_body, :http_headers, :request_id, :json_body, :quandl_error_code
|
11
5
|
|
12
6
|
# rubocop:disable Metrics/ParameterLists
|
13
7
|
def initialize(quandl_message = nil, http_status = nil, http_body = nil, json_body = nil,
|
data/lib/quandl/model/base.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Quandl
|
2
2
|
class ModelBase
|
3
3
|
def initialize(data, _options = {})
|
4
|
-
@raw_data = ActiveSupport::HashWithIndifferentAccess.new(
|
4
|
+
@raw_data = ActiveSupport::HashWithIndifferentAccess.new(data.transform_keys { |k| Quandl::Util.methodize(k) })
|
5
5
|
end
|
6
6
|
|
7
7
|
def data_fields
|
@@ -25,6 +25,7 @@ module Quandl
|
|
25
25
|
def method_missing(method_name, *args, &block)
|
26
26
|
return @raw_data[method_name.to_s] if @raw_data.key?(method_name.to_s)
|
27
27
|
return @raw_data.method(method_name.to_s).call(*args, &block) if @raw_data.respond_to?(method_name.to_s)
|
28
|
+
|
28
29
|
super
|
29
30
|
end
|
30
31
|
end
|
data/lib/quandl/model/data.rb
CHANGED
@@ -3,10 +3,10 @@ module Quandl
|
|
3
3
|
include Quandl::Operations::List
|
4
4
|
|
5
5
|
def self.create_list_from_response(_response, data)
|
6
|
-
if data['dataset_data']['data'].
|
6
|
+
if !data['dataset_data']['data'].empty? &&
|
7
7
|
data['dataset_data']['column_names'].length != data['dataset_data']['data'].first.length
|
8
|
-
|
9
|
-
|
8
|
+
raise InvalidDataError.new('number of column names does not match number of data points in a row!',
|
9
|
+
nil, nil, data)
|
10
10
|
end
|
11
11
|
values = data['dataset_data'].delete('data')
|
12
12
|
metadata = data['dataset_data']
|
@@ -31,6 +31,7 @@ module Quandl
|
|
31
31
|
|
32
32
|
def method_missing(method_name, *args, &block)
|
33
33
|
return @meta[method_name.to_s] if @meta.key?(method_name.to_s)
|
34
|
+
|
34
35
|
super
|
35
36
|
end
|
36
37
|
end
|
@@ -11,25 +11,24 @@ module Quandl
|
|
11
11
|
options.assert_valid_keys(:params)
|
12
12
|
|
13
13
|
url = bulk_download_path
|
14
|
-
url = Quandl::ApiConfig.api_base
|
14
|
+
url = "#{Quandl::ApiConfig.api_base}/#{url}"
|
15
15
|
url = Quandl::Util.constructed_path(url, id: database_code)
|
16
16
|
|
17
17
|
params = options[:params] || {}
|
18
18
|
params['api_key'] = Quandl::ApiConfig.api_key if Quandl::ApiConfig.api_key
|
19
19
|
params['api_version'] = Quandl::ApiConfig.api_version if Quandl::ApiConfig.api_version
|
20
20
|
|
21
|
-
url +=
|
21
|
+
url += "?#{params.to_query}" if params.any?
|
22
22
|
url
|
23
23
|
end
|
24
24
|
|
25
25
|
def bulk_download_path
|
26
|
-
path = self.class.default_path
|
27
|
-
|
28
|
-
path
|
26
|
+
path = "#{self.class.default_path}/data"
|
27
|
+
Quandl::Util.constructed_path(path, id: database_code)
|
29
28
|
end
|
30
29
|
|
31
30
|
def bulk_download_to_file(file_or_folder_path, options = {})
|
32
|
-
|
31
|
+
raise(QuandlError, 'You must specific a file handle or folder to write to.') if file_or_folder_path.blank?
|
33
32
|
|
34
33
|
# Retrieve the location of the bulk download url
|
35
34
|
path = bulk_download_path
|
@@ -37,8 +36,8 @@ module Quandl
|
|
37
36
|
if response.code == 302
|
38
37
|
response.headers[:location]
|
39
38
|
else
|
40
|
-
Quandl::Connection.handle_api_error(response) if response
|
41
|
-
|
39
|
+
Quandl::Connection.handle_api_error(response) if response&.body
|
40
|
+
raise(QuandlError, 'Unexpected result when fetching bulk download URI.')
|
42
41
|
end
|
43
42
|
end
|
44
43
|
uri = URI.parse(download_url)
|
@@ -46,9 +45,7 @@ module Quandl
|
|
46
45
|
# Check that we can write to the directory
|
47
46
|
file = file_or_folder_path
|
48
47
|
unless file_or_folder_path.is_a?(File)
|
49
|
-
if File.directory?(file_or_folder_path)
|
50
|
-
file_or_folder_path = Pathname.new(file_or_folder_path.to_s).join(File.basename(uri.path))
|
51
|
-
end
|
48
|
+
file_or_folder_path = Pathname.new(file_or_folder_path.to_s).join(File.basename(uri.path)) if File.directory?(file_or_folder_path)
|
52
49
|
file = File.open(file_or_folder_path, 'wb')
|
53
50
|
end
|
54
51
|
|
data/lib/quandl/model/dataset.rb
CHANGED
@@ -3,11 +3,11 @@ module Quandl
|
|
3
3
|
include Quandl::Operations::Get
|
4
4
|
include Quandl::Operations::List
|
5
5
|
|
6
|
-
# rubocop:disable
|
6
|
+
# rubocop:disable Naming/AccessorMethodName
|
7
7
|
def self.get_path
|
8
|
-
default_path
|
8
|
+
"#{default_path}/metadata"
|
9
9
|
end
|
10
|
-
# rubocop:enable
|
10
|
+
# rubocop:enable Naming/AccessorMethodName
|
11
11
|
|
12
12
|
def database
|
13
13
|
Quandl::Database.get(database_code)
|
data/lib/quandl/model/list.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
module Quandl
|
2
2
|
class List
|
3
|
-
attr_reader :meta
|
4
|
-
attr_reader :values
|
3
|
+
attr_reader :meta, :values
|
5
4
|
|
6
5
|
def initialize(klass, values, meta)
|
7
6
|
@klass = klass
|
@@ -10,7 +9,8 @@ module Quandl
|
|
10
9
|
end
|
11
10
|
|
12
11
|
def more_results?
|
13
|
-
|
12
|
+
raise(QuandlError, "#{@klass} does not support pagination yet") if !@meta.key?('total_pages') && !@meta.key?('current_page')
|
13
|
+
|
14
14
|
@meta['total_pages'] > @meta['current_page']
|
15
15
|
end
|
16
16
|
|
@@ -19,7 +19,7 @@ module Quandl
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def to_csv
|
22
|
-
|
22
|
+
raise(QuandlError, 'No values to export') if @values.empty?
|
23
23
|
|
24
24
|
CSV.generate do |csv|
|
25
25
|
csv << @values.first.column_names
|
@@ -39,6 +39,7 @@ module Quandl
|
|
39
39
|
return @meta[method_name.to_s] if @meta.key?(method_name.to_s)
|
40
40
|
return @meta[*args] if method_name.to_s == '[]' && @meta.key?(args[0].to_s)
|
41
41
|
return @values.method(method_name).call(*args, &block) if @values.respond_to?(method_name)
|
42
|
+
|
42
43
|
super
|
43
44
|
end
|
44
45
|
end
|
@@ -10,11 +10,11 @@ module Quandl
|
|
10
10
|
new(response_data[lookup_key.singularize])
|
11
11
|
end
|
12
12
|
|
13
|
-
# rubocop:disable
|
13
|
+
# rubocop:disable Naming/AccessorMethodName
|
14
14
|
def get_path
|
15
15
|
default_path
|
16
16
|
end
|
17
|
-
# rubocop:enable
|
17
|
+
# rubocop:enable Naming/AccessorMethodName
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
data/lib/quandl/util.rb
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
module Quandl
|
2
2
|
class Util
|
3
3
|
def self.methodize(string)
|
4
|
-
string.
|
4
|
+
string.delete('.').parameterize.tr('-', '_')
|
5
5
|
end
|
6
6
|
|
7
7
|
def self.convert_to_dates(hash)
|
8
8
|
return hash unless hash.is_a?(Hash)
|
9
|
+
|
9
10
|
hash.update(hash) do |_k, v|
|
10
11
|
if v.is_a?(String) && v =~ /^\d{4}-\d{2}-\d{2}$/ # Date
|
11
12
|
Date.parse(v)
|
12
|
-
elsif v.is_a?(String) && v =~ /^\d{4}-\d{2}-\d{2}T[\d
|
13
|
+
elsif v.is_a?(String) && v =~ /^\d{4}-\d{2}-\d{2}T[\d:.]+Z/ # DateTime
|
13
14
|
Time.parse(v)
|
14
15
|
elsif v.is_a?(Array)
|
15
16
|
v.map { |ao| convert_to_dates(ao) }
|
@@ -24,7 +25,7 @@ module Quandl
|
|
24
25
|
|
25
26
|
def self.constructed_path(path, params = {})
|
26
27
|
params ||= {}
|
27
|
-
sub_params =
|
28
|
+
sub_params = { id: nil }.merge(params).transform_keys { |k| ":#{k}" }
|
28
29
|
params.delete_if { |key, _value| path =~ /:#{key}/ }
|
29
30
|
|
30
31
|
path = path.dup
|
data/lib/quandl/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quandl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
8
|
-
- Matthew Basset
|
7
|
+
- Quandl
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2020-11-02 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: activesupport
|
@@ -17,70 +16,70 @@ dependencies:
|
|
17
16
|
requirements:
|
18
17
|
- - ">="
|
19
18
|
- !ruby/object:Gem::Version
|
20
|
-
version:
|
19
|
+
version: 5.2.4.3
|
21
20
|
type: :runtime
|
22
21
|
prerelease: false
|
23
22
|
version_requirements: !ruby/object:Gem::Requirement
|
24
23
|
requirements:
|
25
24
|
- - ">="
|
26
25
|
- !ruby/object:Gem::Version
|
27
|
-
version:
|
26
|
+
version: 5.2.4.3
|
28
27
|
- !ruby/object:Gem::Dependency
|
29
|
-
name:
|
28
|
+
name: json
|
30
29
|
requirement: !ruby/object:Gem::Requirement
|
31
30
|
requirements:
|
32
31
|
- - "~>"
|
33
32
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
33
|
+
version: 2.3.0
|
35
34
|
type: :runtime
|
36
35
|
prerelease: false
|
37
36
|
version_requirements: !ruby/object:Gem::Requirement
|
38
37
|
requirements:
|
39
38
|
- - "~>"
|
40
39
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
40
|
+
version: 2.3.0
|
42
41
|
- !ruby/object:Gem::Dependency
|
43
|
-
name:
|
42
|
+
name: rest-client
|
44
43
|
requirement: !ruby/object:Gem::Requirement
|
45
44
|
requirements:
|
46
45
|
- - "~>"
|
47
46
|
- !ruby/object:Gem::Version
|
48
|
-
version:
|
47
|
+
version: 2.0.2
|
49
48
|
type: :runtime
|
50
49
|
prerelease: false
|
51
50
|
version_requirements: !ruby/object:Gem::Requirement
|
52
51
|
requirements:
|
53
52
|
- - "~>"
|
54
53
|
- !ruby/object:Gem::Version
|
55
|
-
version:
|
54
|
+
version: 2.0.2
|
56
55
|
- !ruby/object:Gem::Dependency
|
57
|
-
name:
|
56
|
+
name: factory_girl
|
58
57
|
requirement: !ruby/object:Gem::Requirement
|
59
58
|
requirements:
|
60
59
|
- - "~>"
|
61
60
|
- !ruby/object:Gem::Version
|
62
|
-
version:
|
61
|
+
version: 4.5.0
|
63
62
|
type: :development
|
64
63
|
prerelease: false
|
65
64
|
version_requirements: !ruby/object:Gem::Requirement
|
66
65
|
requirements:
|
67
66
|
- - "~>"
|
68
67
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
68
|
+
version: 4.5.0
|
70
69
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
70
|
+
name: irb
|
72
71
|
requirement: !ruby/object:Gem::Requirement
|
73
72
|
requirements:
|
74
|
-
- - "
|
73
|
+
- - ">="
|
75
74
|
- !ruby/object:Gem::Version
|
76
|
-
version: '
|
75
|
+
version: '0'
|
77
76
|
type: :development
|
78
77
|
prerelease: false
|
79
78
|
version_requirements: !ruby/object:Gem::Requirement
|
80
79
|
requirements:
|
81
|
-
- - "
|
80
|
+
- - ">="
|
82
81
|
- !ruby/object:Gem::Version
|
83
|
-
version: '
|
82
|
+
version: '0'
|
84
83
|
- !ruby/object:Gem::Dependency
|
85
84
|
name: rspec
|
86
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -96,65 +95,36 @@ dependencies:
|
|
96
95
|
- !ruby/object:Gem::Version
|
97
96
|
version: '0'
|
98
97
|
- !ruby/object:Gem::Dependency
|
99
|
-
name:
|
98
|
+
name: rubocop
|
100
99
|
requirement: !ruby/object:Gem::Requirement
|
101
100
|
requirements:
|
102
|
-
- - "
|
101
|
+
- - ">="
|
103
102
|
- !ruby/object:Gem::Version
|
104
|
-
version:
|
103
|
+
version: '0'
|
105
104
|
type: :development
|
106
105
|
prerelease: false
|
107
106
|
version_requirements: !ruby/object:Gem::Requirement
|
108
107
|
requirements:
|
109
|
-
- - "
|
108
|
+
- - ">="
|
110
109
|
- !ruby/object:Gem::Version
|
111
|
-
version:
|
110
|
+
version: '0'
|
112
111
|
- !ruby/object:Gem::Dependency
|
113
112
|
name: webmock
|
114
113
|
requirement: !ruby/object:Gem::Requirement
|
115
114
|
requirements:
|
116
115
|
- - "~>"
|
117
116
|
- !ruby/object:Gem::Version
|
118
|
-
version:
|
117
|
+
version: 3.0.1
|
119
118
|
type: :development
|
120
119
|
prerelease: false
|
121
120
|
version_requirements: !ruby/object:Gem::Requirement
|
122
121
|
requirements:
|
123
122
|
- - "~>"
|
124
123
|
- !ruby/object:Gem::Version
|
125
|
-
version:
|
126
|
-
- !ruby/object:Gem::Dependency
|
127
|
-
name: factory_girl
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
129
|
-
requirements:
|
130
|
-
- - "~>"
|
131
|
-
- !ruby/object:Gem::Version
|
132
|
-
version: 4.5.0
|
133
|
-
type: :development
|
134
|
-
prerelease: false
|
135
|
-
version_requirements: !ruby/object:Gem::Requirement
|
136
|
-
requirements:
|
137
|
-
- - "~>"
|
138
|
-
- !ruby/object:Gem::Version
|
139
|
-
version: 4.5.0
|
140
|
-
- !ruby/object:Gem::Dependency
|
141
|
-
name: rubocopter
|
142
|
-
requirement: !ruby/object:Gem::Requirement
|
143
|
-
requirements:
|
144
|
-
- - ">="
|
145
|
-
- !ruby/object:Gem::Version
|
146
|
-
version: '0'
|
147
|
-
type: :development
|
148
|
-
prerelease: false
|
149
|
-
version_requirements: !ruby/object:Gem::Requirement
|
150
|
-
requirements:
|
151
|
-
- - ">="
|
152
|
-
- !ruby/object:Gem::Version
|
153
|
-
version: '0'
|
124
|
+
version: 3.0.1
|
154
125
|
description: A ruby implementation of the quandl client to be used as an ORM for quandl's
|
155
126
|
restful APIs.
|
156
|
-
email:
|
157
|
-
- dev@quandl.com
|
127
|
+
email: dev@quandl.com
|
158
128
|
executables: []
|
159
129
|
extensions: []
|
160
130
|
extra_rdoc_files: []
|
@@ -186,17 +156,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
186
156
|
requirements:
|
187
157
|
- - ">="
|
188
158
|
- !ruby/object:Gem::Version
|
189
|
-
version: '
|
159
|
+
version: '2.5'
|
190
160
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
191
161
|
requirements:
|
192
162
|
- - ">="
|
193
163
|
- !ruby/object:Gem::Version
|
194
164
|
version: '0'
|
195
165
|
requirements: []
|
196
|
-
|
197
|
-
rubygems_version: 2.4.5
|
166
|
+
rubygems_version: 3.0.3
|
198
167
|
signing_key:
|
199
168
|
specification_version: 4
|
200
169
|
summary: An ORM interface into the quandl api.
|
201
170
|
test_files: []
|
202
|
-
has_rdoc:
|