Відповіді:
open-uri є частиною стандартної бібліотеки Ruby, і вона перегляне поведінку, openщоб ви могли відкрити URL-адресу, а також локальний файл. Він повертає Fileоб'єкт, тому ви повинні мати можливість викликати такі методи, як readі 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не передаватиметься потоково , тому ви не можете прочитати перші 4 к. open-uriпрочитає цілий файл в пам'ять у момент відкриття.
URI.parse('http://www.stackoverflow.com').open { |f| f.read }Якщо ви шукаєте спосіб страхувати, це не вимагає Kernal.open. Також обходить правила безпеки rubocop.