class WebMock::Util::Parsers::JSON

def self.convert_json_to_yaml(json) #:nodoc:

:nodoc:
Ensure that ":" and "," are always followed by a space
def self.convert_json_to_yaml(json) #:nodoc:
  scanner, quoting, marks, times = StringScanner.new(json), false, [], []
  while scanner.scan_until(/(\\['"]|['":,\\]|\\.)/)
    case char = scanner[1]
    when '"', "'"
      if !quoting
        quoting = char
      elsif quoting == char
        quoting = false
      end
    when ":",","
        marks << scanner.pos - 1 unless quoting
    when "\\"
        scanner.skip(/\\/)
    end
  end
  if marks.empty?
    json.gsub(/\\\//, '/')
  else
    left_pos  = [-1].push(*marks)
    right_pos = marks << json.bytesize
    output    = []
    left_pos.each_with_index do |left, i|
      if json.respond_to?(:byteslice)
        output << json.byteslice(left.succ..right_pos[i])
      else
        output << json[left.succ..right_pos[i]]
      end
    end
    output = output * " "
    times.each { |i| output[i-1] = ' ' }
    output.gsub!(/\\\//, '/')
    output
  end
end