]> gitweb.factorcode.org Git - factor.git/blob - extra/cocoa/plists/plists.factor
Initial import
[factor.git] / extra / cocoa / plists / plists.factor
1 ! Copyright (C) 2007 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: strings arrays hashtables assocs sequences
4 xml.writer xml.utilities kernel namespaces ;
5
6 GENERIC: >plist ( obj -- tag )
7
8 M: string >plist "string" build-tag ;
9
10 M: array >plist
11     [ >plist ] map "array" build-tag* ;
12
13 M: hashtable >plist
14     >alist [ >r "key" build-tag r> >plist ] assoc-map concat
15     "dict" build-tag* ;
16
17 : build-plist ( obj -- tag )
18     >plist 1array "plist" build-tag*
19     dup { { "version" "1.0" } } update ;
20
21 : print-plist ( obj -- )
22     build-plist build-xml print-xml ;