Class: NWN::Gff::Handler::XML
- Inherits:
-
Object
- Object
- NWN::Gff::Handler::XML
- Defined in:
- lib/nwn/xml_support.rb
Instance Method Summary collapse
- #dump(data, io) ⇒ Object
-
#initialize(fmt) ⇒ XML
constructor
A new instance of XML.
- #load(io) ⇒ Object
Constructor Details
#initialize(fmt) ⇒ XML
Returns a new instance of XML.
157 158 159 |
# File 'lib/nwn/xml_support.rb', line 157 def initialize fmt @format = fmt end |
Instance Method Details
#dump(data, io) ⇒ Object
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 |
# File 'lib/nwn/xml_support.rb', line 177 def dump data, io doc = XML::Document.new doc.root = case @format when :nxml struct_to_xml(data) when :modpacker nd = XML::Node.new('gff') nd['type'] = [data.data_type].pack("A4") nd['version'] = [data.data_version].pack("A4") nd << struct_to_xml(data) nd else raise ArgumentError, "Unsupported XML format registered: #{@format.inspect}" end t = doc.to_s io.write(t) t.size end |
#load(io) ⇒ Object
161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 |
# File 'lib/nwn/xml_support.rb', line 161 def load io doc = XML::Parser.io(io) root = doc.parse.root ret = case @format when :nxml xml_to_struct(root) when :modpacker struct = root.children.select {|x| x.node_type == XML::Node::ELEMENT_NODE && x.name == 'struct' }[0] xml_to_struct(struct, root['version']) else raise ArgumentError, "Unsupported XML format registered: #{@format.inspect}" end ret end |