Extrayendo valores de un hash

Hola, estoy usando HTTParty para solicitar un archivo json remoto que necesito extraer de la URL para usar en una de mis pruebas ... el formato json es algo así 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 Puedo obtener todos los sub hashes dentro del ejemplo: ['manifiesto'] ['archivos'] y solo puedo obtener la url si especifico cuál ... como por ejemplo pone el archivo ['manifiesto'] ['archivos '] [' 1 '] [' url '] <- esto funciona en irb pero como necesito obtener TODAS las URL, es por eso que uso .each pero me da un error de conversión de cadena o similar

#!/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

no funciona pero puedo en IRB hacer un:

puts item ['manifest'] ['files'] [2] ['url'] <- y esto me dará la url pero con el .each solo se quejará de que no puedo convertir a string o similar

Respuestas a la pregunta(4)

Su respuesta a la pregunta