# Plist 3.0.0 released!

**URL:** <https://www.ruby-forum.com/t/plist-3-0-0-released/69473>\
**Category:** Ruby\
**Created:** [September 21, 2006, 7:38am UTC](https://www.ruby-forum.com/t/plist-3-0-0-released/69473 "2006-09-21T07:38:48Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![brblakley](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/f14d63/32.png) [@brblakley](https://www.ruby-forum.com/u/brblakley)\
**Post date:** [September 21, 2006, 7:38am UTC](https://www.ruby-forum.com/t/plist-3-0-0-released/69473/1 "2006-09-21T07:38:48Z")

</div>

== Introduction

Plist is a library to manipulate Property List files, also known as  
plists. It can parse plist files into native Ruby data structures as  
well as generating new plist files from your Ruby objects.

Plist was originally part of the NARF project  
([http://www.narf-lib.org/](http://www.narf-lib.org/)),  
until some idiot (me) came along and accidentally released a gem of the  
same name. A few apologetic emails later, plist was moved out of NARF  
into its own project on RubyForge. NARF’s developer, Patrick M., and  
I have joined forces and will be maintaining the project together from  
here on.

== Release Notes

There are a couple of very important notes about plist 3.0.0:

- The library is no longer compatible with Ruby 1.6.x. It was decided  
that ship had sailed.

- The top-level Plist class is now a module, so subclasses of Plist  
will no longer work.

- version 3.0.0 sports brand new plist generation code. Code that was  
written around the old 2.x generation code will likely break.

Apologies for not formally deprecating this code before it changed. It  
all just happened so fast! Bugs found in the 2.x branch will be fixed  
if there is demand for it.

Other fun tidbits about the release can be found in the CHANGELOG file,  
in the repository or in the rdoc.

== Installation

$ sudo gem install plist

The gem has _just now_ been released, so it might be a while before it  
actually hits the mirrors. In the meantime, you ought to be able to  
download the gem directly from RubyForge, or just check it out from svn  
and run:

$ rake gem ; sudo gem install pkg/plist-3.0.0.gem

== Usage

There is a lot more detail in the USAGE document in the rdoc, but here’s  
a taste:

==== Parsing

result = Plist::parse\_xml( ‘/path/to/your.plist’ )

==== Generation

hash = {  
:some\_key =\> ‘value’,  
:array =\> [1, 2, 3, 4],  
:obj =\> MyVerySpecialCustomObject.new  
}

hash.to\_plist # these two are  
Plist::Emit.dump(hash) # equivalent!

hash.save\_plist( ‘/path/to/your.plist’ ) # these two are  
Plist::Emit.save\_plist( hash, ‘/path/to/your.plist’ ) # equivalent  
too!

== New Infrastructure!

Merging our libraries also meant merging our infrastructure. Plist is  
now hosted entirely at RubyForge.

- Project page: [http://rubyforge.org/projects/plist/](http://rubyforge.org/projects/plist/)
- Rdoc: [http://plist.rubyforge.org](http://plist.rubyforge.org)
- Subversion: svn://rubyforge.org/var/svn/plist
- Mailing lists
  - removed\_email\_address@domain.invalid – svn notifications
  - removed\_email\_address@domain.invalid – development discussion

== Conclusion

While I can’t really say there are Big Plans™ in store for plist  
in the future, Patrick and I are both using the library in production  
code, so we’re not going anywhere. We’re both very open to ideas and  
suggestions, so if you’re using plist and want it to do something it  
doesn’t, just let us know. Join our mailing list (see above!) and say  
hi. Let us know you care.

Cheers!
