quandl 1.0.2 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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: