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.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +147 -2
  4. data/RELEASING.md +2 -2
  5. data/lib/iex/api.rb +3 -0
  6. data/lib/iex/api/client.rb +3 -0
  7. data/lib/iex/endpoints/balance_sheet.rb +13 -0
  8. data/lib/iex/endpoints/cash_flow.rb +13 -0
  9. data/lib/iex/endpoints/historial_prices.rb +30 -0
  10. data/lib/iex/resources.rb +3 -0
  11. data/lib/iex/resources/advanced_stats.rb +43 -1
  12. data/lib/iex/resources/balance_sheet.rb +60 -0
  13. data/lib/iex/resources/cash_flow.rb +43 -0
  14. data/lib/iex/resources/historical_prices.rb +31 -0
  15. data/lib/iex/resources/income.rb +2 -0
  16. data/lib/iex/resources/resource.rb +12 -0
  17. data/lib/iex/version.rb +1 -1
  18. data/spec/fixtures/iex/balance_sheet/invalid.yml +50 -0
  19. data/spec/fixtures/iex/balance_sheet/msft.yml +56 -0
  20. data/spec/fixtures/iex/cash_flow/invalid.yml +50 -0
  21. data/spec/fixtures/iex/cash_flow/msft.yml +56 -0
  22. data/spec/fixtures/iex/historical_prices/abcd.yml +56 -0
  23. data/spec/fixtures/iex/historical_prices/invalid.yml +50 -0
  24. data/spec/fixtures/iex/historical_prices/invalid_date.yml +50 -0
  25. data/spec/fixtures/iex/historical_prices/invalid_range.yml +47 -0
  26. data/spec/fixtures/iex/historical_prices/msft.yml +79 -0
  27. data/spec/fixtures/iex/historical_prices/msft_5d.yml +61 -0
  28. data/spec/fixtures/iex/historical_prices/msft_date_and_chart_by_day.yml +57 -0
  29. data/spec/fixtures/iex/historical_prices/msft_specific_date_trimmed.yml +445 -0
  30. data/spec/fixtures/iex/income/msft.yml +54 -51
  31. data/spec/iex/endpoints/advanced_stats_spec.rb +56 -0
  32. data/spec/iex/endpoints/balance_sheet_spec.rb +80 -0
  33. data/spec/iex/endpoints/cash_flow_spec.rb +59 -0
  34. data/spec/iex/endpoints/historical_prices_spec.rb +206 -0
  35. data/spec/iex/endpoints/income_spec.rb +31 -29
  36. data/spec/iex/resources/resource_spec.rb +36 -0
  37. 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 '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'
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 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'
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.3.0
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-02 00:00:00.000000000 Z
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.1.4
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