Port extra/store to new module system

add unit tests
release
Doug Coleman 2007-10-31 18:59:25 -05:00
parent 437428714e
commit 0aeb676866
2 changed files with 43 additions and 3 deletions

View File

@ -0,0 +1,41 @@
USING: assocs continuations debugger io.files kernel
namespaces store tools.test ;
IN: temporary
SYMBOL: store
SYMBOL: foo
SYMBOL: bar
: the-store ( -- path )
"store-test.store" resource-path ;
: delete-the-store ( -- )
[ the-store delete-file ] catch drop ;
: load-the-store ( -- )
the-store load-store store set ;
: save-the-store ( -- )
store get save-store ;
delete-the-store
the-store load-store store set
[ f ] [ foo store get store-data at ] unit-test
[ ] [ 100 foo store get store-variable ] unit-test
[ ] [ save-the-store ] unit-test
[ 100 ] [ foo store get store-data at ] unit-test
1000 foo set
[ ] [ save-the-store ] unit-test
[ ] [ load-the-store ] unit-test
[ 1000 ] [ foo store get store-data at ] unit-test
delete-the-store

View File

@ -11,12 +11,12 @@ C: <store> store
[ store-data ] keep store-path <file-writer> [
[
dup
[ drop [ get ] keep rot set-at ] curry* assoc-each
[ >r drop [ get ] keep r> set-at ] curry assoc-each
] keep serialize
] with-stream ;
: load-store ( path -- store )
resource-path dup exists? [
dup exists? [
dup <file-reader> [
deserialize
] with-stream
@ -30,4 +30,3 @@ C: <store> store
] [
drop >r 2dup set-global r> set-at
] if ;