Module: Plist::Emit
Overview
Create a plist
You can dump an object to a plist in one of two ways:
-
Plist::Emit.dump(obj)
-
obj.to_plist
-
This requires that you mixin the Plist::Emit module, which is already done for Array and Hash.
-
The following Ruby classes are converted into native plist types:
Array, Bignum, Date, DateTime, Fixnum, Float, Hash, Integer, String, Symbol, Time, true, false
-
Array and Hash are both recursive; their elements will be converted into plist nodes inside the <array> and <dict> containers (respectively).
-
IO (and its descendants) and StringIO objects are read from and their contents placed in a <data> element.
-
User classes may implement to_plist_node to dictate how they should be serialized; otherwise the object will be passed to Marshal.dump and the result placed in a <data> element.
For detailed usage instructions, refer to USAGE and the methods documented below.
Class Method Summary (collapse)
-
+ (Object) dump(obj, envelope = true)
The following Ruby classes are converted into native plist types:.
-
+ (Object) save_plist(obj, filename)
Writes the serialized object's plist to the specified filename.
Instance Method Summary (collapse)
-
- (Object) save_plist(filename)
Helper method for injecting into classes.
-
- (Object) to_plist(envelope = true)
Helper method for injecting into classes.
Class Method Details
+ (Object) dump(obj, envelope = true)
The following Ruby classes are converted into native plist types:
Array, Bignum, Date, DateTime, Fixnum, Float, Hash, Integer, String, Symbol, Time
Write us (via RubyForge) if you think another class can be coerced safely into one of the expected plist classes.
IO and StringIO objects are encoded and placed in <data> elements; other objects are Marshal.dump'ed unless they implement to_plist_node.
The envelope parameters dictates whether or not the resultant plist fragment is wrapped in the normal XML/plist header and footer. Set it to false if you only want the fragment.
44 45 46 47 48 49 50 |
# File 'lib/plist/generator.rb', line 44 def self.dump(obj, envelope = true) output = plist_node(obj) output = wrap(output) if envelope return output end |
+ (Object) save_plist(obj, filename)
Writes the serialized object's plist to the specified filename.
53 54 55 56 57 |
# File 'lib/plist/generator.rb', line 53 def self.save_plist(obj, filename) File.open(filename, 'wb') do |f| f.write(obj.to_plist) end end |
Instance Method Details
- (Object) save_plist(filename)
Helper method for injecting into classes. Calls Plist::Emit.save_plist with self.
32 33 34 |
# File 'lib/plist/generator.rb', line 32 def save_plist(filename) Plist::Emit.save_plist(self, filename) end |
- (Object) to_plist(envelope = true)
Helper method for injecting into classes. Calls Plist::Emit.dump with self.
27 28 29 |
# File 'lib/plist/generator.rb', line 27 def to_plist(envelope = true) return Plist::Emit.dump(self, envelope) end |