File: dbm.rb

package info (click to toggle)
libnora-ruby 1%3A0.0.20041021-3
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 408 kB
  • ctags: 722
  • sloc: ruby: 5,186; ansic: 669; makefile: 266; sql: 10
file content (56 lines) | stat: -rwxr-xr-x 1,011 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# Web::Persistent::Store::DBM
# Copyright(c) 2002 MoonWolf <moonwolf@moonwolf.com>
require 'dbm'

module Web
  class Persistent
    module Store
      class DBM
        
        def initialize(persistent_id, options={})
          @dir = options[:dir] || '/tmp'
          @path = ::File.join(@dir, persistent_id)
          @dbm = nil
        end
        
        def key_limit
          64
        end
        
        def data_limit
          960 # 1024 - 64(key)
        end
        
        def open
          @dbm = ::DBM.open(@path)
        end

        def close
          @dbm.close
          @dbm = nil
        end
        
        def [](key)
          @dbm[key]
        end

        def []=(key,value)
          @dbm[key] = value
        end
        
        def has_key?(key)
          @dbm.has_key?(key)
        end

        def delete(key)
          @dbm.delete(key)
        end

        def keys
          @dbm.keys
        end
        
      end # DBM
    end # Store
  end # Persistent
end # Web