Sha256: db2a84507c7273af2dff88f8b07018cd49db6dbc4359f379a0caf2d9dbfb58e5

Contents?: true

Size: 560 Bytes

Versions: 18

Compression:

Stored size: 560 Bytes

Contents

require "sdbm"

module Moneta
  class BasicSDBM < ::SDBM
    include Defaults

    def [](key)
      if val = super
        Marshal.load(val)
      end
    end

    def []=(key, value)
      super(key, Marshal.dump(value))
    end

    def delete(key)
      if val = super
        Marshal.load(val)
      end
    end
  end

  class SDBM < BasicSDBM
    include Expires

    def initialize(options = {})
      raise "No :file option specified" unless file = options[:file]
      @expiration = BasicSDBM.new("#{file}_expires")
      super(file)
    end
  end
end

Version data entries

18 entries across 18 versions & 9 rubygems

Version Path
aeden-moneta-0.6.2 lib/moneta/sdbm.rb
aeden-moneta-0.6.3 lib/moneta/sdbm.rb
benschwarz-moneta-0.6.1 lib/moneta/sdbm.rb
benschwarz-smoke-0.5.0 vendor/moneta/lib/moneta/sdbm.rb
benschwarz-smoke-0.5.1 vendor/moneta/lib/moneta/sdbm.rb
benschwarz-smoke-0.5.2 vendor/moneta/lib/moneta/sdbm.rb
benschwarz-smoke-0.5.3 vendor/moneta/lib/moneta/sdbm.rb
benschwarz-smoke-0.5.4 vendor/moneta/lib/moneta/sdbm.rb
benschwarz-smoke-0.5.5 vendor/moneta/lib/moneta/sdbm.rb
benschwarz-smoke-0.5.6 vendor/moneta/lib/moneta/sdbm.rb
jferris-moneta-0.6.2 lib/moneta/sdbm.rb
jsl-moneta-0.6.1 lib/moneta/sdbm.rb
jsl-moneta-0.6.2 lib/moneta/sdbm.rb
jsl-moneta-0.6.3 lib/moneta/sdbm.rb
smurphy-moneta-0.6.0 lib/moneta/sdbm.rb
gotime-moneta-0.6.2 lib/moneta/sdbm.rb
thoughtless-moneta-0.6.0.1 lib/moneta/sdbm.rb
moneta-0.6.0 lib/moneta/sdbm.rb