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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b8a4a5e3e694cd4af9310002178f918ed6b6802711860e29780e2bde8f494805
4
- data.tar.gz: 415aa05993daba620a4aea9a32aa52d73a8e0b3bdc39fd96296fb655703b2921
3
+ metadata.gz: 36c3afc87c696f3bb31e32bc65e987f794ee40ad2e7545aa7fab2fce99b267cd
4
+ data.tar.gz: 58c9280ac2e9f36ecb5b2c00a7d8d5cccda7b54f7935f4391abe1767f90a0225
5
5
  SHA512:
6
- metadata.gz: 43680c128f3354b4f64f485c51ddfed0f94c9a3f25b6be1c16f93a7a3a97534a0e1fa990a85394d92c1aca220410ceea1a9e9f0d061abce8c7e697ef91a022e3
7
- data.tar.gz: 3f497b0bdcc8b295b1f370d3185e6768fea91cbafdde5acdf637d8a16b918d0e5fc229eb5bb702eca8d5848388b5803e797cf8c21feb156c895f3c8e1d5d2dd8
6
+ metadata.gz: b4ac7d1a3a9d952e9dba3e75af5624720b31a2aa4d8c33ee432755cebfffda5d5e121b36fcaf572bb2e59123c0715864c259afe902fc19ed88ad05a6c2419302
7
+ data.tar.gz: 18fe9215733f10ab5f80c4a5e6419fcece10a7772a77a42f0c6a1ea64772fe7c279b181f3bc56af948af4e2ad5aa56c582dc31460bd0646104bbba2d1af5bbb9
@@ -1,3 +1,11 @@
1
+ ### 1.4.0 (2020/11/19)
2
+ * [#90](https://github.com/dblock/iex-ruby-client/pull/90): Added documentation for advanced stats and removed `avg_30_Volume` from advanced stats since it is found in key stats - [@tylerhaugen-stanley](https://github.com/tylerhaugen-stanley).
3
+ * [#91](https://github.com/dblock/iex-ruby-client/pull/91): Added support for Balance Sheet API endpoint - [@tylerhaugen-stanley](https://github.com/tylerhaugen-stanley).
4
+ * [#92](https://github.com/dblock/iex-ruby-client/pull/92): Added support for Cash Flow Statements API endpoint - [@tylerhaugen-stanley](https://github.com/tylerhaugen-stanley).
5
+ * [#93](https://github.com/dblock/iex-ruby-client/pull/93): Added `fiscal_date` and `currency` to income statements - [@tylerhaugen-stanley](https://github.com/tylerhaugen-stanley).
6
+ * [#94](https://github.com/dblock/iex-ruby-client/pull/94): Added `historical_prices` API endpoint - [@tylerhaugen-stanley](https://github.com/tylerhaugen-stanley).
7
+ * [#95](https://github.com/dblock/iex-ruby-client/pull/95): Added all KeyStat properties to AdvancedStats since they are already returned in the API call - [@tylerhaugen-stanley](https://github.com/tylerhaugen-stanley).
8
+
1
9
  ### 1.3.0 (2020/10/31)
2
10
 
3
11
  * [#82](https://github.com/dblock/iex-ruby-client/pull/82): Added `config.referer` to set HTTP `Referer` header. This enables IEX's "Manage domains" domain locking for tokens - [@agrberg](https://github.com/agrberg).
data/README.md CHANGED
@@ -15,14 +15,18 @@ A Ruby client for the [The IEX Cloud API](https://iexcloud.io/docs/api/).
15
15
  - [Get a Quote](#get-a-quote)
16
16
  - [Get a OHLC (Open, High, Low, Close) price](#get-a-ohlc-open-high-low-close-price)
17
17
  - [Get a Market OHLC (Open, High, Low, Close) prices](#get-a-market-ohlc-open-high-low-close-prices)
18
+ - [Get Historical Prices](#get-historical-prices)
18
19
  - [Get Company Information](#get-company-information)
19
20
  - [Get a Company Logo](#get-a-company-logo)
20
21
  - [Get Recent News](#get-recent-news)
21
22
  - [Get Chart](#get-chart)
22
23
  - [Get Key Stats](#get-key-stats)
24
+ - [Get Advanced Stats](#get-advanced-stats)
23
25
  - [Get Dividends](#get-dividends)
24
26
  - [Get Earnings](#get-earnings)
25
27
  - [Get Income Statement](#get-income-statement)
28
+ - [Get Balance Sheet](#get-balance-sheet)
29
+ - [Get Cash Flow Statement](#get-cash-flow-statement)
26
30
  - [Get Sector Performance](#get-sector-performance)
27
31
  - [Get Largest Trades](#get-largest-trades)
28
32
  - [Get a Quote for Crypto Currencies](#get-a-quote-for-crypto-currencies)
@@ -130,6 +134,57 @@ market['SPY'].high #
130
134
  market['SPY'].low #
131
135
  ```
132
136
 
137
+ ### Get Historical Prices
138
+
139
+ Fetches a list of historical prices.
140
+
141
+ There are currently a few limitations of this endpoint compared to the official IEX one.
142
+
143
+ Options for `range` include:
144
+ `max, ytd, 5y, 2y, 1y, 6m, 3m, 1m, 5d, date`
145
+
146
+ NOTE: If you use the `date` value for the `range` parameter:
147
+ * The options _must_ include a date entry, `{date: ...}`
148
+ * The date value _must_ be either a Date object, or a string formatted as `YYYYMMDD`. Anything else will result in an `IEX::Errors::ClientError`.
149
+ * The options _must_ include `chartByDay: 'true'` or an `ArgumentError` will be raised.
150
+ * See below for examples.
151
+
152
+ `Query params` supported include:
153
+ `chartByDay`
154
+
155
+ This is a complicated endpoint as there is a lot of granularity over the time period of data returned. See below for a variety of ways to request data, NOTE: this is _NOT_ as exhaustive list.
156
+ ```ruby
157
+ historial_prices = client.historical_prices('MSFT') # One month of data
158
+ historial_prices = client.historical_prices('MSFT', {range: 'max'}) # All data up to 15 years
159
+ historial_prices = client.historical_prices('MSFT', {range: 'ytd'}) # Year to date data
160
+ historial_prices = client.historical_prices('MSFT', {range: '5y'}) # 5 years of data
161
+ historial_prices = client.historical_prices('MSFT', {range: '6m'}) # 6 months of data
162
+ historial_prices = client.historical_prices('MSFT', {range: '5d'}) # 5 days of data
163
+ historial_prices = client.historical_prices('MSFT', {range: 'date', date: '20200930', chartByDay: 'true'}) # One day of data
164
+ historial_prices = client.historical_prices('MSFT', {range: 'date', date: Date.parse('2020-09-30)', chartByDay: 'true'}) # One day of data
165
+ ...
166
+ ```
167
+
168
+ Once you have the data over the preferred time period, you can access the following fields
169
+ ```ruby
170
+ historial_prices = client.historical_prices('MSFT') # One month of data
171
+
172
+ historial_price = historial_prices.first
173
+ historical_price.date # 2020-10-07
174
+ historical_price.open #207.06
175
+ historical_price.open_dollar # '$207.06'
176
+ historical_price.close # 209.83
177
+ historical_price.close_dollar # '$209.83'
178
+ historical_price.high # 210.11
179
+ historical_price.high_dollar # '$210.11'
180
+ historical_price.low # 206.72
181
+ historical_price.low_dollar # '$206.72'
182
+ historical_price.volume # 25681054
183
+ ...
184
+ ```
185
+
186
+ There are a lot of options here so I would recommend viewing the official IEX documentation [#historical-prices](https://iexcloud.io/docs/api/#historical-prices) or [historical_prices.rb](lib/iex/resources/historical_prices.rb) for returned fields.
187
+
133
188
  ### Get Company Information
134
189
 
135
190
  Fetches company information for a symbol.
@@ -265,6 +320,50 @@ key_stats.beta # 1.4135449089973444
265
320
 
266
321
  See [#key-stats](https://iexcloud.io/docs/api/#key-stats) for detailed documentation or [key_stats.rb](lib/iex/resources/key_stats.rb) for returned fields.
267
322
 
323
+ ### Get Advanced Stats
324
+
325
+ Fetches company's advanced stats for a symbol, this will include all key stats as well.
326
+
327
+ ```ruby
328
+ advanced_stats = client.advanced_stats('MSFT')
329
+
330
+ advanced_stats.total_cash # 66301000000
331
+ advanced_stats.total_cash_dollars # "$66,301,000,000"
332
+ advanced_stats.current_debt # 20748000000
333
+ advanced_stats.current_debt_dollars # "$2,074,8000,000"
334
+ advanced_stats.revenue # 265809000000
335
+ advanced_stats.revenue_dollars # "$265,809,000,000"
336
+ advanced_stats.gross_profit # 101983000000
337
+ advanced_stats.gross_profit_dollar # "$101,983,000,000"
338
+ advanced_stats.total_revenue # 265809000000
339
+ advanced_stats.total_revenue_dollar # "$265,809,000,000"
340
+ advanced_stats.ebitda # 80342000000
341
+ advanced_stats.ebitda_dollar # "$80,342,000,000"
342
+ advanced_stats.revenue_per_share # 0.02
343
+ advanced_stats.revenue_per_share_dollar # "$0.02"
344
+ advanced_stats.revenue_per_employee # 2013704.55
345
+ advanced_stats.revenue_per_employee_dollar # "$2,013,704.55"
346
+ advanced_stats.debt_to_equity # 1.07
347
+ advanced_stats.profit_margin # 22.396157
348
+ advanced_stats.enterprise_value # 1022460690000
349
+ advanced_stats.enterprise_value_dollar # "$1,022,460,690,000"
350
+ advanced_stats.enterprise_value_to_revenue # 3.85
351
+ advanced_stats.price_to_sales # 3.49
352
+ advanced_stats.price_to_sales_dollar # "$3.49"
353
+ advanced_stats.price_to_book # 8.805916432564608
354
+ advanced_stats.forward_pe_ratio # 18.14
355
+ advanced_stats.pe_high # 22.61
356
+ advanced_stats.pe_low # 11.98
357
+ advanced_stats.peg_ratio # 2.19
358
+ advanced_stats.week_52_high_date # "2019-11-19"
359
+ advanced_stats.week_52_low_date # "2019-01-03
360
+ advanced_stats.beta # 1.4661365583766115
361
+ advanced_stats.put_call_ratio # 0.6780362005229779
362
+ ...
363
+ ```
364
+
365
+ See [#advanced-stats](https://iexcloud.io/docs/api/#advanced-stats) for detailed documentation or [advanced_stats.rb](lib/iex/resources/advanced_stats.rb) for returned fields.
366
+
268
367
  ### Get Dividends
269
368
 
270
369
  Fetches dividends for a symbol.
@@ -304,12 +403,16 @@ See [#earnings](https://iexcloud.io/docs/api/#earnings) for detailed documentati
304
403
 
305
404
  ### Get Income Statement
306
405
 
307
- Fetches income statement for a symbol.
406
+ Fetches income statements for a symbol.
308
407
 
309
408
  ```ruby
310
- income = client.income('MSFT')
409
+ income_statements = client.income('MSFT')
311
410
 
411
+ # Multiple income statements are returned with 1 API call.
412
+ income = income_statements.first
312
413
  income.report_date # '2019-03-31'
414
+ income.fiscal_date # '2019-03-31'
415
+ income.currency # 'USD'
313
416
  income.total_revenue # 30_505_000_000
314
417
  income.total_revenue_dollar # '$30,505,000,000'
315
418
  income.cost_of_revenue # 10_170_000_000
@@ -321,6 +424,48 @@ income.gross_profit_dollar # '$20,335,000,000'
321
424
 
322
425
  See [#income-statement](https://iexcloud.io/docs/api/#income-statement) for detailed documentation or [income.rb](lib/iex/resources/income.rb) for returned fields.
323
426
 
427
+ ### Get Balance Sheet
428
+
429
+ Fetches balance sheets for a symbol.
430
+
431
+ ```ruby
432
+ balance_sheets = client.balance_sheet('MSFT')
433
+
434
+ # Multiple balance sheets are returned with 1 API call.
435
+ balance_sheet = balance_sheets.first
436
+ balance_sheet.report_date # '2017-03-31'
437
+ balance_sheet.fiscal_date # '2017-03-31'
438
+ balance_sheet.currency # 'USD'
439
+ balance_sheet.current_cash # 25_913_000_000
440
+ balance_sheet.current_cash_dollar # '$25,913,000,000'
441
+ balance_sheet.short_term_investments # 40_388_000_000
442
+ balance_sheet.short_term_investments_dollar # '$40,388,000,000'
443
+ ...
444
+ ```
445
+
446
+ See [#balance-sheet](https://iexcloud.io/docs/api/#balance-sheet) for detailed documentation or [balance_sheet.rb](lib/iex/resources/balance_sheet.rb) for returned fields.
447
+
448
+ ### Get Cash Flow Statement
449
+
450
+ Fetches cash flow statements for a symbol.
451
+
452
+ ```ruby
453
+ cash_flow_statements = client.cash_flow('MSFT')
454
+
455
+ # Multiple cash flow statements are returned with 1 API call.
456
+ cash_flow = cash_flow_statements.first
457
+ cash_flow.report_date # '2018-09-30'
458
+ cash_flow.fiscal_date # '2018-09-30'
459
+ cash_flow.currency # 'USD'
460
+ cash_flow.net_income # 14_125_000_000
461
+ cash_flow.net_income_dollar # '$14,125,000,000'
462
+ cash_flow.depreciation # 2_754_000_000
463
+ cash_flow.depreciation_dollar # '$2,754,000,000'
464
+ ...
465
+ ```
466
+
467
+ See [#cash-flow](https://iexcloud.io/docs/api/#cash-flow) for detailed documentation or [cash_flow.rb](lib/iex/resources/cash_flow.rb) for returned fields.
468
+
324
469
  ### Get Sector Performance
325
470
 
326
471
  Fetches latest sector's performance.
@@ -16,10 +16,10 @@ Check that the last build succeeded in [Travis CI](https://travis-ci.org/dblock/
16
16
  Change "Next" in [CHANGELOG.md](CHANGELOG.md) to the current date.
17
17
 
18
18
  ```
19
- ### 0.2.2 (7/10/2015)
19
+ ### 0.2.2 (2015/10/07)
20
20
  ```
21
21
 
22
- Remove the line with "Your contribution here.", since there will be no more contributions to this release.
22
+ Remove the line with "* Your contribution here.", since there will be no more contributions to this release.
23
23
 
24
24
  Commit your changes.
25
25
 
@@ -1,8 +1,11 @@
1
1
  require_relative 'endpoints/advanced_stats'
2
+ require_relative 'endpoints/balance_sheet'
3
+ require_relative 'endpoints/cash_flow'
2
4
  require_relative 'endpoints/chart'
3
5
  require_relative 'endpoints/company'
4
6
  require_relative 'endpoints/dividends'
5
7
  require_relative 'endpoints/earnings'
8
+ require_relative 'endpoints/historial_prices'
6
9
  require_relative 'endpoints/income'
7
10
  require_relative 'endpoints/largest_trades'
8
11
  require_relative 'endpoints/logo'
@@ -5,11 +5,14 @@ module IEX
5
5
 
6
6
  class Client
7
7
  include Endpoints::AdvancedStats
8
+ include Endpoints::BalanceSheet
9
+ include Endpoints::CashFlow
8
10
  include Endpoints::Chart
9
11
  include Endpoints::Company
10
12
  include Endpoints::Crypto
11
13
  include Endpoints::Dividends
12
14
  include Endpoints::Earnings
15
+ include Endpoints::HistoricalPrices
13
16
  include Endpoints::Income
14
17
  include Endpoints::KeyStats
15
18
  include Endpoints::LargestTrades
@@ -0,0 +1,13 @@
1
+ module IEX
2
+ module Endpoints
3
+ module BalanceSheet
4
+ def balance_sheet(symbol, options = {})
5
+ (get("stock/#{symbol}/balance-sheet", { token: publishable_token }.merge(options))['balancesheet'] || []).map do |data|
6
+ IEX::Resources::BalanceSheet.new(data)
7
+ end
8
+ rescue Faraday::ResourceNotFound => e
9
+ raise IEX::Errors::SymbolNotFoundError.new(symbol, e.response[:body])
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ module IEX
2
+ module Endpoints
3
+ module CashFlow
4
+ def cash_flow(symbol, options = {})
5
+ (get("stock/#{symbol}/cash-flow", { token: publishable_token }.merge(options))['cashflow'] || []).map do |data|
6
+ IEX::Resources::CashFlow.new(data)
7
+ end
8
+ rescue Faraday::ResourceNotFound => e
9
+ raise IEX::Errors::SymbolNotFoundError.new(symbol, e.response[:body])
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,30 @@
1
+ module IEX
2
+ module Endpoints
3
+ module HistoricalPrices
4
+ def historical_prices(symbol, options = {})
5
+ if options[:range] == 'date'
6
+ raise ArgumentError unless options[:date].present?
7
+ raise ArgumentError unless options[:chartByDay].present?
8
+ end
9
+
10
+ options = options.dup
11
+ # Historical prices IEX endpoint expects dates passed in a specific format - YYYYMMDD
12
+ options[:date] = options[:date].strftime('%Y%m%d') if options[:date].is_a?(Date)
13
+
14
+ path = "stock/#{symbol}/chart"
15
+ path += "/#{options[:range]}" if options.key?(:range)
16
+ path += "/#{options[:date]}" if options[:range] == 'date'
17
+
18
+ # We only want options to include query params at this point, remove :range and :date
19
+ options.delete(:range)
20
+ options.delete(:date)
21
+
22
+ (get(path, { token: publishable_token }.merge(options)) || []).map do |data|
23
+ IEX::Resources::HistorialPrices.new(data)
24
+ end
25
+ rescue Faraday::ResourceNotFound => e
26
+ raise IEX::Errors::SymbolNotFoundError.new(symbol, e.response[:body])
27
+ end
28
+ end
29
+ end
30
+ end
@@ -1,10 +1,13 @@
1
1
  require_relative 'resources/resource'
2
2
 
3
3
  require_relative 'resources/advanced_stats'
4
+ require_relative 'resources/balance_sheet'
5
+ require_relative 'resources/cash_flow'
4
6
  require_relative 'resources/chart'
5
7
  require_relative 'resources/company'
6
8
  require_relative 'resources/dividends'
7
9
  require_relative 'resources/earnings'
10
+ require_relative 'resources/historical_prices'
8
11
  require_relative 'resources/income'
9
12
  require_relative 'resources/key_stats'
10
13
  require_relative 'resources/largest_trades'
@@ -28,11 +28,53 @@ module IEX
28
28
  property 'forward_pe_ratio', from: 'forwardPERatio'
29
29
  property 'pe_high', from: 'peHigh'
30
30
  property 'pe_low', from: 'peLow'
31
- property 'avg_30_volume', from: 'avg30Volume'
32
31
  property 'peg_ratio', from: 'pegRatio'
33
32
  property 'week_52_high_date', from: 'week52highDate'
34
33
  property 'week_52_low_date', from: 'week52lowDate'
35
34
  property 'beta'
35
+ property 'put_call_ratio', from: 'putCallRatio'
36
+ property 'company_name', from: 'companyName'
37
+ property 'market_cap', from: 'marketcap'
38
+ property 'market_cap_dollar', from: 'marketcap', with: ->(v) { Resource.to_dollar(amount: v) }
39
+ property 'week_52_high', from: 'week52high'
40
+ property 'week_52_high_dollar', from: 'week52high', with: ->(v) { Resource.to_dollar(amount: v, ignore_cents: false) }
41
+ property 'week_52_low', from: 'week52low'
42
+ property 'week_52_low_dollar', from: 'week52low', with: ->(v) { Resource.to_dollar(amount: v, ignore_cents: false) }
43
+ property 'week_52_change', from: 'week52change'
44
+ property 'week_52_change_dollar', from: 'week52change', with: ->(v) { Resource.to_dollar(amount: v, ignore_cents: false) }
45
+ property 'dividend_yield', from: 'dividendYield'
46
+ property 'ex_dividend_date', from: 'exDividendDate'
47
+ property 'shares_outstanding', from: 'sharesOutstanding'
48
+ property 'float'
49
+ property 'ttm_eps', from: 'ttmEPS'
50
+ property 'day_200_moving_avg', from: 'day200MovingAvg'
51
+ property 'day_50_moving_avg', from: 'day50MovingAvg'
52
+ property 'year_5_change_percent', from: 'year5ChangePercent'
53
+ property 'year_5_change_percent_s', from: 'year5ChangePercent', with: ->(v) { Resource.float_to_percentage(v) }
54
+ property 'year_2_change_percent', from: 'year2ChangePercent'
55
+ property 'year_2_change_percent_s', from: 'year2ChangePercent', with: ->(v) { Resource.float_to_percentage(v) }
56
+ property 'year_1_change_percent', from: 'year1ChangePercent'
57
+ property 'year_1_change_percent_s', from: 'year1ChangePercent', with: ->(v) { Resource.float_to_percentage(v) }
58
+ property 'ytd_change_percent', from: 'ytdChangePercent'
59
+ property 'ytd_change_percent_s', from: 'ytdChangePercent', with: ->(v) { Resource.float_to_percentage(v) }
60
+ property 'month_6_change_percent', from: 'month6ChangePercent'
61
+ property 'month_6_change_percent_s', from: 'month6ChangePercent', with: ->(v) { Resource.float_to_percentage(v) }
62
+ property 'month_3_change_percent', from: 'month3ChangePercent'
63
+ property 'month_3_change_percent_s', from: 'month3ChangePercent', with: ->(v) { Resource.float_to_percentage(v) }
64
+ property 'month_1_change_percent', from: 'month1ChangePercent'
65
+ property 'month_1_change_percent_s', from: 'month1ChangePercent', with: ->(v) { Resource.float_to_percentage(v) }
66
+ property 'day_5_change_percent', from: 'day5ChangePercent'
67
+ property 'day_5_change_percent_s', from: 'day5ChangePercent', with: ->(v) { Resource.float_to_percentage(v) }
68
+ property 'employees'
69
+ property 'avg_10_volume', from: 'avg10Volume'
70
+ property 'avg_30_volume', from: 'avg30Volume'
71
+ property 'ttm_dividend_rate', from: 'ttmDividendRate'
72
+ property 'max_change_percent', from: 'maxChangePercent'
73
+ property 'day_30_change_percent', from: 'day30ChangePercent'
74
+ property 'day_30_change_percent_s', from: 'day30ChangePercent', with: ->(v) { Resource.float_to_percentage(v) }
75
+ property 'next_dividend_date', from: 'nextDividendDate'
76
+ property 'next_earnings_date', from: 'nextEarningsDate'
77
+ property 'pe_ratio', from: 'peRatio'
36
78
 
37
79
  def initialize(data = {})
38
80
  super
@@ -0,0 +1,60 @@
1
+ module IEX
2
+ module Resources
3
+ class BalanceSheet < Resource
4
+ property 'report_date', from: 'reportDate'
5
+ property 'fiscal_date', from: 'fiscalDate'
6
+ property 'currency'
7
+ property 'current_cash', from: 'currentCash'
8
+ property 'current_cash_dollar', from: 'currentCash', with: ->(v) { to_dollar(amount: v) }
9
+ property 'short_term_investments', from: 'shortTermInvestments'
10
+ property 'short_term_investments_dollar', from: 'shortTermInvestments', with: ->(v) { to_dollar(amount: v) }
11
+ property 'receivables'
12
+ property 'receivables_dollar', from: 'receivables', with: ->(v) { to_dollar(amount: v) }
13
+ property 'inventory'
14
+ property 'inventory_dollar', from: 'inventory', with: ->(v) { to_dollar(amount: v) }
15
+ property 'other_current_assets', from: 'otherCurrentAssets'
16
+ property 'other_current_assets_dollar', from: 'otherCurrentAssets', with: ->(v) { to_dollar(amount: v) }
17
+ property 'current_assets', from: 'currentAssets'
18
+ property 'current_assets_dollar', from: 'currentAssets', with: ->(v) { to_dollar(amount: v) }
19
+ property 'long_term_investments', from: 'longTermInvestments'
20
+ property 'long_term_investments_dollar', from: 'longTermInvestments', with: ->(v) { to_dollar(amount: v) }
21
+ property 'property_plant_equipment', from: 'propertyPlantEquipment'
22
+ property 'property_plant_equipment_dollar', from: 'propertyPlantEquipment', with: ->(v) { to_dollar(amount: v) }
23
+ property 'goodwill'
24
+ property 'goodwill_dollar', from: 'goodwill', with: ->(v) { to_dollar(amount: v) }
25
+ property 'intangible_assets', from: 'intangibleAssets'
26
+ property 'intangible_assets_dollar', from: 'intangibleAssets', with: ->(v) { to_dollar(amount: v) }
27
+ property 'other_assets', from: 'otherAssets'
28
+ property 'other_assets_dollar', from: 'otherAssets', with: ->(v) { to_dollar(amount: v) }
29
+ property 'total_assets', from: 'totalAssets'
30
+ property 'total_assets_dollar', from: 'totalAssets', with: ->(v) { to_dollar(amount: v) }
31
+ property 'accounts_payable', from: 'accountsPayable'
32
+ property 'accounts_payable_dollar', from: 'accountsPayable', with: ->(v) { to_dollar(amount: v) }
33
+ property 'current_long_term_debt', from: 'currentLongTermDebt'
34
+ property 'current_long_term_debt_dollar', from: 'currentLongTermDebt', with: ->(v) { to_dollar(amount: v) }
35
+ property 'other_current_liabilities', from: 'otherCurrentLiabilities'
36
+ property 'other_current_liabilities_dollar', from: 'otherCurrentLiabilities', with: ->(v) { to_dollar(amount: v) }
37
+ property 'total_current_liabilities', from: 'totalCurrentLiabilities'
38
+ property 'total_current_liabilities_dollar', from: 'totalCurrentLiabilities', with: ->(v) { to_dollar(amount: v) }
39
+ property 'long_term_debt', from: 'longTermDebt'
40
+ property 'long_term_debt_dollar', from: 'longTermDebt', with: ->(v) { to_dollar(amount: v) }
41
+ property 'other_liabilities', from: 'otherLiabilities'
42
+ property 'other_liabilities_dollar', from: 'otherLiabilities', with: ->(v) { to_dollar(amount: v) }
43
+ property 'minority_interest', from: 'minorityInterest'
44
+ property 'minority_interest_dollar', from: 'minorityInterest', with: ->(v) { to_dollar(amount: v) }
45
+ property 'total_liabilities', from: 'totalLiabilities'
46
+ property 'total_liabilities_dollar', from: 'totalLiabilities', with: ->(v) { to_dollar(amount: v) }
47
+ property 'common_stock', from: 'commonStock'
48
+ property 'retained_earnings', from: 'retainedEarnings'
49
+ property 'retained_earnings_dollar', from: 'retainedEarnings', with: ->(v) { to_dollar(amount: v) }
50
+ property 'treasury_stock', from: 'treasuryStock'
51
+ property 'treasury_stock_dollar', from: 'treasuryStock', with: ->(v) { to_dollar(amount: v) }
52
+ property 'capital_surplus', from: 'capitalSurplus'
53
+ property 'capital_surplus_dollar', from: 'capitalSurplus', with: ->(v) { to_dollar(amount: v) }
54
+ property 'shareholder_equity', from: 'shareholderEquity'
55
+ property 'shareholder_equity_dollar', from: 'shareholderEquity', with: ->(v) { to_dollar(amount: v) }
56
+ property 'net_tangible_assets', from: 'netTangibleAssets'
57
+ property 'net_tangible_assets_dollar', from: 'netTangibleAssets', with: ->(v) { to_dollar(amount: v) }
58
+ end
59
+ end
60
+ end