Class: Serializer::Manifest
- Inherits:
-
Serializable
- Object
- Serializable
- Serializer::Manifest
- Includes:
- HappyMapper
- Defined in:
- lib/serializer/manifest.rb
Overview
Copyright © 2012 by The Board of Trustees of the Leland Stanford Junior University. All rights reserved. See LICENSE for details.
Subclass of Serializable that adds methods for marshalling/unmarshalling data to a persistent XML file format.
Data Model
-
Serializable = utility methods to faciliate serialization to Hash, JSON, or YAML
-
Manifest = subclass adds methods for marshalling/unmarshalling data to XML file format
-
Direct Known Subclasses
Moab::FileInventory, Moab::FileInventoryDifference, Moab::SignatureCatalog, Moab::VersionMetadata
Class Method Summary collapse
-
.read_xml_file(parent_dir, filename = nil) ⇒ Serializable
Read the xml file and return the parsed XML.
-
.write_xml_file(xml_object, parent_dir, filename = nil) ⇒ void
Serializize the in-memory object to a xml file instance.
-
.xml_filename(filename = nil) ⇒ String
Returns the standard filename (derived from the class name) to be used for serializing an object.
-
.xml_pathname(parent_dir, filename = nil) ⇒ Pathname
The location of the xml file.
-
.xml_pathname_exist?(parent_dir, filename = nil) ⇒ Boolean
Returns true if the xml file exists.
Instance Method Summary collapse
-
#write_xml_file(parent_dir, filename = nil) ⇒ void
Serializize the in-memory object to a xml file instance.
Methods inherited from Serializable
#array_to_hash, deep_diff, #diff, #initialize, #key, #key_name, #summary, #to_hash, #to_json, #to_yaml, #variable_names, #variables
Constructor Details
This class inherits a constructor from Serializer::Serializable
Class Method Details
.read_xml_file(parent_dir, filename = nil) ⇒ Serializable
Returns Read the xml file and return the parsed XML.
48 49 50 |
# File 'lib/serializer/manifest.rb', line 48 def self.read_xml_file(parent_dir, filename = nil) parse(xml_pathname(parent_dir, filename).read) end |
.write_xml_file(xml_object, parent_dir, filename = nil) ⇒ void
This method returns an undefined value.
Returns Serializize the in-memory object to a xml file instance.
57 58 59 60 61 62 63 64 65 |
# File 'lib/serializer/manifest.rb', line 57 def self.write_xml_file(xml_object, parent_dir, filename = nil) parent_dir.mkpath xml_pathname(parent_dir, filename).open('w') do |f| xmlBuilder = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') xmlBuilder = xml_object.to_xml(xmlBuilder) f << xmlBuilder.to_xml end nil end |
.xml_filename(filename = nil) ⇒ String
Returns the standard filename (derived from the class name) to be used for serializing an object
18 19 20 21 22 23 24 25 |
# File 'lib/serializer/manifest.rb', line 18 def self.xml_filename(filename = nil) if filename filename else cname = name.split(/::/).last cname[0, 1].downcase + cname[1..-1] + '.xml' end end |
.xml_pathname(parent_dir, filename = nil) ⇒ Pathname
Returns The location of the xml file.
31 32 33 |
# File 'lib/serializer/manifest.rb', line 31 def self.xml_pathname(parent_dir, filename = nil) Pathname.new(parent_dir).join(xml_filename(filename)) end |
.xml_pathname_exist?(parent_dir, filename = nil) ⇒ Boolean
Returns true if the xml file exists
39 40 41 |
# File 'lib/serializer/manifest.rb', line 39 def self.xml_pathname_exist?(parent_dir, filename = nil) xml_pathname(parent_dir, filename).exist? end |
Instance Method Details
#write_xml_file(parent_dir, filename = nil) ⇒ void
This method returns an undefined value.
Returns Serializize the in-memory object to a xml file instance.
72 73 74 |
# File 'lib/serializer/manifest.rb', line 72 def write_xml_file(parent_dir, filename = nil) self.class.write_xml_file(self, parent_dir, filename) end |