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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 8bcec9178eedea09db0f199d66775c08a466e626
4
- data.tar.gz: 1f83ce52389cdcf290b7227d683e47ea1a5bbfae
2
+ SHA256:
3
+ metadata.gz: f3d4680c92a1565994d4f21afb2599c53c2ce9fc586a394ebbfcc701c9f5921f
4
+ data.tar.gz: 724353065c55448a8ca49bedfedd416a48f6c973bba5bb810902bfa528879d8d
5
5
  SHA512:
6
- metadata.gz: ba3f3b3dc36b8c5608a7d5f274b3b571224966748076b0a3ec8a40937ee7e1bb4387143dc25ecad070ad96669f8d925c5c97c28e03380ba0374078da13a6208e
7
- data.tar.gz: 9b8e317737e4b51d3547a9cc6fdc636f7dc207fa6c6c873742b5ce28720af8c65d0f194662d794b81dee75c33f8349b84ea1a4ab70069def46e430c09b2f7dca
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
- 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:
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 equalivalent lookup.
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
-
@@ -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
@@ -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 + '/' + url
12
- request_url = request_url + '?' + params.to_query if params.present?
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
- fail LimitExceededError.new(message, resp.code, resp.body, error_body,
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
- fail AuthenticationError.new(message, resp.code, resp.body, error_body,
56
- resp.headers, code)
55
+ raise AuthenticationError.new(message, resp.code, resp.body, error_body,
56
+ resp.headers, code)
57
57
  when 'P'
58
- fail ForbiddenError.new(message, resp.code, resp.body, error_body,
59
- resp.headers, code)
58
+ raise ForbiddenError.new(message, resp.code, resp.body, error_body,
59
+ resp.headers, code)
60
60
  when 'S'
61
- fail InvalidRequestError.new(message, resp.code, resp.body, error_body,
62
- resp.headers, code)
61
+ raise InvalidRequestError.new(message, resp.code, resp.body, error_body,
62
+ resp.headers, code)
63
63
  when 'C'
64
- fail NotFoundError.new(message, resp.code, resp.body, error_body,
65
- resp.headers, code)
64
+ raise NotFoundError.new(message, resp.code, resp.body, error_body,
65
+ resp.headers, code)
66
66
  when 'X'
67
- fail ServiceUnavailableError.new(message, resp.code, resp.body,
68
- error_body, resp.headers, code)
67
+ raise ServiceUnavailableError.new(message, resp.code, resp.body,
68
+ error_body, resp.headers, code)
69
69
  else
70
- fail QuandlError.new(message, resp.code, resp.body, error_body,
71
- resp.headers, code)
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,
@@ -1,7 +1,7 @@
1
1
  module Quandl
2
2
  class ModelBase
3
3
  def initialize(data, _options = {})
4
- @raw_data = ActiveSupport::HashWithIndifferentAccess.new(Hash[data.map { |k, v| [Quandl::Util.methodize(k), v] }])
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
@@ -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'].length > 0 &&
6
+ if !data['dataset_data']['data'].empty? &&
7
7
  data['dataset_data']['column_names'].length != data['dataset_data']['data'].first.length
8
- fail InvalidDataError.new('number of column names does not match number of data points in a row!',
9
- nil, nil, data)
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 + '/' + url
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 += '?' + params.to_query if params.any?
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 + '/data'
27
- path = Quandl::Util.constructed_path(path, id: database_code)
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
- fail(QuandlError, 'You must specific a file handle or folder to write to.') if file_or_folder_path.blank?
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
- fail(QuandlError, 'Unexpected result when fetching bulk download URI.')
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
 
@@ -3,11 +3,11 @@ module Quandl
3
3
  include Quandl::Operations::Get
4
4
  include Quandl::Operations::List
5
5
 
6
- # rubocop:disable Style/AccessorMethodName
6
+ # rubocop:disable Naming/AccessorMethodName
7
7
  def self.get_path
8
- default_path + '/metadata'
8
+ "#{default_path}/metadata"
9
9
  end
10
- # rubocop:enable Style/AccessorMethodName
10
+ # rubocop:enable Naming/AccessorMethodName
11
11
 
12
12
  def database
13
13
  Quandl::Database.get(database_code)
@@ -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
- fail(QuandlError, "#{@klass} does not support pagination yet") if !@meta.key?('total_pages') && !@meta.key?('current_page')
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
- fail(QuandlError, 'No values to export') if @values.empty?
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 Style/AccessorMethodName
13
+ # rubocop:disable Naming/AccessorMethodName
14
14
  def get_path
15
15
  default_path
16
16
  end
17
- # rubocop:enable Style/AccessorMethodName
17
+ # rubocop:enable Naming/AccessorMethodName
18
18
  end
19
19
  end
20
20
  end
@@ -1,15 +1,16 @@
1
1
  module Quandl
2
2
  class Util
3
3
  def self.methodize(string)
4
- string.gsub(/\./, '').parameterize.gsub(/\-/, '_')
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:\.]+Z/ # DateTime
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 = Hash[{ id: nil }.merge(params).map { |k, v| [':' + k.to_s, v] }]
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
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Quandl
2
- VERSION = '1.0.2'
4
+ VERSION = '1.2.0'
3
5
  end
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.2
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
- - Clement Leung
8
- - Matthew Basset
7
+ - Quandl
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2015-08-26 00:00:00.000000000 Z
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: 4.2.3
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: 4.2.3
26
+ version: 5.2.4.3
28
27
  - !ruby/object:Gem::Dependency
29
- name: rest-client
28
+ name: json
30
29
  requirement: !ruby/object:Gem::Requirement
31
30
  requirements:
32
31
  - - "~>"
33
32
  - !ruby/object:Gem::Version
34
- version: 1.8.0
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: 1.8.0
40
+ version: 2.3.0
42
41
  - !ruby/object:Gem::Dependency
43
- name: json
42
+ name: rest-client
44
43
  requirement: !ruby/object:Gem::Requirement
45
44
  requirements:
46
45
  - - "~>"
47
46
  - !ruby/object:Gem::Version
48
- version: 1.8.3
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: 1.8.3
54
+ version: 2.0.2
56
55
  - !ruby/object:Gem::Dependency
57
- name: bundler
56
+ name: factory_girl
58
57
  requirement: !ruby/object:Gem::Requirement
59
58
  requirements:
60
59
  - - "~>"
61
60
  - !ruby/object:Gem::Version
62
- version: '1.10'
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: '1.10'
68
+ version: 4.5.0
70
69
  - !ruby/object:Gem::Dependency
71
- name: rake
70
+ name: irb
72
71
  requirement: !ruby/object:Gem::Requirement
73
72
  requirements:
74
- - - "~>"
73
+ - - ">="
75
74
  - !ruby/object:Gem::Version
76
- version: '10.0'
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: '10.0'
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: pry-byebug
98
+ name: rubocop
100
99
  requirement: !ruby/object:Gem::Requirement
101
100
  requirements:
102
- - - "~>"
101
+ - - ">="
103
102
  - !ruby/object:Gem::Version
104
- version: 3.1.0
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: 3.1.0
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: 1.21.0
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: 1.21.0
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: '0'
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
- rubyforge_project:
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: