Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > rubygems/source_indexライブラリ > Gem::SourceIndexクラス

class Gem::SourceIndex

クラスの継承リスト: Gem::SourceIndex < Enumerable < Gem::UserInteraction < Gem::DefaultUserInteraction < Object < Kernel < BasicObject
extend: Gem::UserInteraction
aliases: Gem::Cache

要約

個々のソースから取得した全ての有効な Gem パッケージをインデックス化するためのクラスです。

Gem パッケージのフルネームと それぞれの Gem::Specification オブジェクトを対応付けます。

目次

特異メソッド
from_gems_in from_installed_gems installed_spec_directories load_specification new
インスタンスメソッド
add_spec add_specs dump each find_name gem_signature index_signature latest_specs length size load_gems_in outdated refresh! remove_spec search size spec_dirs spec_dirs= specification update

特異メソッド

from_gems_in(*spec_dirs) -> Gem::SourceIndex[permalink][rdoc]

引数で与えられたディレクトリに置かれている Ruby スクリプト形式の gemspec ファイルを使用して 新しいインスタンスを作成します。

[PARAM] spec_dirs:
gemspec ファイルが置かれているディレクトリを一つ以上指定します。
from_installed_gems(*deprecated) -> Gem::SourceIndex[permalink][rdoc]

与えられたパスをもとに、インスタンスを作成するファクトリメソッドです。

[PARAM] deprecated:
この引数は非推奨です。後方互換性のためにのみ提供されているので使用すべきではありません。

[SEE_ALSO] Gem::SourceIndex.from_gems_in

installed_spec_directories -> [String][permalink][rdoc]

gemspec ファイルがインストールされているディレクトリのリストを返します。

[SEE_ALSO] Gem.#path

load_specification(file_name) -> Gem::Specification | nil[permalink][rdoc]

与えられたファイル名から Ruby スクリプト形式の gemspec をロードして Gem::Specification のインスタンスを返します。

[PARAM] file_name:
ファイル名を指定します。
[EXCEPTION] SignalException:
gemspec をロードしているときに発生します。
[EXCEPTION] SystemExit:
gemspec をロードしているときに発生します。
new(specifications = {}) -> Gem::SourceIndex[permalink][rdoc]

与えられたハッシュを元に自身を初期化します。

[PARAM] specifications:
キーを Gem の名前、値を Gem::Specification のインスタンスとするハッシュを指定します。

インスタンスメソッド

add_spec(gem_spec) -> Gem::Specification[permalink][rdoc]

自身に引数で与えられた Gem::Specification のインスタンスを追加します。

[PARAM] gem_spec:
Gem::Specification のインスタンスを指定します。
add_specs(*gem_specs) -> Hash[permalink][rdoc]

自身に引数で与えられた Gem::Specification のインスタンスを全て追加します。

[PARAM] gem_specs:
複数の Gem::Specification のインスタンスを指定します。
dump -> ()[permalink][rdoc]

自身を Marshal.#dump します。

each {|full_name, gem| ... } -> Hash[permalink][rdoc]
each -> Enumerator

自身に登録されているそれぞれの Gem についてブロックを評価します。

find_name(gem_name, version_requirement = Gem::Requirement.default) -> Gem::Specification[permalink][rdoc]

短い名前で正確にマッチする Gem を返します。

[PARAM] gem_name:
Gem の名前を指定します。
[PARAM] version_requirement:

[SEE_ALSO] Gem::Requirement

gem_signature(gem_full_name) -> String[permalink][rdoc]

与えられた名前を持つ Gem の SHA256 ダイジェストを返します。

[PARAM] gem_full_name:
Gem の名前を指定します。
index_signature -> String[permalink][rdoc]

ソースインデックスの SHA256 ダイジェストを返します。

この値はインデックスが変更されると変化します。

latest_specs -> Array[permalink][rdoc]

自身に含まれる最新の Gem::Specification のリストを返します。

size -> Integer[permalink][rdoc]
length -> Integer

自身に含まれる Gem の個数を返します。

load_gems_in(*spec_dirs) -> self[permalink][rdoc]

引数で与えられたディレクトリに含まれる gemspec から自身を再構築して返します。

[PARAM] spec_dirs:
gemspec の含まれているディレクトリを複数指定します。
outdated -> Array[permalink][rdoc]

更新されていない Gem::Specification のリストを返します。

refresh! -> self[permalink][rdoc]

自身を再作成します。

[EXCEPTION] StandardError:
自身がディスクから読み込んで作成されていない場合に発生します。
remove_spec(full_name) -> Gem::Specification[permalink][rdoc]

引数で指定された名前を持つ Gem をインデックスから削除します。

引数で指定された条件を満たす Gem のリストを返します。

[PARAM] gem_pattern:
検索したい Gem を表す Gem::Dependency のインスタンスを指定します。
[PARAM] platform_only:
真を指定するとプラットフォームが一致するもののみを返します。デフォルトは偽です。
size -> Integer[permalink][rdoc]

自身のサイズを返します。

spec_dirs -> [String][permalink][rdoc]

Gem::SourceIndex#refresh! で自身を更新する時に使用するディレクトリを取得します。

spec_dirs=(dirs)[permalink][rdoc]

Gem::SourceIndex#refresh! で自身を更新する時に使用するディレクトリを設定します。

specification(full_name) -> Gem::Specification | nil[permalink][rdoc]

指定された名前の Gem::Specification オブジェクトを返します。

[PARAM] full_name:
Gem のフルネームを指定します。
update(source_uri, all) -> bool[permalink][rdoc]

第一引数で指定された URI を使用して自身を更新します。

[PARAM] source_uri:
更新に使用する URI を指定します。文字列か URI::Generic のサブクラスを指定します。
[PARAM] all:
偽を指定すると最新バージョンの Gem のみ取得します。真を指定すると全てのバージョンの Gem を取得します。