Class: Factbase::ToXML
- Inherits:
-
Object
- Object
- Factbase::ToXML
- Defined in:
- lib/factbase/to_xml.rb
Overview
Instance Method Summary collapse
-
#initialize(fb, sorter = '_id') ⇒ ToXML
constructor
Constructor.
-
#xml ⇒ String
Convert the entire factbase into XML.
Constructor Details
#initialize(fb, sorter = '_id') ⇒ ToXML
Constructor.
24 25 26 27 |
# File 'lib/factbase/to_xml.rb', line 24 def initialize(fb, sorter = '_id') @fb = fb @sorter = sorter end |
Instance Method Details
#xml ⇒ String
Convert the entire factbase into XML.
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/factbase/to_xml.rb', line 31 def xml = { version: Factbase::VERSION, size: @fb.export.size } Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml| xml.fb() do Factbase::Flatten.new(@fb.each.to_a, @sorter).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| xml.__send__(:v, to_str(v), t: type_of(v)) end end else xml.__send__(:"#{k}_", to_str(vv), t: type_of(vv)) end end end end end end.to_xml end |