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, decorated: true, trim_zeros: nil) ⇒ 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
50 51 52 53 |
# File 'lib/amount/display.rb', line 50 def in_unit(unit) unit_spec = fetch_display_unit(unit) @amount.decimal * Amount.coerce_decimal(unit_spec[:scale]) end |
#to_s ⇒ String
44 45 46 |
# File 'lib/amount/display.rb', line 44 def to_s "#{@entry.symbol}|#{@amount.decimal.to_s("F")}" end |
#ui(unit: nil, direction: :floor, decorated: true, trim_zeros: nil) ⇒ String
35 36 37 38 39 40 41 |
# File 'lib/amount/display.rb', line 35 def ui(unit: nil, direction: :floor, decorated: true, trim_zeros: nil) if unit render_display_unit(unit, direction, decorated:, trim_zeros:) else render_default(direction, decorated:, trim_zeros:) end end |