Câu trả lời:
open-uri là một phần của thư viện Ruby tiêu chuẩn và nó sẽ xác định lại hành vi của open
nó để bạn có thể mở một url, cũng như một tệp cục bộ. Nó trả về một File
đối tượng, vì vậy bạn có thể gọi các phương thức như read
và 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
sẽ không truyền trực tuyến một tệp, vì vậy bạn không thể đọc 4k đầu tiên của nó. open-uri
sẽ đọc toàn bộ tệp vào bộ nhớ tại thời điểm mở.
URI.parse('http://www.stackoverflow.com').open { |f| f.read }
Nếu bạn đang tìm cách để đảm bảo nó không gọi Kernal.open
. Cũng nhận được xung quanh các quy tắc bảo mật rubocop.