Eu sei que existem libs em outras línguas que podem pegar uma string que contém um caminho para um arquivo local ou um url e abri-lo como um fluxo IO legível.
Existe uma maneira fácil de fazer isso em rubi?
open-uri faz parte da biblioteca Ruby padrão e redefinirá o comportamento de open
para que você possa abrir uma url, bem como um arquivo local. Ele retorna um File
objeto, então você deve ser capaz de chamar métodos como read
e 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
não irá transmitir um arquivo, então você não pode ler os primeiros 4k dele.open-uri
lerá um arquivo inteiro na memória no momento da abertura.URI.parse('http://www.stackoverflow.com').open { |f| f.read }
Se você está procurando uma forma de segurar não ligueKernal.open
. Também contorna as regras de segurança do Rubocop.