iex-ruby-client 1.0.1 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. checksums.yaml +5 -5
  2. data/.env.sample +2 -0
  3. data/.github/FUNDING.yml +1 -0
  4. data/.rubocop.yml +4 -1
  5. data/.rubocop_todo.yml +0 -8
  6. data/CHANGELOG.md +43 -9
  7. data/Dangerfile +2 -2
  8. data/Gemfile +3 -2
  9. data/README.md +134 -10
  10. data/iex-ruby-client.gemspec +3 -2
  11. data/lib/iex/api.rb +6 -1
  12. data/lib/iex/api/client.rb +13 -2
  13. data/lib/iex/api/config/client.rb +52 -0
  14. data/lib/iex/api/config/logger.rb +35 -0
  15. data/lib/iex/cloud/connection.rb +22 -19
  16. data/lib/iex/cloud/request.rb +1 -1
  17. data/lib/iex/cloud/response.rb +1 -1
  18. data/lib/iex/endpoints/advanced_stats.rb +11 -0
  19. data/lib/iex/endpoints/chart.rb +5 -6
  20. data/lib/iex/endpoints/company.rb +1 -1
  21. data/lib/iex/endpoints/crypto.rb +1 -1
  22. data/lib/iex/endpoints/dividends.rb +1 -1
  23. data/lib/iex/endpoints/earnings.rb +1 -1
  24. data/lib/iex/endpoints/income.rb +13 -0
  25. data/lib/iex/endpoints/key_stats.rb +1 -1
  26. data/lib/iex/endpoints/largest_trades.rb +1 -1
  27. data/lib/iex/endpoints/logo.rb +1 -1
  28. data/lib/iex/endpoints/news.rb +1 -1
  29. data/lib/iex/endpoints/ohlc.rb +2 -2
  30. data/lib/iex/endpoints/price.rb +1 -1
  31. data/lib/iex/endpoints/quote.rb +1 -1
  32. data/lib/iex/endpoints/ref_data.rb +22 -0
  33. data/lib/iex/endpoints/sectors.rb +1 -1
  34. data/lib/iex/endpoints/stock_market.rb +11 -0
  35. data/lib/iex/resources.rb +4 -0
  36. data/lib/iex/resources/advanced_stats.rb +42 -0
  37. data/lib/iex/resources/chart.rb +9 -14
  38. data/lib/iex/resources/company.rb +1 -0
  39. data/lib/iex/resources/income.rb +36 -0
  40. data/lib/iex/resources/key_stats.rb +2 -2
  41. data/lib/iex/resources/quote.rb +15 -5
  42. data/lib/iex/resources/resource.rb +1 -1
  43. data/lib/iex/resources/symbol.rb +10 -0
  44. data/lib/iex/resources/symbols.rb +19 -0
  45. data/lib/iex/version.rb +1 -1
  46. data/spec/fixtures/iex/advanced_stats/invalid.yml +50 -0
  47. data/spec/fixtures/iex/advanced_stats/msft.yml +57 -0
  48. data/spec/fixtures/iex/chart/1d.yml +440 -473
  49. data/spec/fixtures/iex/chart/20190306.yml +440 -473
  50. data/spec/fixtures/iex/chart/bad_option.yml +47 -81
  51. data/spec/fixtures/iex/chart/chartInterval.yml +89 -122
  52. data/spec/fixtures/iex/chart/dynamic/1m.yml +73 -107
  53. data/spec/fixtures/iex/chart/invalid.yml +47 -81
  54. data/spec/fixtures/iex/chart/msft.yml +74 -107
  55. data/spec/fixtures/iex/income/invalid.yml +49 -0
  56. data/spec/fixtures/iex/income/msft.yml +53 -0
  57. data/spec/fixtures/iex/income/nsrgy.yml +55 -0
  58. data/spec/fixtures/iex/ref-data/isin.yml +57 -0
  59. data/spec/fixtures/iex/ref-data/isin_mapped.yml +57 -0
  60. data/spec/fixtures/iex/ref-data/symbols.yml +9002 -0
  61. data/spec/fixtures/iex/ref-data/wrong_isin_mapped.yml +57 -0
  62. data/spec/fixtures/iex/stock_market/list_mostactive.yml +76 -0
  63. data/spec/iex/client_spec.rb +97 -14
  64. data/spec/iex/config/client_spec.rb +49 -0
  65. data/spec/iex/config/logger_spec.rb +46 -0
  66. data/spec/iex/endpoints/advanced_stats_spec.rb +54 -0
  67. data/spec/iex/endpoints/chart_spec.rb +7 -7
  68. data/spec/iex/endpoints/company_spec.rb +1 -0
  69. data/spec/iex/endpoints/income_spec.rb +68 -0
  70. data/spec/iex/endpoints/key_stats_spec.rb +2 -1
  71. data/spec/iex/endpoints/quote_spec.rb +2 -0
  72. data/spec/iex/endpoints/ref_data_spec.rb +76 -0
  73. data/spec/iex/endpoints/stock_market_spec.rb +14 -0
  74. data/spec/spec_helper.rb +3 -2
  75. data/spec/support/vcr.rb +3 -0
  76. metadata +56 -16
  77. data/lib/iex/api/config.rb +0 -45
  78. data/spec/iex/config_spec.rb +0 -22
@@ -12,11 +12,11 @@ describe IEX::Resources::Chart do
12
12
  it 'retrieves a default chart' do
13
13
  expect(subject.count).to eq 23
14
14
  expect(first).to be_a IEX::Resources::Chart::Default
15
- expect(first.label).to eq 'Mar 6'
15
+ expect(first.label).to eq 'Jul 10'
16
16
  expect(first.change_percent_s).to eq '0.00%'
17
- expect(first.close).to eq 111.75
18
- expect(first.date).to eq Date.new(2019, 3, 6)
19
- expect(last.label).to eq 'Apr 5'
17
+ expect(first.close).to eq 137.85
18
+ expect(first.date).to eq Date.new(2019, 7, 10)
19
+ expect(last.label).to eq 'Aug 9'
20
20
  end
21
21
  end
22
22
 
@@ -30,8 +30,8 @@ describe IEX::Resources::Chart do
30
30
  expect(subject.count).to eq 390
31
31
  expect(first).to be_a IEX::Resources::Chart::OneDay
32
32
  expect(first.label).to eq '09:30 AM'
33
- expect(first.high).to eq 119.67
34
- expect(first.low).to eq 119.43
33
+ expect(first.high).to eq 138.72
34
+ expect(first.low).to eq 138.5
35
35
  expect(first.minute).to eq '09:30'
36
36
  end
37
37
  end
@@ -67,7 +67,7 @@ describe IEX::Resources::Chart do
67
67
  it 'retrieves a 1m chart from' do
68
68
  expect(subject.count).to eq 23
69
69
  expect(first).to be_a IEX::Resources::Chart::Default
70
- expect(first.date).to eq Date.new(2019, 3, 6)
70
+ expect(first.date).to eq Date.new(2019, 7, 10)
71
71
  end
72
72
  end
73
73
 
@@ -19,6 +19,7 @@ describe IEX::Resources::Company do
19
19
  expect(subject.sector).to eq 'Technology Services'
20
20
  expect(subject.employees).to eq 131_000
21
21
  expect(subject.security_name).to eq 'Microsoft Corporation'
22
+ expect(subject.tags).to eq ['Technology Services', 'Packaged Software']
22
23
  end
23
24
  end
24
25
  context 'invalid symbol', vcr: { cassette_name: 'company/invalid' } do
@@ -0,0 +1,68 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe IEX::Resources::Income do
6
+ include_context 'client'
7
+
8
+ context 'known symbol' do
9
+ context 'with defaults', vcr: { cassette_name: 'income/msft' } do
10
+ subject do
11
+ client.income('MSFT')
12
+ end
13
+ let(:income) { subject.first }
14
+
15
+ it 'retrieves income statement' do
16
+ expect(subject.size).to eq 1
17
+ expect(income.report_date).to eq '2019-03-31'
18
+ expect(income.total_revenue).to eq 30_505_000_000
19
+ expect(income.total_revenue_dollar).to eq '$30,505,000,000'
20
+ expect(income.cost_of_revenue).to eq 10_170_000_000
21
+ expect(income.cost_of_revenue_dollar).to eq '$10,170,000,000'
22
+ expect(income.gross_profit).to eq 20_335_000_000
23
+ expect(income.gross_profit_dollar).to eq '$20,335,000,000'
24
+ expect(income.research_and_development).to eq 4_316_000_000
25
+ expect(income.research_and_development_dollar).to eq '$4,316,000,000'
26
+ expect(income.selling_general_and_admin).to eq 5_744_000_000
27
+ expect(income.selling_general_and_admin_dollar).to eq '$5,744,000,000'
28
+ expect(income.operating_expense).to eq 20_230_000_000
29
+ expect(income.operating_expense_dollar).to eq '$20,230,000,000'
30
+ expect(income.operating_income).to eq 10_275_000_000
31
+ expect(income.operating_income_dollar).to eq '$10,275,000,000'
32
+ expect(income.other_income_expense_net).to eq 211_000_000
33
+ expect(income.other_income_expense_net_dollar).to eq '$211,000,000'
34
+ expect(income.ebit_dollar).to eq '$10,275,000,000'
35
+ expect(income.ebit).to eq 10_275_000_000
36
+ expect(income.interest_income).to eq 671_000_000
37
+ expect(income.interest_income_dollar).to eq '$671,000,000'
38
+ expect(income.pretax_income).to eq 10_486_000_000
39
+ expect(income.pretax_income_dollar).to eq '$10,486,000,000'
40
+ expect(income.income_tax).to eq 1_677_000_000
41
+ expect(income.income_tax_dollar).to eq '$1,677,000,000'
42
+ expect(income.minority_interest).to eq 0
43
+ expect(income.net_income).to eq 8_809_000_000
44
+ expect(income.net_income_dollar).to eq '$8,809,000,000'
45
+ expect(income.net_income_basic).to eq 8_809_000_000
46
+ expect(income.net_income_basic_dollar).to eq '$8,809,000,000'
47
+ end
48
+ end
49
+ end
50
+
51
+ context 'no result', vcr: { cassette_name: 'income/nsrgy' } do
52
+ subject do
53
+ client.income('nsrgy')
54
+ end
55
+ it 'returns empty array' do
56
+ expect(subject).to eq []
57
+ end
58
+ end
59
+
60
+ context 'invalid symbol', vcr: { cassette_name: 'income/invalid' } do
61
+ subject do
62
+ client.income('INVALID')
63
+ end
64
+ it 'fails with SymbolNotFoundError' do
65
+ expect { subject }.to raise_error IEX::Errors::SymbolNotFoundError, 'Symbol INVALID Not Found'
66
+ end
67
+ end
68
+ end
@@ -10,7 +10,7 @@ describe IEX::Resources::KeyStats do
10
10
  it 'retrieves a keyStats' do
11
11
  expect(subject.company_name).to eq 'Microsoft Corp.'
12
12
  expect(subject.market_cap).to eq 990_869_169_557
13
- expect(subject.market_cap_dollars).to eq '$990,869,169,557'
13
+ expect(subject.market_cap_dollar).to eq '$990,869,169,557'
14
14
  expect(subject.employees).to eq 133_074
15
15
  end
16
16
 
@@ -19,6 +19,7 @@ describe IEX::Resources::KeyStats do
19
19
  expect(subject.week_52_high_dollar).to eq '$136.04'
20
20
  expect(subject.week_52_low).to eq 95.92
21
21
  expect(subject.week_52_low_dollar).to eq '$95.92'
22
+ expect(subject.week_52_change).to eq 0.371641
22
23
  expect(subject.week_52_change_dollar).to eq '$0.37'
23
24
  end
24
25
 
@@ -18,6 +18,8 @@ describe IEX::Resources::Quote do
18
18
  expect(subject.week_52_low).to eq 87.73
19
19
  expect(subject.change_percent).to eq(-0.00508)
20
20
  expect(subject.change_percent_s).to eq '-0.51%'
21
+ expect(subject.extended_change_percent).to eq(-0.00008)
22
+ expect(subject.extended_change_percent_s).to eq '-0.01%'
21
23
  end
22
24
  it 'coerces times' do
23
25
  expect(subject.latest_update).to eq 1_554_408_000_193
@@ -0,0 +1,76 @@
1
+ require 'spec_helper'
2
+
3
+ describe IEX::Api::Client do
4
+ include_context 'client'
5
+
6
+ describe '#ref_data_isin', vcr: { cassette_name: 'ref-data/isin' } do
7
+ context 'without options' do
8
+ subject { client.ref_data_isin(['US0378331005']) }
9
+
10
+ it 'converts ISIN to IEX Cloud symbols' do
11
+ expect(subject.count).to eq(2)
12
+ expect(subject.first).to eq('exchange' => 'NAS', 'iex_id' => 'IEX_4D48333344362D52', 'region' => 'US', 'symbol' => 'AAPL')
13
+ expect(subject.last).to eq('exchange' => 'ETR', 'iex_id' => 'IEX_464D46474C312D52', 'region' => 'DE', 'symbol' => 'APC-GY')
14
+ end
15
+ end
16
+
17
+ context 'graciously handle parameter as string', vcr: { cassette_name: 'ref-data/isin' } do
18
+ subject { client.ref_data_isin('US0378331005') }
19
+
20
+ it 'converts ISIN to IEX Cloud symbols' do
21
+ expect(subject.count).to eq(2)
22
+ expect(subject.first).to eq('exchange' => 'NAS', 'iex_id' => 'IEX_4D48333344362D52', 'region' => 'US', 'symbol' => 'AAPL')
23
+ expect(subject.last).to eq('exchange' => 'ETR', 'iex_id' => 'IEX_464D46474C312D52', 'region' => 'DE', 'symbol' => 'APC-GY')
24
+ end
25
+ end
26
+
27
+ context 'with mapped option', vcr: { cassette_name: 'ref-data/isin_mapped' } do
28
+ subject { client.ref_data_isin(%w[US0378331005 US5949181045], mapped: true) }
29
+
30
+ it 'converts ISINs to IEX Cloud symbols mapped by ISIN' do
31
+ expect(subject.keys).to contain_exactly('US0378331005', 'US5949181045')
32
+
33
+ expect(subject['US0378331005'].first).to eq('exchange' => 'NAS', 'iex_id' => 'IEX_4D48333344362D52', 'region' => 'US', 'symbol' => 'AAPL')
34
+ expect(subject['US0378331005'].last).to eq('exchange' => 'ETR', 'iex_id' => 'IEX_464D46474C312D52', 'region' => 'DE', 'symbol' => 'APC-GY')
35
+
36
+ expect(subject['US5949181045'][0]).to eq('exchange' => 'NAS', 'iex_id' => 'IEX_5038523343322D52', 'region' => 'US', 'symbol' => 'MSFT')
37
+ expect(subject['US5949181045'][1]).to eq('exchange' => 'ETR', 'iex_id' => 'IEX_4C42583859482D52', 'region' => 'DE', 'symbol' => 'MSF-GY')
38
+ expect(subject['US5949181045'][2]).to eq('exchange' => 'BRU', 'iex_id' => 'IEX_5833345950432D52', 'region' => 'BE', 'symbol' => 'MSF-BB')
39
+ end
40
+ end
41
+
42
+ context 'with wrong ISIN', vcr: { cassette_name: 'ref-data/wrong_isin_mapped' } do
43
+ subject { client.ref_data_isin(%w[WRONG12345], mapped: true) }
44
+
45
+ it 'returns nil value for given ISIN' do
46
+ expect(subject).to eq('WRONG12345' => nil)
47
+ end
48
+ end
49
+ end
50
+
51
+ describe '#ref_data_symbols', vcr: { cassette_name: 'ref-data/symbols' } do
52
+ subject { client.ref_data_symbols }
53
+
54
+ it 'retrieves all symbols' do
55
+ expect(subject.count).to eq 8808
56
+ end
57
+
58
+ context 'first symbol' do
59
+ subject { client.ref_data_symbols.first }
60
+ it 'retrieves a symbol data' do
61
+ expect(subject.symbol).to eq 'A'
62
+ expect(subject.exchange).to eq 'NYS'
63
+ expect(subject.name).to eq 'Agilent Technologies Inc.'
64
+ expect(subject.date).to eq Date.parse('2020-04-30')
65
+ expect(subject.enabled).to eq true
66
+ expect(subject.enabled?).to eq true
67
+ expect(subject.type).to eq 'cs'
68
+ expect(subject.region).to eq 'US'
69
+ expect(subject.currency).to eq 'USD'
70
+ expect(subject.iex_id).to eq 'IEX_46574843354B2D52'
71
+ expect(subject.figi).to eq 'BBG000C2V3D6'
72
+ expect(subject.cik).to eq '1090872'
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ describe IEX::Endpoints::StockMarket do
4
+ include_context 'client'
5
+
6
+ describe '#stock_market_list', vcr: { cassette_name: 'stock_market/list_mostactive' } do
7
+ subject { client.stock_market_list(:mostactive) }
8
+
9
+ it 'retrieves a list of quotes' do
10
+ expect(subject).to all(be_a(IEX::Resources::Quote))
11
+ expect(subject.map(&:symbol)).to match_array(%w[AAPL AMD BAC F GE INO INTC MSFT T XOM])
12
+ end
13
+ end
14
+ end
@@ -2,11 +2,12 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..'))
2
2
 
3
3
  require 'rubygems'
4
4
  require 'rspec'
5
+ require 'dotenv'
5
6
 
6
7
  require 'iex-ruby-client'
7
8
 
8
- Dir[File.join(File.dirname(__FILE__), 'support', '**/*.rb')].each do |file|
9
+ Dir[File.join(File.dirname(__FILE__), 'support', '**/*.rb')].sort.each do |file|
9
10
  require file
10
11
  end
11
12
 
12
- ENV['IEX_API_PUBLISHABLE_TOKEN'] ||= 'test-iex-api-publishable-token'
13
+ Dotenv.load('.env', '.env.sample')
@@ -6,4 +6,7 @@ VCR.configure do |config|
6
6
  config.hook_into :webmock
7
7
  # config.default_cassette_options = { record: :new_episodes }
8
8
  config.configure_rspec_metadata!
9
+
10
+ config.filter_sensitive_data('test-iex-api-publishable-token') { ENV['IEX_API_PUBLISHABLE_TOKEN'] }
11
+ config.filter_sensitive_data('test-iex-api-secret-token') { ENV['IEX_API_SECRET_TOKEN'] }
9
12
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iex-ruby-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Doubrovkine
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-08 00:00:00.000000000 Z
11
+ date: 2020-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0.9'
19
+ version: '0.17'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '0.9'
26
+ version: '0.17'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: faraday_middleware
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - '='
102
102
  - !ruby/object:Gem::Version
103
- version: 0.67.2
103
+ version: 0.72.0
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - '='
109
109
  - !ruby/object:Gem::Version
110
- version: 0.67.2
110
+ version: 0.72.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: vcr
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -136,12 +136,14 @@ dependencies:
136
136
  - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
- description:
139
+ description:
140
140
  email: dblock@dblock.org
141
141
  executables: []
142
142
  extensions: []
143
143
  extra_rdoc_files: []
144
144
  files:
145
+ - ".env.sample"
146
+ - ".github/FUNDING.yml"
145
147
  - ".gitignore"
146
148
  - ".rspec"
147
149
  - ".rubocop.yml"
@@ -160,16 +162,19 @@ files:
160
162
  - lib/iex-ruby-client.rb
161
163
  - lib/iex/api.rb
162
164
  - lib/iex/api/client.rb
163
- - lib/iex/api/config.rb
165
+ - lib/iex/api/config/client.rb
166
+ - lib/iex/api/config/logger.rb
164
167
  - lib/iex/cloud.rb
165
168
  - lib/iex/cloud/connection.rb
166
169
  - lib/iex/cloud/request.rb
167
170
  - lib/iex/cloud/response.rb
171
+ - lib/iex/endpoints/advanced_stats.rb
168
172
  - lib/iex/endpoints/chart.rb
169
173
  - lib/iex/endpoints/company.rb
170
174
  - lib/iex/endpoints/crypto.rb
171
175
  - lib/iex/endpoints/dividends.rb
172
176
  - lib/iex/endpoints/earnings.rb
177
+ - lib/iex/endpoints/income.rb
173
178
  - lib/iex/endpoints/key_stats.rb
174
179
  - lib/iex/endpoints/largest_trades.rb
175
180
  - lib/iex/endpoints/logo.rb
@@ -177,18 +182,22 @@ files:
177
182
  - lib/iex/endpoints/ohlc.rb
178
183
  - lib/iex/endpoints/price.rb
179
184
  - lib/iex/endpoints/quote.rb
185
+ - lib/iex/endpoints/ref_data.rb
180
186
  - lib/iex/endpoints/sectors.rb
187
+ - lib/iex/endpoints/stock_market.rb
181
188
  - lib/iex/errors.rb
182
189
  - lib/iex/errors/client_error.rb
183
190
  - lib/iex/errors/permission_denied_error.rb
184
191
  - lib/iex/errors/symbol_not_found_error.rb
185
192
  - lib/iex/logger.rb
186
193
  - lib/iex/resources.rb
194
+ - lib/iex/resources/advanced_stats.rb
187
195
  - lib/iex/resources/chart.rb
188
196
  - lib/iex/resources/company.rb
189
197
  - lib/iex/resources/crypto.rb
190
198
  - lib/iex/resources/dividends.rb
191
199
  - lib/iex/resources/earnings.rb
200
+ - lib/iex/resources/income.rb
192
201
  - lib/iex/resources/key_stats.rb
193
202
  - lib/iex/resources/largest_trades.rb
194
203
  - lib/iex/resources/logo.rb
@@ -197,7 +206,11 @@ files:
197
206
  - lib/iex/resources/quote.rb
198
207
  - lib/iex/resources/resource.rb
199
208
  - lib/iex/resources/sectors.rb
209
+ - lib/iex/resources/symbol.rb
210
+ - lib/iex/resources/symbols.rb
200
211
  - lib/iex/version.rb
212
+ - spec/fixtures/iex/advanced_stats/invalid.yml
213
+ - spec/fixtures/iex/advanced_stats/msft.yml
201
214
  - spec/fixtures/iex/chart/1d.yml
202
215
  - spec/fixtures/iex/chart/20190306.yml
203
216
  - spec/fixtures/iex/chart/bad_option.yml
@@ -216,6 +229,9 @@ files:
216
229
  - spec/fixtures/iex/dividends/msft_invalid_range.yml
217
230
  - spec/fixtures/iex/earnings/invalid.yml
218
231
  - spec/fixtures/iex/earnings/msft.yml
232
+ - spec/fixtures/iex/income/invalid.yml
233
+ - spec/fixtures/iex/income/msft.yml
234
+ - spec/fixtures/iex/income/nsrgy.yml
219
235
  - spec/fixtures/iex/key_stats/invalid.yml
220
236
  - spec/fixtures/iex/key_stats/msft.yml
221
237
  - spec/fixtures/iex/largest-trades/aapl.yml
@@ -230,15 +246,23 @@ files:
230
246
  - spec/fixtures/iex/price/msft.yml
231
247
  - spec/fixtures/iex/quote/invalid.yml
232
248
  - spec/fixtures/iex/quote/msft.yml
249
+ - spec/fixtures/iex/ref-data/isin.yml
250
+ - spec/fixtures/iex/ref-data/isin_mapped.yml
251
+ - spec/fixtures/iex/ref-data/symbols.yml
252
+ - spec/fixtures/iex/ref-data/wrong_isin_mapped.yml
233
253
  - spec/fixtures/iex/sectors/invalid.yml
234
254
  - spec/fixtures/iex/sectors/sectors-performance.yml
255
+ - spec/fixtures/iex/stock_market/list_mostactive.yml
235
256
  - spec/iex/client_spec.rb
236
- - spec/iex/config_spec.rb
257
+ - spec/iex/config/client_spec.rb
258
+ - spec/iex/config/logger_spec.rb
259
+ - spec/iex/endpoints/advanced_stats_spec.rb
237
260
  - spec/iex/endpoints/chart_spec.rb
238
261
  - spec/iex/endpoints/company_spec.rb
239
262
  - spec/iex/endpoints/crypto_spec.rb
240
263
  - spec/iex/endpoints/dividends_spec.rb
241
264
  - spec/iex/endpoints/earnings_spec.rb
265
+ - spec/iex/endpoints/income_spec.rb
242
266
  - spec/iex/endpoints/key_stats_spec.rb
243
267
  - spec/iex/endpoints/largest_trades_spec.rb
244
268
  - spec/iex/endpoints/logo_spec.rb
@@ -246,7 +270,9 @@ files:
246
270
  - spec/iex/endpoints/ohlc_spec.rb
247
271
  - spec/iex/endpoints/price_spec.rb
248
272
  - spec/iex/endpoints/quote_spec.rb
273
+ - spec/iex/endpoints/ref_data_spec.rb
249
274
  - spec/iex/endpoints/sectors_spec.rb
275
+ - spec/iex/endpoints/stock_market_spec.rb
250
276
  - spec/iex/resources/resource_spec.rb
251
277
  - spec/iex/version_spec.rb
252
278
  - spec/spec_helper.rb
@@ -256,7 +282,7 @@ homepage: http://github.com/dblock/iex-ruby-client
256
282
  licenses:
257
283
  - MIT
258
284
  metadata: {}
259
- post_install_message:
285
+ post_install_message:
260
286
  rdoc_options: []
261
287
  require_paths:
262
288
  - lib
@@ -264,19 +290,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
264
290
  requirements:
265
291
  - - ">="
266
292
  - !ruby/object:Gem::Version
267
- version: '0'
293
+ version: 2.3.0
268
294
  required_rubygems_version: !ruby/object:Gem::Requirement
269
295
  requirements:
270
296
  - - ">="
271
297
  - !ruby/object:Gem::Version
272
298
  version: 1.3.6
273
299
  requirements: []
274
- rubyforge_project:
275
- rubygems_version: 2.6.14.1
276
- signing_key:
300
+ rubygems_version: 3.1.4
301
+ signing_key:
277
302
  specification_version: 4
278
303
  summary: IEX Finance API Ruby client with support for retrieving stock quotes.
279
304
  test_files:
305
+ - spec/fixtures/iex/advanced_stats/invalid.yml
306
+ - spec/fixtures/iex/advanced_stats/msft.yml
280
307
  - spec/fixtures/iex/chart/1d.yml
281
308
  - spec/fixtures/iex/chart/20190306.yml
282
309
  - spec/fixtures/iex/chart/bad_option.yml
@@ -295,6 +322,9 @@ test_files:
295
322
  - spec/fixtures/iex/dividends/msft_invalid_range.yml
296
323
  - spec/fixtures/iex/earnings/invalid.yml
297
324
  - spec/fixtures/iex/earnings/msft.yml
325
+ - spec/fixtures/iex/income/invalid.yml
326
+ - spec/fixtures/iex/income/msft.yml
327
+ - spec/fixtures/iex/income/nsrgy.yml
298
328
  - spec/fixtures/iex/key_stats/invalid.yml
299
329
  - spec/fixtures/iex/key_stats/msft.yml
300
330
  - spec/fixtures/iex/largest-trades/aapl.yml
@@ -309,15 +339,23 @@ test_files:
309
339
  - spec/fixtures/iex/price/msft.yml
310
340
  - spec/fixtures/iex/quote/invalid.yml
311
341
  - spec/fixtures/iex/quote/msft.yml
342
+ - spec/fixtures/iex/ref-data/isin.yml
343
+ - spec/fixtures/iex/ref-data/isin_mapped.yml
344
+ - spec/fixtures/iex/ref-data/symbols.yml
345
+ - spec/fixtures/iex/ref-data/wrong_isin_mapped.yml
312
346
  - spec/fixtures/iex/sectors/invalid.yml
313
347
  - spec/fixtures/iex/sectors/sectors-performance.yml
348
+ - spec/fixtures/iex/stock_market/list_mostactive.yml
314
349
  - spec/iex/client_spec.rb
315
- - spec/iex/config_spec.rb
350
+ - spec/iex/config/client_spec.rb
351
+ - spec/iex/config/logger_spec.rb
352
+ - spec/iex/endpoints/advanced_stats_spec.rb
316
353
  - spec/iex/endpoints/chart_spec.rb
317
354
  - spec/iex/endpoints/company_spec.rb
318
355
  - spec/iex/endpoints/crypto_spec.rb
319
356
  - spec/iex/endpoints/dividends_spec.rb
320
357
  - spec/iex/endpoints/earnings_spec.rb
358
+ - spec/iex/endpoints/income_spec.rb
321
359
  - spec/iex/endpoints/key_stats_spec.rb
322
360
  - spec/iex/endpoints/largest_trades_spec.rb
323
361
  - spec/iex/endpoints/logo_spec.rb
@@ -325,7 +363,9 @@ test_files:
325
363
  - spec/iex/endpoints/ohlc_spec.rb
326
364
  - spec/iex/endpoints/price_spec.rb
327
365
  - spec/iex/endpoints/quote_spec.rb
366
+ - spec/iex/endpoints/ref_data_spec.rb
328
367
  - spec/iex/endpoints/sectors_spec.rb
368
+ - spec/iex/endpoints/stock_market_spec.rb
329
369
  - spec/iex/resources/resource_spec.rb
330
370
  - spec/iex/version_spec.rb
331
371
  - spec/spec_helper.rb