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.
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