Sha256: 506640c2611afdc0b8828c7ac5f0a2e1abb2b437ee3e205af2d2546eab5bd90b
Contents?: true
Size: 877 Bytes
Versions: 1
Compression:
Stored size: 877 Bytes
Contents
require 'money' class Money module Distributed module Fetcher # Base class for reates fetchers module Base def initialize(bank = nil) @bank = bank || Money.default_bank end def fetch rates = exchange_rates currencies = rates.keys currencies.each { |cur| add_rate(cur, cur, 1) } currencies.combination(2).each do |curr1, curr2| rate = rates[curr2] / rates[curr1] add_rate(curr1, curr2, rate) end end private def add_rate(from_iso, to_iso, rate) @bank.add_rate(from_iso, to_iso, rate.round(4)) return if from_iso == to_iso @bank.add_rate(to_iso, from_iso, (1 / rate).round(4)) end def exchange_rates raise NotImplementedError end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
money-distributed-0.0.2.2 | lib/money/distributed/fetcher/base.rb |