Respostas:
open-uri faz parte da biblioteca Ruby padrão e redefinirá o comportamento de openpara que você possa abrir uma url, bem como um arquivo local. Ele retorna um Fileobjeto, então você deve ser capaz de chamar métodos como reade 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-urinão irá transmitir um arquivo, então você não pode ler os primeiros 4k dele. open-urilerá 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 ligue Kernal.open. Também contorna as regras de segurança do Rubocop.