Class: Mint::Currency
- Inherits:
-
Data
- Object
- Data
- Mint::Currency
- Defined in:
- lib/minting/mint/currency.rb
Overview
Represents a specific currency unit, identified by ISO 4217 alphabetic code
Instance Attribute Summary collapse
-
#code ⇒ Object
readonly
Returns the value of attribute code.
-
#country ⇒ Object
readonly
Returns the value of attribute country.
-
#fractional_multiplier ⇒ Object
readonly
Returns the value of attribute fractional_multiplier.
-
#minimum_amount ⇒ Object
readonly
Returns the value of attribute minimum_amount.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#priority ⇒ Object
readonly
Returns the value of attribute priority.
-
#subunit ⇒ Object
readonly
Returns the value of attribute subunit.
-
#symbol ⇒ Object
readonly
Returns the value of attribute symbol.
Instance Method Summary collapse
-
#initialize(code:, symbol:, subunit: 0, priority: 0, country: nil, name: nil) ⇒ Currency
constructor
A new instance of Currency.
- #inspect ⇒ Object
-
#normalize_amount(amount) ⇒ Object
Normalizes numeric amounts for this currency 1.
Constructor Details
#initialize(code:, symbol:, subunit: 0, priority: 0, country: nil, name: nil) ⇒ Currency
Returns a new instance of Currency.
9 10 11 12 13 14 15 16 |
# File 'lib/minting/mint/currency.rb', line 9 def initialize(code:, symbol:, subunit: 0, priority: 0, country: nil, name: nil) subunit = subunit.to_i priority = priority.to_i fractional_multiplier = 10**subunit minimum_amount = Rational(1, fractional_multiplier) super(code:, subunit:, symbol:, priority:, country:, name:, fractional_multiplier:, minimum_amount:) end |
Instance Attribute Details
#code ⇒ Object (readonly)
Returns the value of attribute code
7 8 9 |
# File 'lib/minting/mint/currency.rb', line 7 def code @code end |
#country ⇒ Object (readonly)
Returns the value of attribute country
7 8 9 |
# File 'lib/minting/mint/currency.rb', line 7 def country @country end |
#fractional_multiplier ⇒ Object (readonly)
Returns the value of attribute fractional_multiplier
7 8 9 |
# File 'lib/minting/mint/currency.rb', line 7 def fractional_multiplier @fractional_multiplier end |
#minimum_amount ⇒ Object (readonly)
Returns the value of attribute minimum_amount
7 8 9 |
# File 'lib/minting/mint/currency.rb', line 7 def minimum_amount @minimum_amount end |
#name ⇒ Object (readonly)
Returns the value of attribute name
7 8 9 |
# File 'lib/minting/mint/currency.rb', line 7 def name @name end |
#priority ⇒ Object (readonly)
Returns the value of attribute priority
7 8 9 |
# File 'lib/minting/mint/currency.rb', line 7 def priority @priority end |
#subunit ⇒ Object (readonly)
Returns the value of attribute subunit
7 8 9 |
# File 'lib/minting/mint/currency.rb', line 7 def subunit @subunit end |
#symbol ⇒ Object (readonly)
Returns the value of attribute symbol
7 8 9 |
# File 'lib/minting/mint/currency.rb', line 7 def symbol @symbol end |
Instance Method Details
#inspect ⇒ Object
18 |
# File 'lib/minting/mint/currency.rb', line 18 def inspect = "<Currency:(#{code} #{symbol} #{subunit} #{name})>" |
#normalize_amount(amount) ⇒ Object
Normalizes numeric amounts for this currency
-
Converts to Rational
-
Rounds to respect currency subunit
23 |
# File 'lib/minting/mint/currency.rb', line 23 def normalize_amount(amount) = amount.to_r.round(subunit) |