factor/extra/cocoa/plists/plists.factor

24 lines
610 B
Factor
Raw Normal View History

2007-09-20 18:09:08 -04:00
! Copyright (C) 2007 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: strings arrays hashtables assocs sequences
xml.writer xml.utilities kernel namespaces ;
2008-02-26 19:40:32 -05:00
IN: cocoa.plists
2007-09-20 18:09:08 -04:00
GENERIC: >plist ( obj -- tag )
M: string >plist "string" build-tag ;
M: array >plist
[ >plist ] map "array" build-tag* ;
M: hashtable >plist
>alist [ >r "key" build-tag r> >plist ] assoc-map concat
"dict" build-tag* ;
: build-plist ( obj -- tag )
>plist 1array "plist" build-tag*
dup { { "version" "1.0" } } update ;
: print-plist ( obj -- )
build-plist build-xml print-xml ;