initial
This commit is contained in:
54
class.rkt
Normal file
54
class.rkt
Normal file
@@ -0,0 +1,54 @@
|
||||
#lang racket/base
|
||||
|
||||
(require "keystore.rkt"
|
||||
racket/class
|
||||
)
|
||||
|
||||
(provide keystore%)
|
||||
|
||||
|
||||
(define keystore%
|
||||
(class object%
|
||||
(init-field
|
||||
[file (error "provide a filename using a path, string or use a symbol")]
|
||||
)
|
||||
|
||||
(super-new)
|
||||
|
||||
(define ksh (ks-open file))
|
||||
|
||||
(define/public (handle)
|
||||
ksh)
|
||||
|
||||
(define/public (set! key val)
|
||||
(ks-set! ksh key val)
|
||||
this)
|
||||
|
||||
(define/public (get key . default-val)
|
||||
(if (null? default-val)
|
||||
(ks-get ksh key)
|
||||
(ks-get ksh key (car default-val))))
|
||||
|
||||
(define/public (drop! key)
|
||||
(ks-drop! ksh key)
|
||||
this)
|
||||
|
||||
(define/public (exists? key)
|
||||
(ks-exists? ksh key))
|
||||
|
||||
(define/public (glob gl)
|
||||
(ks-keys-glob ksh gl))
|
||||
|
||||
(define/public (glob-kv gl)
|
||||
(ks-key-values-glob ksh gl))
|
||||
|
||||
(define/public (keys-glob gl)
|
||||
(ks-keys-glob ksh gl))
|
||||
|
||||
(define/public (keys)
|
||||
(ks-keys ksh))
|
||||
|
||||
(define/public (key-values)
|
||||
(ks-key-values ksh))
|
||||
)
|
||||
)
|
||||
Reference in New Issue
Block a user