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 open
sehingga Anda dapat membuka url, serta file lokal. Ini mengembalikan sebuah File
objek, jadi Anda harus bisa memanggil metode seperti read
dan 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
tidak akan mengalirkan file, jadi Anda tidak dapat membaca 4k pertama darinya. open-uri
akan 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.