Risposte:
open-uri fa parte della libreria Ruby standard e ridefinirà il comportamento di in openmodo da poter aprire un URL, oltre a un file locale. Restituisce un Fileoggetto, quindi dovresti essere in grado di chiamare metodi come 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-urinon trasmetterà un file, quindi non puoi leggerne un primo 4k. open-urileggerà un intero file in memoria al momento dell'apertura.
URI.parse('http://www.stackoverflow.com').open { |f| f.read }Se stai cercando un modo per assicurarti non chiama Kernal.open. Inoltre aggira le regole di sicurezza di rubocop.