Module: NepaliNumber::MoneyIntegration

Defined in:
lib/nepali_number/money_integration.rb

Class Method Summary collapse

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

Returns:

  • (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_currencyObject



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