Извлечение значений из хеша
Здравствуйте, я использую HTTParty для вызова удаленного файла json, который мне нужен для извлечения URL для использования в одном из моих тестов ... формат json выглядит примерно так:
"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"
}
на irb я могу получить все вложенные хэши внутри примера: ['manifest'] ['files'], и я могу получить только URL, если я укажу, какой из них .. как, например, помещает file ['manifest'] ['files' ] ['1'] ['url'] <- это работает на irb, но так как мне нужно получить ВСЕ url, именно поэтому я использую .each, но это дает мне невозможное преобразование в строковую ошибку или подобное
#!/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
не работает, но я могу на IRB сделать:
помещает элемент ['manifest'] ['files'] [2] ['url'] <- и это даст мне URL, но с .each будет просто жаловаться на невозможность преобразования в строку или подобное