iex-ruby-client 1.3.0 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +147 -2
- data/RELEASING.md +2 -2
- data/lib/iex/api.rb +3 -0
- data/lib/iex/api/client.rb +3 -0
- data/lib/iex/endpoints/balance_sheet.rb +13 -0
- data/lib/iex/endpoints/cash_flow.rb +13 -0
- data/lib/iex/endpoints/historial_prices.rb +30 -0
- data/lib/iex/resources.rb +3 -0
- data/lib/iex/resources/advanced_stats.rb +43 -1
- data/lib/iex/resources/balance_sheet.rb +60 -0
- data/lib/iex/resources/cash_flow.rb +43 -0
- data/lib/iex/resources/historical_prices.rb +31 -0
- data/lib/iex/resources/income.rb +2 -0
- data/lib/iex/resources/resource.rb +12 -0
- data/lib/iex/version.rb +1 -1
- data/spec/fixtures/iex/balance_sheet/invalid.yml +50 -0
- data/spec/fixtures/iex/balance_sheet/msft.yml +56 -0
- data/spec/fixtures/iex/cash_flow/invalid.yml +50 -0
- data/spec/fixtures/iex/cash_flow/msft.yml +56 -0
- data/spec/fixtures/iex/historical_prices/abcd.yml +56 -0
- data/spec/fixtures/iex/historical_prices/invalid.yml +50 -0
- data/spec/fixtures/iex/historical_prices/invalid_date.yml +50 -0
- data/spec/fixtures/iex/historical_prices/invalid_range.yml +47 -0
- data/spec/fixtures/iex/historical_prices/msft.yml +79 -0
- data/spec/fixtures/iex/historical_prices/msft_5d.yml +61 -0
- data/spec/fixtures/iex/historical_prices/msft_date_and_chart_by_day.yml +57 -0
- data/spec/fixtures/iex/historical_prices/msft_specific_date_trimmed.yml +445 -0
- data/spec/fixtures/iex/income/msft.yml +54 -51
- data/spec/iex/endpoints/advanced_stats_spec.rb +56 -0
- data/spec/iex/endpoints/balance_sheet_spec.rb +80 -0
- data/spec/iex/endpoints/cash_flow_spec.rb +59 -0
- data/spec/iex/endpoints/historical_prices_spec.rb +206 -0
- data/spec/iex/endpoints/income_spec.rb +31 -29
- data/spec/iex/resources/resource_spec.rb +36 -0
- metadata +39 -3
@@ -14,36 +14,38 @@ describe IEX::Resources::Income do
|
|
14
14
|
|
15
15
|
it 'retrieves income statement' do
|
16
16
|
expect(subject.size).to eq 1
|
17
|
-
expect(income.report_date).to eq '
|
18
|
-
expect(income.
|
19
|
-
expect(income.
|
20
|
-
expect(income.
|
21
|
-
expect(income.
|
22
|
-
expect(income.
|
23
|
-
expect(income.
|
24
|
-
expect(income.
|
25
|
-
expect(income.
|
26
|
-
expect(income.
|
27
|
-
expect(income.
|
28
|
-
expect(income.
|
29
|
-
expect(income.
|
30
|
-
expect(income.
|
31
|
-
expect(income.
|
32
|
-
expect(income.
|
33
|
-
expect(income.
|
34
|
-
expect(income.
|
35
|
-
expect(income.
|
36
|
-
expect(income.
|
37
|
-
expect(income.
|
38
|
-
expect(income.
|
39
|
-
expect(income.
|
40
|
-
expect(income.
|
41
|
-
expect(income.
|
17
|
+
expect(income.report_date).to eq '2020-09-30'
|
18
|
+
expect(income.fiscal_date).to eq '2020-09-30'
|
19
|
+
expect(income.currency).to eq 'USD'
|
20
|
+
expect(income.total_revenue).to eq 37_154_000_000
|
21
|
+
expect(income.total_revenue_dollar).to eq '$37,154,000,000'
|
22
|
+
expect(income.cost_of_revenue).to eq 11_002_000_000
|
23
|
+
expect(income.cost_of_revenue_dollar).to eq '$11,002,000,000'
|
24
|
+
expect(income.gross_profit).to eq 26_152_000_000
|
25
|
+
expect(income.gross_profit_dollar).to eq '$26,152,000,000'
|
26
|
+
expect(income.research_and_development).to eq 4_926_000_000
|
27
|
+
expect(income.research_and_development_dollar).to eq '$4,926,000,000'
|
28
|
+
expect(income.selling_general_and_admin).to eq 5_350_000_000
|
29
|
+
expect(income.selling_general_and_admin_dollar).to eq '$5,350,000,000'
|
30
|
+
expect(income.operating_expense).to eq 21_278_000_000
|
31
|
+
expect(income.operating_expense_dollar).to eq '$21,278,000,000'
|
32
|
+
expect(income.operating_income).to eq 15_876_000_000
|
33
|
+
expect(income.operating_income_dollar).to eq '$15,876,000,000'
|
34
|
+
expect(income.other_income_expense_net).to eq 248_000_000
|
35
|
+
expect(income.other_income_expense_net_dollar).to eq '$248,000,000'
|
36
|
+
expect(income.ebit).to eq 15_876_000_000
|
37
|
+
expect(income.ebit_dollar).to eq '$15,876,000,000'
|
38
|
+
expect(income.interest_income).to eq 589_000_000
|
39
|
+
expect(income.interest_income_dollar).to eq '$589,000,000'
|
40
|
+
expect(income.pretax_income).to eq 16_124_000_000
|
41
|
+
expect(income.pretax_income_dollar).to eq '$16,124,000,000'
|
42
|
+
expect(income.income_tax).to eq 2_231_000_000
|
43
|
+
expect(income.income_tax_dollar).to eq '$2,231,000,000'
|
42
44
|
expect(income.minority_interest).to eq 0
|
43
|
-
expect(income.net_income).to eq
|
44
|
-
expect(income.net_income_dollar).to eq '$
|
45
|
-
expect(income.net_income_basic).to eq
|
46
|
-
expect(income.net_income_basic_dollar).to eq '$
|
45
|
+
expect(income.net_income).to eq 13_893_000_000
|
46
|
+
expect(income.net_income_dollar).to eq '$13,893,000,000'
|
47
|
+
expect(income.net_income_basic).to eq 13_893_000_000
|
48
|
+
expect(income.net_income_basic_dollar).to eq '$13,893,000,000'
|
47
49
|
end
|
48
50
|
end
|
49
51
|
end
|
@@ -37,6 +37,42 @@ describe IEX::Resources::Resource do
|
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
|
+
context 'percent to string (Positive)' do
|
41
|
+
subject do
|
42
|
+
IEX::Resources::Resource.percentage_to_string(3.3793)
|
43
|
+
end
|
44
|
+
it 'converts to percentage' do
|
45
|
+
expect(subject).to eq '+3.38%'
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
context 'percent to string (Negative)' do
|
50
|
+
subject do
|
51
|
+
IEX::Resources::Resource.percentage_to_string(-3.3793)
|
52
|
+
end
|
53
|
+
it 'converts to percentage' do
|
54
|
+
expect(subject).to eq '-3.38%'
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
context 'percent to string (nil)' do
|
59
|
+
subject do
|
60
|
+
IEX::Resources::Resource.percentage_to_string(nil)
|
61
|
+
end
|
62
|
+
it 'nil argument does not convert' do
|
63
|
+
expect(subject).to eq nil
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
context 'float number to percent (0)' do
|
68
|
+
subject do
|
69
|
+
IEX::Resources::Resource.percentage_to_string(0)
|
70
|
+
end
|
71
|
+
it 'Zero converts to +0.00%' do
|
72
|
+
expect(subject).to eq '+0.00%'
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
40
76
|
context 'Unformatted money amount to dollar' do
|
41
77
|
subject do
|
42
78
|
IEX::Resources::Resource.to_dollar(amount: 123_391)
|
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.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Doubrovkine
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-11-
|
11
|
+
date: 2020-11-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -169,11 +169,14 @@ files:
|
|
169
169
|
- lib/iex/cloud/request.rb
|
170
170
|
- lib/iex/cloud/response.rb
|
171
171
|
- lib/iex/endpoints/advanced_stats.rb
|
172
|
+
- lib/iex/endpoints/balance_sheet.rb
|
173
|
+
- lib/iex/endpoints/cash_flow.rb
|
172
174
|
- lib/iex/endpoints/chart.rb
|
173
175
|
- lib/iex/endpoints/company.rb
|
174
176
|
- lib/iex/endpoints/crypto.rb
|
175
177
|
- lib/iex/endpoints/dividends.rb
|
176
178
|
- lib/iex/endpoints/earnings.rb
|
179
|
+
- lib/iex/endpoints/historial_prices.rb
|
177
180
|
- lib/iex/endpoints/income.rb
|
178
181
|
- lib/iex/endpoints/key_stats.rb
|
179
182
|
- lib/iex/endpoints/largest_trades.rb
|
@@ -192,11 +195,14 @@ files:
|
|
192
195
|
- lib/iex/logger.rb
|
193
196
|
- lib/iex/resources.rb
|
194
197
|
- lib/iex/resources/advanced_stats.rb
|
198
|
+
- lib/iex/resources/balance_sheet.rb
|
199
|
+
- lib/iex/resources/cash_flow.rb
|
195
200
|
- lib/iex/resources/chart.rb
|
196
201
|
- lib/iex/resources/company.rb
|
197
202
|
- lib/iex/resources/crypto.rb
|
198
203
|
- lib/iex/resources/dividends.rb
|
199
204
|
- lib/iex/resources/earnings.rb
|
205
|
+
- lib/iex/resources/historical_prices.rb
|
200
206
|
- lib/iex/resources/income.rb
|
201
207
|
- lib/iex/resources/key_stats.rb
|
202
208
|
- lib/iex/resources/largest_trades.rb
|
@@ -211,6 +217,10 @@ files:
|
|
211
217
|
- lib/iex/version.rb
|
212
218
|
- spec/fixtures/iex/advanced_stats/invalid.yml
|
213
219
|
- spec/fixtures/iex/advanced_stats/msft.yml
|
220
|
+
- spec/fixtures/iex/balance_sheet/invalid.yml
|
221
|
+
- spec/fixtures/iex/balance_sheet/msft.yml
|
222
|
+
- spec/fixtures/iex/cash_flow/invalid.yml
|
223
|
+
- spec/fixtures/iex/cash_flow/msft.yml
|
214
224
|
- spec/fixtures/iex/chart/1d.yml
|
215
225
|
- spec/fixtures/iex/chart/20190306.yml
|
216
226
|
- spec/fixtures/iex/chart/bad_option.yml
|
@@ -229,6 +239,14 @@ files:
|
|
229
239
|
- spec/fixtures/iex/dividends/msft_invalid_range.yml
|
230
240
|
- spec/fixtures/iex/earnings/invalid.yml
|
231
241
|
- spec/fixtures/iex/earnings/msft.yml
|
242
|
+
- spec/fixtures/iex/historical_prices/abcd.yml
|
243
|
+
- spec/fixtures/iex/historical_prices/invalid.yml
|
244
|
+
- spec/fixtures/iex/historical_prices/invalid_date.yml
|
245
|
+
- spec/fixtures/iex/historical_prices/invalid_range.yml
|
246
|
+
- spec/fixtures/iex/historical_prices/msft.yml
|
247
|
+
- spec/fixtures/iex/historical_prices/msft_5d.yml
|
248
|
+
- spec/fixtures/iex/historical_prices/msft_date_and_chart_by_day.yml
|
249
|
+
- spec/fixtures/iex/historical_prices/msft_specific_date_trimmed.yml
|
232
250
|
- spec/fixtures/iex/income/invalid.yml
|
233
251
|
- spec/fixtures/iex/income/msft.yml
|
234
252
|
- spec/fixtures/iex/income/nsrgy.yml
|
@@ -257,11 +275,14 @@ files:
|
|
257
275
|
- spec/iex/config/client_spec.rb
|
258
276
|
- spec/iex/config/logger_spec.rb
|
259
277
|
- spec/iex/endpoints/advanced_stats_spec.rb
|
278
|
+
- spec/iex/endpoints/balance_sheet_spec.rb
|
279
|
+
- spec/iex/endpoints/cash_flow_spec.rb
|
260
280
|
- spec/iex/endpoints/chart_spec.rb
|
261
281
|
- spec/iex/endpoints/company_spec.rb
|
262
282
|
- spec/iex/endpoints/crypto_spec.rb
|
263
283
|
- spec/iex/endpoints/dividends_spec.rb
|
264
284
|
- spec/iex/endpoints/earnings_spec.rb
|
285
|
+
- spec/iex/endpoints/historical_prices_spec.rb
|
265
286
|
- spec/iex/endpoints/income_spec.rb
|
266
287
|
- spec/iex/endpoints/key_stats_spec.rb
|
267
288
|
- spec/iex/endpoints/largest_trades_spec.rb
|
@@ -297,13 +318,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
297
318
|
- !ruby/object:Gem::Version
|
298
319
|
version: 1.3.6
|
299
320
|
requirements: []
|
300
|
-
rubygems_version: 3.
|
321
|
+
rubygems_version: 3.0.3
|
301
322
|
signing_key:
|
302
323
|
specification_version: 4
|
303
324
|
summary: IEX Finance API Ruby client with support for retrieving stock quotes.
|
304
325
|
test_files:
|
305
326
|
- spec/fixtures/iex/advanced_stats/invalid.yml
|
306
327
|
- spec/fixtures/iex/advanced_stats/msft.yml
|
328
|
+
- spec/fixtures/iex/balance_sheet/invalid.yml
|
329
|
+
- spec/fixtures/iex/balance_sheet/msft.yml
|
330
|
+
- spec/fixtures/iex/cash_flow/invalid.yml
|
331
|
+
- spec/fixtures/iex/cash_flow/msft.yml
|
307
332
|
- spec/fixtures/iex/chart/1d.yml
|
308
333
|
- spec/fixtures/iex/chart/20190306.yml
|
309
334
|
- spec/fixtures/iex/chart/bad_option.yml
|
@@ -322,6 +347,14 @@ test_files:
|
|
322
347
|
- spec/fixtures/iex/dividends/msft_invalid_range.yml
|
323
348
|
- spec/fixtures/iex/earnings/invalid.yml
|
324
349
|
- spec/fixtures/iex/earnings/msft.yml
|
350
|
+
- spec/fixtures/iex/historical_prices/abcd.yml
|
351
|
+
- spec/fixtures/iex/historical_prices/invalid.yml
|
352
|
+
- spec/fixtures/iex/historical_prices/invalid_date.yml
|
353
|
+
- spec/fixtures/iex/historical_prices/invalid_range.yml
|
354
|
+
- spec/fixtures/iex/historical_prices/msft.yml
|
355
|
+
- spec/fixtures/iex/historical_prices/msft_5d.yml
|
356
|
+
- spec/fixtures/iex/historical_prices/msft_date_and_chart_by_day.yml
|
357
|
+
- spec/fixtures/iex/historical_prices/msft_specific_date_trimmed.yml
|
325
358
|
- spec/fixtures/iex/income/invalid.yml
|
326
359
|
- spec/fixtures/iex/income/msft.yml
|
327
360
|
- spec/fixtures/iex/income/nsrgy.yml
|
@@ -350,11 +383,14 @@ test_files:
|
|
350
383
|
- spec/iex/config/client_spec.rb
|
351
384
|
- spec/iex/config/logger_spec.rb
|
352
385
|
- spec/iex/endpoints/advanced_stats_spec.rb
|
386
|
+
- spec/iex/endpoints/balance_sheet_spec.rb
|
387
|
+
- spec/iex/endpoints/cash_flow_spec.rb
|
353
388
|
- spec/iex/endpoints/chart_spec.rb
|
354
389
|
- spec/iex/endpoints/company_spec.rb
|
355
390
|
- spec/iex/endpoints/crypto_spec.rb
|
356
391
|
- spec/iex/endpoints/dividends_spec.rb
|
357
392
|
- spec/iex/endpoints/earnings_spec.rb
|
393
|
+
- spec/iex/endpoints/historical_prices_spec.rb
|
358
394
|
- spec/iex/endpoints/income_spec.rb
|
359
395
|
- spec/iex/endpoints/key_stats_spec.rb
|
360
396
|
- spec/iex/endpoints/largest_trades_spec.rb
|