# File lib/puppet/util/zaml.rb, line 227
227:   def to_zaml(z)
228:     num = '[-+]?(0x)?\d+\.?\d*'
229:     case
230:       when self == ''
231:         z.emit('""')
232:       # when self =~ /[\x00-\x08\x0B\x0C\x0E-\x1F\x80-\xFF]/
233:       #   z.emit("!binary |\n")
234:       #   z.emit([self].pack("m*"))
235:       when (
236:         (self =~ /\A(true|false|yes|no|on|null|off|#{num}(:#{num})*|!|=|~)$/i) or
237:         (self =~ /\A\n* /) or
238:         (self =~ /[\s:]$/) or
239:         (self =~ /^[>|][-+\d]*\s/i) or
240:         (self[-1..-1] =~ /\s/) or
241:         (self =~ /[\x00-\x08\x0B\x0C\x0E-\x1F\x80-\xFF]/) or
242:         (self =~ /[,\[\]\{\}\r\t]|:\s|\s#/) or
243:         (self =~ /\A([-:?!#&*'"]|<<|%.+:.)/)
244:         )
245:         z.emit("\"#{escaped_for_zaml}\"")
246:       when self =~ /\n/
247:         if self[-1..-1] == "\n" then z.emit('|+') else z.emit('|-') end
248:         z.nested { split("\n",-1).each { |line| z.nl; z.emit(line.chomp("\n")) } }
249:       else
250:         z.emit(self)
251:     end
252:   end