Odpowiedzi:
open-uri jest częścią standardowej biblioteki Ruby i przedefiniuje zachowanie, opentak aby można było otworzyć adres URL, a także plik lokalny. Zwraca Fileobiekt, więc powinieneś być w stanie wywołać metody takie jak readi 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-urinie będzie przesyłany strumieniowo pliku, więc nie możesz odczytać jego pierwszych 4k. w momencie otwarcia open-uriodczyta do pamięci cały plik.
URI.parse('http://www.stackoverflow.com').open { |f| f.read }Jeśli szukasz sposobu na ubezpieczenie to nie dzwonię Kernal.open. Również omija zasady bezpieczeństwa Rubocop.