yahoo_finance_client 0.2.0 → 0.2.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f3fe95366fd98eec61742aa8884d677461fce3101d9d06705db3138c9eb45209
4
- data.tar.gz: e06b233e9d188b66ccb2419b3fcfa915555d79956730cc8b4eadf0cd1648f6e4
3
+ metadata.gz: 3e431bef79d59f2f41862b78bae97b9b0935d764c2772dd34d64185c55a1bfac
4
+ data.tar.gz: 244e81d428f6db8662943c978fca0bc8849657cb6272f5cf9d6e86703bc9586d
5
5
  SHA512:
6
- metadata.gz: b34f6a47bc4288d7f90330ad0353b476ff948d3d00a237cd3a4ceb35cb44012b9b5b75dedef6b6f276632741d734f3d51dcbf0541bb6a3b34efd6d51cb01f3e0
7
- data.tar.gz: acc8e07af8fbddd510181e8b78d761a6635022ef347a40909113abda79df62d40b34d0c051f45b73aea52c48c379c91e76291458a91d5d462f539daa7c941d4c
6
+ metadata.gz: e5515556391d51378e7a483efa7dbc01bbfe899c4040cf25c2b0f51ec15c2c506e61cdb91add0297e2746681dd073fb29e199c9c0c6ef54bc1083326e62940e8
7
+ data.tar.gz: 1b42eaaeaa692b2449710cbd291bf432b8ba4e8b82f1754319da81a441bb18bb1a2cd4149f5a5e4e3ac0774b8e7af23d800b5b114e79a7b5e355fa927527e286
@@ -64,8 +64,34 @@ module YahooFinanceClient
64
64
  end
65
65
 
66
66
  def format_quote(quote)
67
- { symbol: quote["symbol"], price: quote["regularMarketPrice"], change: quote["regularMarketChange"],
68
- percent_change: quote["regularMarketChangePercent"], volume: quote["regularMarketVolume"] }
67
+ price = quote["regularMarketPrice"]
68
+ dividend = quote["dividendRate"]
69
+ eps = quote["epsTrailingTwelveMonths"]
70
+
71
+ build_quote_hash(quote, price, dividend, eps)
72
+ end
73
+
74
+ def build_quote_hash(quote, price, dividend, eps)
75
+ {
76
+ symbol: quote["symbol"], name: quote["shortName"], price: price,
77
+ change: quote["regularMarketChange"], percent_change: quote["regularMarketChangePercent"],
78
+ volume: quote["regularMarketVolume"], pe_ratio: quote["trailingPE"], eps: eps,
79
+ dividend: dividend, dividend_yield: calculate_yield(dividend, price),
80
+ payout_ratio: calculate_payout(dividend, eps),
81
+ ma50: quote["fiftyDayAverage"], ma200: quote["twoHundredDayAverage"]
82
+ }
83
+ end
84
+
85
+ def calculate_yield(dividend, price)
86
+ return nil unless dividend && price&.positive?
87
+
88
+ (dividend / price * 100).round(2)
89
+ end
90
+
91
+ def calculate_payout(dividend, eps)
92
+ return nil unless dividend && eps&.positive?
93
+
94
+ (dividend / eps * 100).round(2)
69
95
  end
70
96
 
71
97
  def fetch_from_cache(key)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module YahooFinanceClient
4
- VERSION = "0.2.0"
4
+ VERSION = "0.2.1"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yahoo_finance_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Francesc Leveque