Module: NepaliNumber::MoneyIntegration
- Defined in:
- lib/nepali_number/money_integration.rb
Class Method Summary collapse
- .default_symbol_for(currency) ⇒ Object
- .format(money, nepali: false, devanagari: nil, symbol: nil) ⇒ Object
- .install! ⇒ Object
- .npr_registered? ⇒ Boolean
- .register_npr_currency ⇒ Object
Class Method Details
.default_symbol_for(currency) ⇒ Object
51 52 53 54 55 |
# File 'lib/nepali_number/money_integration.rb', line 51 def default_symbol_for(currency) return "रु." if currency.iso_code == "NPR" currency.symbol || currency.iso_code end |
.format(money, nepali: false, devanagari: nil, symbol: nil) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/nepali_number/money_integration.rb', line 14 def format(money, nepali: false, devanagari: nil, symbol: nil) unless defined?(Money) && money.is_a?(Money) raise ArgumentError, "expected a Money object" end currency = money.currency currency_symbol = symbol || default_symbol_for(currency) value = money.respond_to?(:to_d) ? money.to_d : BigDecimal(money.to_f.to_s) value = value.to_i if value.respond_to?(:frac) && value.frac.zero? Currency.format(value, symbol: currency_symbol, nepali: nepali, devanagari: devanagari) end |
.install! ⇒ Object
7 8 9 10 11 12 |
# File 'lib/nepali_number/money_integration.rb', line 7 def install! return false unless defined?(Money) register_npr_currency true end |
.npr_registered? ⇒ Boolean
42 43 44 45 46 47 48 49 |
# File 'lib/nepali_number/money_integration.rb', line 42 def npr_registered? return false unless defined?(Money::Currency) Money::Currency.find("NPR") true rescue false end |
.register_npr_currency ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/nepali_number/money_integration.rb', line 27 def register_npr_currency return unless defined?(Money::Currency) return if npr_registered? Money::Currency.register( iso_code: "NPR", name: "Nepalese Rupee", symbol: "रु.", subunit: "Paisa", subunit_to_unit: 100 ) rescue false end |