Odpowiedzi:
open-uri jest częścią standardowej biblioteki Ruby i przedefiniuje zachowanie, open
tak aby można było otworzyć adres URL, a także plik lokalny. Zwraca File
obiekt, więc powinieneś być w stanie wywołać metody takie jak read
i 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
nie będzie przesyłany strumieniowo pliku, więc nie możesz odczytać jego pierwszych 4k. w momencie otwarcia open-uri
odczyta 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.