Sha256: e905a139cf55308b098c2e8dbe3f3c0127b7050ecde44b68003e3e6f55f23c31

Contents?: true

Size: 555 Bytes

Versions: 2

Compression:

Stored size: 555 Bytes

Contents

module Adapter
  module Defaults
    def fetch(key, value=nil, &block)
      read(key) || begin
        value = yield(key) if value.nil? && block_given?
        write(key, value)
        value
      end
    end

    def key?(key)
      !read(key).nil?
    end

    def key_for(key)
      if key.is_a?(String)
        key
      elsif key.is_a?(Symbol)
        key.to_s
      else
        Marshal.dump(key)
      end
    end

    def encode(value)
      Marshal.dump(value)
    end

    def decode(value)
      value && Marshal.load(value)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
adapter-0.5.1 lib/adapter/defaults.rb
adapter-0.5 lib/adapter/defaults.rb