Sé que hay bibliotecas en otros idiomas que pueden tomar una cadena que contenga una ruta a un archivo local o una URL y abrirla como una secuencia de E / S legible.
¿Existe una manera fácil de hacer esto en ruby?
open-uri es parte de la biblioteca estándar de Ruby, y redefinirá el comportamiento de open
para que pueda abrir una URL, así como un archivo local. Devuelve un File
objeto, por lo que debería poder llamar a métodos como read
y readlines
.
require 'open-uri'
file_contents = open('local-file.txt') { |f| f.read }
web_contents = open('http://www.stackoverflow.com') {|f| f.read }
content = open("http://example.com").read
open-uri
no transmitirá un archivo, por lo que no puede leer un primer 4k de él.open-uri
leerá un archivo completo en la memoria en el momento de la apertura.URI.parse('http://www.stackoverflow.com').open { |f| f.read }
Si busca una forma de asegurarse, no llameKernal.open
. También evita las reglas de seguridad de Rubocop.