Class: Amount::Display
- Inherits:
-
Object
- Object
- Amount::Display
- Defined in:
- lib/amount/display.rb
Overview
Formats amounts for UI output without changing their type.
Instance Method Summary collapse
- #formatted ⇒ String
- #in_unit(unit) ⇒ BigDecimal
-
#initialize(amount) ⇒ Display
constructor
A new instance of Display.
- #to_s ⇒ String
- #ui(unit: nil, direction: :floor) ⇒ String
Constructor Details
#initialize(amount) ⇒ Display
Returns a new instance of Display.
9 10 11 12 |
# File 'lib/amount/display.rb', line 9 def initialize(amount) @amount = amount @entry = amount.registry_entry end |
Instance Method Details
#formatted ⇒ String
15 16 17 |
# File 'lib/amount/display.rb', line 15 def formatted format("%.#{@entry.decimals}f", @amount.decimal) end |
#in_unit(unit) ⇒ 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_s ⇒ 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
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 |