lib/factbase/to_xml.rb in factbase-0.0.46 vs lib/factbase/to_xml.rb in factbase-0.0.47
- old
+ new
@@ -21,10 +21,11 @@
# SOFTWARE.
require 'nokogiri'
require 'time'
require_relative '../factbase'
+require_relative '../factbase/flatten'
# Factbase to XML converter.
#
# This class helps converting an entire Factbase to YAML format, for example:
#
@@ -44,17 +45,16 @@
# Convert the entire factbase into XML.
# @return [String] The factbase in XML format
def xml
bytes = @fb.export
- maps = Marshal.load(bytes)
meta = {
version: Factbase::VERSION,
size: bytes.size
}
Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
xml.fb(meta) do
- maps.sort_by { |m| m[@sorter] }.each do |m|
+ Factbase::Flatten.new(Marshal.load(bytes)).it.each do |m|
xml.f_ do
m.sort.to_h.each do |k, vv|
if vv.is_a?(Array)
xml.send(:"#{k}_") do
vv.each do |v|