BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース RubyGems、プラグインを取得

RubyGems、プラグインを取得

原文(投稿日:2009/4/22)へのリンク

近ごろリリースされたRubyGemsバージョン1.3.2(リンク)は軽度のバグ修正のリリースにとどまらず、新しい機能も搭載している。

RubyGems 1.3.2以降、RubyGemsはgemsまたは$LOAD_PATHにインストールされたプラグインをロードする。プラグインは「rubygems_plugin」と名前を付けられ、Gem::find_filesを通じて、発見されて、ロードされる。

Ryan Davis氏が例を示している。Graphプラグイン(リンク)がインストールされたGemの依存性および情報(廃れた、入ってくる依存性)のグラフを生成する。

RubyGemsプラグインの一般的な考えについて、RubyGemsのメンテナーであるEric Hodel氏に話を聞いた。

RubyGemsの機能要求トラッカーには、追加したくなるような多くのものがあり、そのいくつかはスタンドアロンパッケージとして実行可能である。また、インストール時に行いたいこともある。さもなければユーザによる手動の介入が必要となる。

プラグインは、Neil Wilson氏からのパッチで開始し、Debianのため、RubyGemsへのインストールフックを追加する。それによりその両者の統合をますます簡単にする。 そのパッチを使用し、RubyGemsが 起動時に必要となる2つの特別なファイルを追加した。特殊機能を追加するためのrubyパッケージ向け rubygems/defaults/operating_system.rbおよびruby実装者向けrubygems/defaults/# {RUBY_ENGINE}.rbである。たとえば、起動時間を減らすために、Rubiniusはgemのすべての.rbファイルを事前コンパイルするこ とができる。.

同時期にgem作成者が独自のプラグインシステムを簡単に構築できるようにするGem.find_filesを追加した。RDocは、これを使用し、そのプラグインを自動的にロードする。

RDocに対し多少優れていることが判明したので、RubyGemsが同様の機能を備えるべきである。

プラグインが、RubyGemsのあらゆる可能な方面を利用する包括的な方法を持つようにしなかった。現在簡単にアクセスできない領域を利用したいことは確実である。そして彼らがRubyGemsに対して機能要求を提出してくれることを希望する。完全な新機能を維持するよりも、プラグイン向けにAPIを多少改善するほうが、はるかに簡単である。

希望としては、創造的な人たちがRubyGemでシップしたり、維持する必要がない素晴らしく便利なものを提供してくれることである。

Graphプラグインの他に、rubypan.org(リンク)を検索するためのrubypan(リンク)もあり、「gemのインストールやアンインストール時にアップデートされる、riデータからOS Xディクショナリを作成するプラグイン」で機能する。

プラグインライターはRubyGems事前および事後インストールおよびアンインストールアクションに接続できる。Gem Documentation(リンク)を参照のこと。独自のコマンド向けののプラグインを記述することも簡単である。Gem::CommandManager(リンク)でコマンドをサブクラス化(リンク)して、登録する。

プラグインで提供可能な RubyGemsの機能がないか?

この記事に星をつける

おすすめ度
スタイル

BT