Réponses:
open-uri fait partie de la bibliothèque Ruby standard, et il redéfinira le comportement de openafin que vous puissiez ouvrir une URL, ainsi qu'un fichier local. Il renvoie un Fileobjet, vous devriez donc pouvoir appeler des méthodes comme readet 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-uricela ne diffusera pas un fichier, vous ne pouvez donc pas en lire un premier 4k. open-urilira un fichier entier en mémoire au moment de l'ouverture.
URI.parse('http://www.stackoverflow.com').open { |f| f.read }Si vous cherchez un moyen de vous assurer, il n'appelle pas Kernal.open. Contourne également les règles de sécurité de rubocop.