Antworten:
open-uri ist Teil der Standard-Ruby-Bibliothek und definiert das Verhalten neu, opensodass Sie sowohl eine URL als auch eine lokale Datei öffnen können. Es gibt ein FileObjekt zurück, daher sollten Sie in der Lage sein, Methoden wie readund aufzurufen 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-urinicht gestreamt wird, sodass Sie die ersten 4 KB nicht lesen können. open-uriliest beim Öffnen eine ganze Datei in den Speicher.
URI.parse('http://www.stackoverflow.com').open { |f| f.read }Wenn Sie nach einer Möglichkeit suchen, sich zu versichern, ruft es nicht an Kernal.open. Kommt auch um Rubocop-Sicherheitsregeln herum.