class Capwatch::Fund
Attributes
coins[RW]
config[RW]
positions[RW]
provider[RW]
Public Class Methods
new(provider:, config:)
click to toggle source
# File lib/capwatch/fund.rb, line 7 def initialize(provider:, config:) @provider = provider @config = config @positions = config.positions @coins = config.coins build end
Public Instance Methods
[](symbol)
click to toggle source
# File lib/capwatch/fund.rb, line 15 def [](symbol) coins.find { |coin| coin.symbol == symbol } end
assign_prices()
click to toggle source
# File lib/capwatch/fund.rb, line 55 def assign_prices coins.each do |coin| provider.update_coin(coin) end end
assign_quantity()
click to toggle source
# File lib/capwatch/fund.rb, line 49 def assign_quantity coins.each do |coin| coin.quantity = positions[coin.symbol] end end
build()
click to toggle source
# File lib/capwatch/fund.rb, line 43 def build assign_quantity assign_prices distribution end
console_table()
click to toggle source
# File lib/capwatch/fund.rb, line 81 def console_table Console.new(name = config.name, body = serialize, totals = fund_totals).draw_table end
distribution()
click to toggle source
# File lib/capwatch/fund.rb, line 61 def distribution coins.each do |coin| coin.distribution = coin.value_btc / value_btc end end
fund_totals()
click to toggle source
# File lib/capwatch/fund.rb, line 71 def fund_totals { value_usd: value_usd, value_btc: value_btc, value_eth: value_eth, percent_change_24h: percent_change_24h, percent_change_7d: percent_change_7d } end
percent_change_1h()
click to toggle source
# File lib/capwatch/fund.rb, line 31 def percent_change_1h coins.map { |coin| coin.percent_change_1h * coin.distribution }.sum end
percent_change_24h()
click to toggle source
# File lib/capwatch/fund.rb, line 35 def percent_change_24h coins.map { |coin| coin.percent_change_24h * coin.distribution }.sum end
percent_change_7d()
click to toggle source
# File lib/capwatch/fund.rb, line 39 def percent_change_7d coins.map { |coin| coin.percent_change_7d * coin.distribution }.sum end
serialize()
click to toggle source
# File lib/capwatch/fund.rb, line 67 def serialize coins.map { |coin| coin.serialize }.to_json end
value_btc()
click to toggle source
# File lib/capwatch/fund.rb, line 19 def value_btc coins.map(&:value_btc).sum end
value_eth()
click to toggle source
# File lib/capwatch/fund.rb, line 27 def value_eth coins.map(&:value_eth).sum end
value_usd()
click to toggle source
# File lib/capwatch/fund.rb, line 23 def value_usd coins.map(&:value_usd).sum end