class Cucumber::Formatter::CurlOptionParser

def self.make_headers(headers)

def self.make_headers(headers)
  hash_headers = {}
  str_scanner = /("(?<key>[^":]+)\s*:\s*(?<value>[^":]+)")|('(?<key1>[^':]+)\s*:\s*(?<value1>[^':]+)')/
  headers.scan(str_scanner) do |header|
    header = header.compact!
    hash_headers[header[0]] = header[1]&.strip
  end
  hash_headers
end

def self.parse(options)

def self.parse(options)
  chunks = options.split(/\s/).compact
  http_method = 'PUT'
  url = chunks[0]
  headers = ''
  last_flag = nil
  chunks.each do |chunk|
    if ['-X', '--request'].include?(chunk)
      last_flag = '-X'
      next
    end
    if chunk == '-H'
      last_flag = '-H'
      next
    end
    if last_flag == '-X'
      http_method = chunk
      last_flag = nil
    end
    headers += chunk if last_flag == '-H'
  end
  [
    url,
    http_method,
    make_headers(headers)
  ]
end