diff --git a/extra/gdbm/gdbm-tests.factor b/extra/gdbm/gdbm-tests.factor index 9d233c8949..4a102deeb1 100644 --- a/extra/gdbm/gdbm-tests.factor +++ b/extra/gdbm/gdbm-tests.factor @@ -25,7 +25,7 @@ CLEANUP [ ] [ [ "foo" 41 insert ] with-test.db ] unit-test [ - [ "foo" 42 insert ] with-test.db + db-path [ "foo" 42 insert ] with-gdbm-writer ] [ gdbm-cannot-replace = ] must-fail-with [ ] @@ -37,7 +37,7 @@ CLEANUP ] with-test.db ] unit-test -[ 42 t ] [ [ "foo" fetch* ] with-test.db ] unit-test +[ 42 t ] [ db-path [ "foo" fetch* ] with-gdbm-reader ] unit-test [ f f ] [ [ "unknown" fetch* ] with-test.db ] unit-test diff --git a/extra/gdbm/gdbm.factor b/extra/gdbm/gdbm.factor index 54980cb309..2fe758f539 100644 --- a/extra/gdbm/gdbm.factor +++ b/extra/gdbm/gdbm.factor @@ -148,3 +148,13 @@ PRIVATE> : with-gdbm ( gdbm quot -- ) [ gdbm-open &gdbm-close current-dbf set ] prepose curry [ with-scope ] curry with-destructors ; inline + +:: with-gdbm-role ( name role quot -- ) + name >>name role >>role quot with-gdbm ; inline + +: with-gdbm-reader ( name quot -- ) + reader swap with-gdbm-role ; inline + +: with-gdbm-writer ( name quot -- ) + writer swap with-gdbm-role ; inline +