iex-ruby-client 1.3.0 → 1.4.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 +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
|