caseyhoward / nokogiri-plist

A PList parser and generator built using Nokogiri
MIT License
25 stars 15 forks source link

= Nokogiri-PList

== DESCRIPTION:

Nokogiri-plist provides the functionality for dealing with XML in Apple's property list format.

There is already a plist gem (http://github.com/bleything/plist) that has similar functionality. I didn't realize it until I had written most of this gem. However this gem uses Nokogiri, so the implementation is simpler. The plist gem does its own XML parsing. I figured since I was already using Nokogiri in my project, it's better to build on top of that. I did get ideas from the original gem. I have benchmarked my gem against that gem and it performs similarly. Once I come up with a little more scientific benchmarks, I'll show them.'

== FEATURES:

== USAGE:

Sample plist (test.plist)

Beers Black Butte Steel Reserve Bass Pale Ale Beer DrinkerCasey Beers Drank4123

require 'nokogiri-plist'

Parse the plist XML

plist = Nokogiri::PList(open('test.plist')) => { "Beers" => ["Black Butte", "Steel Reserve", "Bass Pale Ale"], "Beers Drank" => 4123, "Beer Drinker" => "Casey"}

Read a dict property thats value is an array

plist["Beers"] => ["Black Butte", "Steel Reserve", "Bass Pale Ale"]

Read another value

plist["Beer Drinker"] => "Casey"

Turn it into a string containing XML

puts plist.to_plist_xml

Beers Black Butte Steel Reserve Bass Pale Ale Beers Drank4123 Beer DrinkerCasey

Convert a string into a plist XML string

"beer".to_plist_xml => "beer"

Convert an array to a plist XML string

puts (1..3).to_a.to_plist_xml

1 2 3

== REQUIREMENTS:

== INSTALL: