! 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 ;
] [
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 ;
: <pastebin> ( -- pastebin )
V{ } clone pastebin construct-boa ;
+! Persistence
+SYMBOL: store
+"pastebin.store" store define-store
+<pastebin> pastebin store get store-variable
+: save-pastebin-store ( -- ) store get-global save-store ;
+
TUPLE: paste
summary author channel mode contents date
annotations n ;
C: <annotation> annotation
-SYMBOL: store
-
-"pastebin.store" resource-path load-store store set-global
-
-<pastebin> \ pastebin store get store-variable
-
: get-paste ( n -- paste )
pastebin get pastebin-pastes nth ;
\ 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 ;