Saya tahu ada libs dalam bahasa lain yang dapat mengambil string yang berisi jalur ke file lokal atau url dan membukanya sebagai aliran IO yang dapat dibaca.
Apakah ada cara mudah untuk melakukan ini di ruby?
Saya tahu ada libs dalam bahasa lain yang dapat mengambil string yang berisi jalur ke file lokal atau url dan membukanya sebagai aliran IO yang dapat dibaca.
Apakah ada cara mudah untuk melakukan ini di ruby?
Jawaban:
open-uri adalah bagian dari pustaka Ruby standar, dan ini akan mendefinisikan ulang perilakunya opensehingga Anda dapat membuka url, serta file lokal. Ini mengembalikan sebuah Fileobjek, jadi Anda harus bisa memanggil metode seperti readdan 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-uritidak akan mengalirkan file, jadi Anda tidak dapat membaca 4k pertama darinya. open-uriakan membaca seluruh file ke memori pada saat dibuka.
URI.parse('http://www.stackoverflow.com').open { |f| f.read }Jika Anda mencari cara untuk memastikan itu tidak menelepon Kernal.open. Juga menyiasati aturan keamanan rubocop.