yaml_escape

in lib/twitter_cldr/utils/yaml.rb [362:386]


        def yaml_escape(str)
          
          str.gsub(/[^a-zA-Z0-9]/u) do |c|
            ucs_code, = (c.unpack('U') rescue [??])
            case
              when ESCAPE_SEQ[c]
                ESCAPE_SEQ[c]
              when is_printable?(ucs_code)
                c
              when @options[:escape_as_utf8]
                c.respond_to?(:bytes) ?
                  c.bytes.collect { |b| '\\x%.2x' % b }.join :
                  '\\x' + c.unpack('H2' * c.size).join('\\x')
              when ucs_code == 0x2028 || ucs_code == 0x2029
                ESCAPE_SEQ_LB[c]
              when ucs_code <= 0x7f
                sprintf('\\x%.2x', ucs_code)
              when ucs_code <= 0xffff
                sprintf('\\u%.4x', ucs_code)
              else
                sprintf('\\U%.8x', ucs_code)
            end
          end
        end