Class: CoinPortfolio::Liquidation

Inherits:
Object
  • Object
show all
Defined in:
lib/coin_portfolio/liquidation.rb

Constant Summary collapse

Details =
ImmutableStruct.new(:portfolio_cost, :current_portfolio_value, :gains_percentage)

Instance Method Summary collapse

Constructor Details

#initialize(inventory_items) ⇒ Liquidation

Returns a new instance of Liquidation.



4
5
6
# File 'lib/coin_portfolio/liquidation.rb', line 4

def initialize(inventory_items)
  @inventory_items = inventory_items
end

Instance Method Details

#details(price) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/coin_portfolio/liquidation.rb', line 8

def details(price)
  current_portfolio_value = current_portfolio_value(price)
  gains_percentage = (current_portfolio_value - portfolio_cost).to_f / portfolio_cost
  currency = price.currency

  attributes = {
    portfolio_cost: Money.new(amount: portfolio_cost, currency: currency),
    current_portfolio_value: Money.new(amount: current_portfolio_value, currency: currency),
    gains_percentage: gains_percentage
  }
  Details.new(attributes)
end