Module: YAMLRepro

Defined in:
lib/xmigra.rb

Defined Under Namespace

Classes: TreeBuilder, YAMLTree

Class Method Summary collapse

Class Method Details

.dump(data_root, io = nil, options = {}) ⇒ Object



148
149
150
151
152
153
154
155
156
157
158
159
160
161
# File 'lib/xmigra.rb', line 148

def self.dump(data_root, io=nil, options={})
  real_io = io || StringIO.new(''.encode('utf-8'))
  visitor = YAMLTree.new(options, TreeBuilder.new)
  visitor << data_root
  ast = visitor.tree
  
  begin
    ast.yaml real_io
  rescue
    Psych::Visitors::Emitter.new(real_io).accept ast
  end
  
  io || real_io.string
end