Module Plist::Emit
In: lib/facter/util/plist/generator.rb

Create a plist

You can dump an object to a plist in one of two ways:

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.

Methods

Public Class methods

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.

[Source]

    # File lib/facter/util/plist/generator.rb, line 43
43:     def self.dump(obj, envelope = true)
44:       output = plist_node(obj)
45: 
46:       output = wrap(output) if envelope
47: 
48:       return output
49:     end

Writes the serialized object‘s plist to the specified filename.

[Source]

    # File lib/facter/util/plist/generator.rb, line 52
52:     def self.save_plist(obj, filename)
53:       File.open(filename, 'wb') do |f|
54:         f.write(obj.to_plist)
55:       end
56:     end

Public Instance methods

Helper method for injecting into classes. Calls Plist::Emit.save_plist with self.

[Source]

    # File lib/facter/util/plist/generator.rb, line 31
31:     def save_plist(filename)
32:       Plist::Emit.save_plist(self, filename)
33:     end

Helper method for injecting into classes. Calls Plist::Emit.dump with self.

[Source]

    # File lib/facter/util/plist/generator.rb, line 26
26:     def to_plist(envelope = true)
27:       return Plist::Emit.dump(self, envelope)
28:     end

[Validate]