Module: BankTeller

Defined in:
lib/bank_teller.rb,
lib/bank_teller/engine.rb,
lib/bank_teller/version.rb,
lib/generators/bank_teller/install_generator.rb

Defined Under Namespace

Classes: Engine, InstallGenerator

Constant Summary collapse

VERSION =
"0.1.1"
@@currency =
'usd'
@@currency_symbol =
'$'
@@format_currency_using =
nil

Class Method Summary collapse

Class Method Details

.format_amount(amount) ⇒ Object



44
45
46
47
48
49
50
51
52
53
# File 'lib/bank_teller.rb', line 44

def self.format_amount(amount)
  self.format_currency_using(amount) if @@format_currency_using
  amount = sprintf("%03d", amount).insert(-3, ".")

  if amount.start_with?('-')
    return "-#{self.uses_currency_symbol}#{amount.sub!(/^-/, '')}"
  end

  "#{uses_currency_symbol}#{amount}"
end

.format_currency_using(callback) ⇒ Object



40
41
42
# File 'lib/bank_teller.rb', line 40

def self.format_currency_using(callback)
  @@format_currency_using = callback
end

.guess_currency_symbol(currency) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/bank_teller.rb', line 15

def self.guess_currency_symbol(currency)
  case currency.downcase
  when 'usd', 'cad', 'aud'
    '$'
  when 'eur'
    '€'
  when 'gbp'
    '£'
  else
    raise 'You must explicitly specify the currency symbol.'
  end
end

.use_currency(currency, symbol = nil) ⇒ Object



9
10
11
12
13
# File 'lib/bank_teller.rb', line 9

def self.use_currency(currency, symbol = nil)
  @@currency = currency
  symbol = self.guess_currency_symbol(currency) if symbol.nil?
  self.use_currency_symbol(symbol)
end

.use_currency_symbol(symbol) ⇒ Object



28
29
30
# File 'lib/bank_teller.rb', line 28

def self.use_currency_symbol(symbol)
  @@currency_symbol = symbol
end

.uses_currencyObject



32
33
34
# File 'lib/bank_teller.rb', line 32

def self.uses_currency
  @@currency
end

.uses_currency_symbolObject



36
37
38
# File 'lib/bank_teller.rb', line 36

def self.uses_currency_symbol
  @@currency_symbol
end