Ruby 2.7.0 リファレンスマニュアル > ライブラリ一覧 > open-uriライブラリ > URIモジュール > open

singleton method URI.open

open(name, mode = 'r', perm = nil, options = {}) -> StringIO | Tempfile | IO[permalink][rdoc] [added by open-uri]
open(name, mode = 'r', perm = nil, options = {}) {|ouri| ...} -> object [added by open-uri]

name が http:// や https://、ftp:// で始まっている文字列なら URI のリソースを取得した上で StringIO オブジェクトまたは Tempfile オブジェクトとして返します。返されるオブジェクトは OpenURI::Meta モジュールで extend されています。

name に open メソッドが定義されている場合は、*rest を引数として渡し name.open(*rest, &block) のように name の open メソッドが呼ばれます。

これ以外の場合は、name はファイル名として扱われ、従来の Kernel.#open(name, *rest) が呼ばれます。

ブロックを与えた場合は上の場合と同様、name が http:// や https://、ftp:// で始まっている文字列なら URI のリソースを取得した上で StringIO オブジェクトまたは Tempfile オブジェクトを引数としてブロックを評価します。後は同様です。引数のオブジェクトは OpenURI::Meta モジュールで extend されています。

[PARAM] name:
オープンしたいリソースを文字列で与えます。
[PARAM] mode:
モードを文字列で与えます。Kernel.#open と同じです。
[PARAM] perm:
open(2) の第 3 引数のように、ファイルを生成する場合のファイルのパーミッションを整数で指定します。Kernel.#open と同じです
[PARAM] options:
ハッシュを与えます。詳しくは OpenURI.open_uri を参照してください。
[EXCEPTION] OpenURI::HTTPError:
対象となる URI のスキームが http であり、かつリソースの取得に失敗した時に発生します。
[EXCEPTION] Net::FTPError:
対象となる URI のスキームが ftp であり、かつリソースの取得に失敗した時に Net::FTPError のサブクラスが発生します。詳しくは net/ftp を参照して下さい。

[SEE_ALSO] Kernel.#open, OpenURI.open_uri