class CoinSync::CurrencyConverters::Cache

Public Class Methods

new(name) click to toggle source
# File lib/coinsync/currency_converters/cache.rb, line 7
def initialize(name)
  @name = name
  @filename = "cache/#{name}.json"

  if File.exist?(@filename)
    @rates = JSON.parse(File.read(@filename))
  else
    @rates = {}
  end
end

Public Instance Methods

[](from, to, date) click to toggle source
# File lib/coinsync/currency_converters/cache.rb, line 18
def [](from, to, date)
  @rates["#{from.code}:#{to.code}"] ||= {}
  @rates["#{from.code}:#{to.code}"][date.to_s]
end
[]=(from, to, date, amount) click to toggle source
# File lib/coinsync/currency_converters/cache.rb, line 23
def []=(from, to, date, amount)
  @rates["#{from.code}:#{to.code}"] ||= {}
  @rates["#{from.code}:#{to.code}"][date.to_s] = amount
end
save() click to toggle source
# File lib/coinsync/currency_converters/cache.rb, line 28
def save
  FileUtils.mkdir_p(File.dirname(@filename))
  File.write(@filename, JSON.generate(@rates))
end