class Gem::RemoteFetcher

要約

リモートソースから Gem パッケージや Gem パッケージの情報を取得するためのクラスです。

目次

特異メソッド
インスタンスメソッド

継承しているメソッド

Gem::UserInteractionから継承しているメソッド
Gem::DefaultUserInteractionから継承しているメソッド

特異メソッド

fetcher -> Gem::RemoteFetcher[permalink][rdoc]

このクラスの唯一のインスタンスを返します。

インスタンスメソッド

connection_for(uri) -> Net::HTTP[permalink][rdoc]

HTTP コネクションを生成して返します。

既に接続している URI であれば、生成済みのコネクションを返します。また、必要があればプロキシを使用します。

[PARAM] uri:
接続先の URI を指定します。
download(spec, source_uri, install_dir = Gem.dir) -> String[permalink][rdoc]

source_uri から取得した Gem パッケージをキャッシュディレクトリに配置します。

既に Gem パッケージが存在する場合は、ファイルを置き換えませんが source_uri がローカルパス (file://) である場合は常にファイルを置き換えます。

[PARAM] spec:
Gem::Specification のインスタンスを指定します。
[PARAM] source_uri:
取得先の URI を指定します。
[PARAM] install_dir:
ダウンロードしたファイルの配置先を指定します。
[RETURN]
ローカルにコピーした Gem ファイルのパスを返します。
[EXCEPTION] Gem::RemoteFetcher::FetchError:
escape(str) -> String[permalink][rdoc]

URI 文字列をエンコードした文字列を返します。

[PARAM] str:
文字列を指定します。

[SEE_ALSO] URI.escape

fetch_path(uri, mtime = nil, head = false) -> String | Hash[permalink][rdoc]

与えられた URI からダウンロードしたデータを文字列として返します。

ヘッダ情報のみ取得した場合はハッシュを返します。

[PARAM] uri:
データ取得先の URI を指定します。
[PARAM] mtime:
更新時刻を指定します。
[PARAM] head:
真を指定するとヘッダ情報のみ取得します。
fetch_size(uri) -> Integer[permalink][rdoc]

与えられた URI からダウンロードするデータのサイズを返します。

[PARAM] uri:
データ取得先の URI を指定します。
file_uri?(uri) -> bool[permalink][rdoc]

"file://" で始まる文字列である場合は真を返します。そうでない場合は偽を返します。

[PARAM] uri:
URI を表す文字列を指定します。
get_file_uri_path(uri) -> String[permalink][rdoc]

与えられた URI から "file://" を取り除いた文字列を返します。

[PARAM] uri:
URI を表す文字列を指定します。
get_proxy_from_env -> URI | nil[permalink][rdoc]

環境変数にセットされている HTTP proxy の情報を取得して返します。

ここでチェックしている環境変数は以下の通りです。

normalize_uri(uri) -> String[permalink][rdoc]

URI のスキーム部分が欠けている場合に "http://" を補って返します。

[PARAM] uri:
URI 文字列を指定します。
open_uri_or_path(uri, last_modified = nil, head = false, depth = 0) -> StringIO | File[permalink][rdoc]
[PARAM] uri:
URI を指定します。
[PARAM] last_modified:
最終更新時刻を指定します。
[PARAM] head:
真を指定するとヘッダ情報のみ取得します。
[PARAM] depth:
現在のリダイレクト回数を指定します。
[EXCEPTION] Gem::RemoteFetcher::FetchError:
デフォルトでは 11 回リダイレクトした場合に発生します。 depth を指定すると 10 - depth 回より多くリダイレクトした場合にこの例外が発生するようになります。また HTTP のレスポンスが想定外のものの場合にも発生します。
request(uri, request_class, last_modified = nil) -> Net::HTTPResponse[permalink][rdoc]

与えられた URI に対してリクエストを実行し、Net::HTTPResponse を返します。

[PARAM] uri:
URI を指定します。
[PARAM] request_class:
Net::HTTP::HeadNet::HTTP::Get を指定します。
[PARAM] last_modified:
最終更新時刻を指定します。

[SEE_ALSO] Net::HTTP, Net::HTTP::Head, Net::HTTP::Get

reset(connection) -> Net::HTTP[permalink][rdoc]

与えられたコネクションをリセットします。

[PARAM] connection:
コネクションを指定します。
unescape(str) -> String[permalink][rdoc]

URI 文字列をデコードした文字列を返します。

[PARAM] str:
文字列を指定します。

[SEE_ALSO] URI.unescape