Tengo el siguiente resultado:
[{"name"=>"Content-Security-Policy", "value"=>"block-all-mixed-content", "decreasesSecurity"=>false, "increasesSecurity"=>true},
{"name"=>"Strict-Transport-Security", "value"=>"max-age=31536000", "decreasesSecurity"=>false, "increasesSecurity"=>true},
{"name"=>"X-Content-Type-Options", "value"=>"nosniff", "decreasesSecurity"=>false, "increasesSecurity"=>true},
{"name"=>"X-Frame-Options", "value"=>"DENY", "decreasesSecurity"=>false, "increasesSecurity"=>true},
{"name"=>"Content-Length", "value"=>"258", "decreasesSecurity"=>false, "increasesSecurity"=>false},
{"name"=>"Retry-Count", "value"=>"0", "decreasesSecurity"=>false, "increasesSecurity"=>false},
{"name"=>"Date", "value"=>"Sun, 28 Mar 2021 17:10:37 GMT", "decreasesSecurity"=>false, "increasesSecurity"=>false},
{"name"=>"Content-Type", "value"=>"text/html", "decreasesSecurity"=>false, "increasesSecurity"=>false},
{"name"=>"X-Xss-Protection", "value"=>"1", "decreasesSecurity"=>false, "increasesSecurity"=>true}]
Estos son encabezados de una respuesta HTTP y solo quiero convertirlos en un encabezado "legible por humanos". formato, como por ejemplo:
Content-Security-Policy: block-all-mixed-content
Strict-Transport-Security: max-age=xxxx
------------------------------------
O podrías iterar la matriz e imprimir cada línea, lo que necesitaría menos memoria que tu versión:
value["headers"].each { |h| puts "#{h['name']}: #{h['value']}"}
------------------------------------
Se me ocurrió lo siguiente como solución rápida:
puts value["headers"].map {|h| "#{h['name']}: #{h['value']}"}.join("\n")
# =>
Content-Security-Policy: block-all-mixed-content
Strict-Transport-Security: max-age=31536000
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Content-Length: 258
Retry-Count: 0
Date: Sun, 28 Mar 2021 17:10:37 GMT
Content-Type: text/html
X-Xss-Protection: 1
Respondido
28 de marzo de 2021 a las 17:37
SalsaLewl
SalsaLewl
5,456
10
10 insignias de oro
47
47 insignias de plata
100
100 insignias de bronce