Sha256: 1dde242ffd98224784dee671b543c2ba0ce5c48a510129799ef8ae1eacb414ec

Contents?: true

Size: 435 Bytes

Versions: 5

Compression:

Stored size: 435 Bytes

Contents

module CurrencyRate
  class Storage

    attr_reader :data

    def initialize(adapter_name: nil, timeout: 1800)
      @timeout      = timeout
      @data         = {}
      @adapter_name = adapter_name
    end

    def fetch(key)
      if @data[key].nil? || (@data[key][:timestamp] < (Time.now.to_i - @timeout))
        @data[key] = { content: yield, timestamp: Time.now.to_i }
      end
      @data[key][:content]
    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
currency-rate-0.4.1 lib/storage.rb
currency-rate-0.4.0 lib/storage.rb
currency-rate-0.3.9 lib/storage.rb
currency-rate-0.3.8 lib/storage.rb
currency-rate-0.3.7 lib/storage.rb