CFPropertyList implementation class to read, manipulate and write both XML and binary property list files (plist(5)) as defined by Apple. Have a look at CFPropertyList::List for more documentation.


You could either use ruby gems and install it via

gem install CFPropertyList

or you could clone this repository and place it somewhere in your load path.


require 'cfpropertylist'

# create a arbitrary data structure of basic data types
data = {
  'name' => 'John Doe',
  'missing' => true,
  'last_seen' =>,
  'friends' => ['Jane Doe','Julian Doe'],
  'likes' => {
    'me' => false

# create CFPropertyList::List object
plist =

# call CFPropertyList.guess() to create corresponding CFType values
plist.value = CFPropertyList.guess(data)

# write plist to file"example.plist", CFPropertyList::List::FORMAT_BINARY)

# … later, read it again
plist = => "example.plist")
data = CFPropertyList.native_types(plist.value)

Christian Kruse (


Copyright © 2010


MIT License