Je sais qu'il existe des bibliothèques dans d'autres langues qui peuvent prendre une chaîne qui contient un chemin vers un fichier local ou une URL et l'ouvrir en tant que flux IO lisible.
Existe-t-il un moyen simple de le faire en rubis?
open-uri fait partie de la bibliothèque Ruby standard, et il redéfinira le comportement de open
afin que vous puissiez ouvrir une URL, ainsi qu'un fichier local. Il renvoie un File
objet, vous devriez donc pouvoir appeler des méthodes comme read
et 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
cela ne diffusera pas un fichier, vous ne pouvez donc pas en lire un premier 4k.open-uri
lira 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 pasKernal.open
. Contourne également les règles de sécurité de rubocop.