Extrair valores de um hash
Olá, estou usando HTTParty para chamar um arquivo json remoto que preciso extrair os URLs para usar em um dos meus testes. O formato json é algo como:
"manifest" : {
"header" : {
"generated" : "xxxxxxxxxxxxxxx",
"name" : "xxxxxxxxxxx",
"version" : "1.0.0"
},
"files" : [ {
"file" : "blimp.zip",
"url" : "http://www.xxx.xx/restaurants_blimp.zip",
"checksum" : "ee98c9455b8d7ba6556f53256f95"
}, {
"file" : "yard.zip",
"url" : "www.xxx.xx/yard.zip",
"checksum" : "e66aa3d123f804f34afc622b5"
}
on irb Eu posso obter todos os sub-hashes dentro do exemplo: ['manifest'] ['files'] e só posso obter o URL se eu especificar qual .. como, por exemplo, coloca os arquivos file ['manifest'] [' '] [' 1 '] [' url '] <- isso funciona no irb, mas como eu preciso obter TODOS os URLs, é por isso que eu uso .each, mas isso me dá uma impossibilidade de converter em erro de string ou semelhante
#!/usr/bin/env ruby
require 'httparty'
HOST=ARGV[0]
ID=ARGV[1]
VERSION=ARGV[2]
class MyApi
include HTTParty
end
file = MyApi.get("http://#{HOST}/v1/dc/manifest/#{ID}/#{VERSION}")
file.each do |item|
puts item['manifest']['files']['url']
end
não está funcionando, mas no IRB poss
puts item ['manifest'] ['files'] [2] ['url'] <- e isso me fornecerá o URL, mas com o .each será apenas uma reclamação sobre não é possível converter para string ou semelhante