Class: Amount::Display

Inherits:
Object
  • Object
show all
Defined in:
lib/amount/display.rb

Overview

Formats amounts for UI output without changing their type.

Instance Method Summary collapse

Constructor Details

#initialize(amount) ⇒ Display

Returns a new instance of Display.

Parameters:



9
10
11
12
# File 'lib/amount/display.rb', line 9

def initialize(amount)
  @amount = amount
  @entry = amount.registry_entry
end

Instance Method Details

#formattedString

Returns:

  • (String)


15
16
17
# File 'lib/amount/display.rb', line 15

def formatted
  format("%.#{@entry.decimals}f", @amount.decimal)
end

#in_unit(unit) ⇒ BigDecimal

Parameters:

  • unit (Symbol)

Returns:

  • (BigDecimal)


33
34
35
36
# File 'lib/amount/display.rb', line 33

def in_unit(unit)
  unit_spec = fetch_display_unit(unit)
  @amount.decimal * Amount.coerce_decimal(unit_spec[:scale])
end

#to_sString

Returns:

  • (String)


27
28
29
# File 'lib/amount/display.rb', line 27

def to_s
  "#{@entry.symbol}|#{@amount.decimal.to_s("F")}"
end

#ui(unit: nil, direction: :floor) ⇒ String

Parameters:

  • unit (Symbol, nil) (defaults to: nil)
  • direction (Symbol) (defaults to: :floor)

Returns:

  • (String)


22
23
24
# File 'lib/amount/display.rb', line 22

def ui(unit: nil, direction: :floor)
  unit ? render_display_unit(unit, direction) : render_default(direction)
end