diff --git a/extra/store/store.factor b/extra/store/store.factor index 38f078b2a8..38c1d3a906 100644 --- a/extra/store/store.factor +++ b/extra/store/store.factor @@ -1,6 +1,6 @@ ! Copyright (C) 2006, 2007 Doug Coleman. ! See http://factorcode.org/license.txt for BSD license. -USING: assocs io io.files kernel namespaces serialize ; +USING: assocs io io.files kernel namespaces serialize init ; IN: store TUPLE: store path data ; @@ -30,3 +30,8 @@ C: store ] [ drop >r 2dup set-global r> set-at ] if ; + +: define-store ( path id -- ) + over >r + [ >r resource-path load-store r> set-global ] 2curry + r> add-init-hook ; diff --git a/extra/webapps/pastebin/pastebin.factor b/extra/webapps/pastebin/pastebin.factor index 9d6b949ee1..d49863b12a 100755 --- a/extra/webapps/pastebin/pastebin.factor +++ b/extra/webapps/pastebin/pastebin.factor @@ -8,6 +8,12 @@ TUPLE: pastebin pastes ; : ( -- pastebin ) V{ } clone pastebin construct-boa ; +! Persistence +SYMBOL: store +"pastebin.store" store define-store + pastebin store get store-variable +: save-pastebin-store ( -- ) store get-global save-store ; + TUPLE: paste summary author channel mode contents date annotations n ; @@ -19,12 +25,6 @@ TUPLE: annotation summary author mode contents ; C: annotation -SYMBOL: store - -"pastebin.store" resource-path load-store store set-global - - \ pastebin store get store-variable - : get-paste ( n -- paste ) pastebin get pastebin-pastes nth ; @@ -71,9 +71,6 @@ SYMBOL: store \ feed.xml { } define-action -: save-pastebin-store ( -- ) - store get-global save-store ; - : add-paste ( paste pastebin -- ) >r now over set-paste-date r> pastebin-pastes 2dup length swap set-paste-n push ;