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