2010-11-23 4 views
11

私はRailsが新しく、宝石のコンセプトについては混乱しています&プラグイン。誰も私のためにそれらを説明することはできますか?gemとpluginの違いは何ですか?

+0

[Ruby on Railsでは、何かを宝石やプラグインとしてインストールするのとは何ですか?](http://stackoverflow.com/questions/3629919/in-ruby-on-rails-whats-インストールの違い - 宝石としての何か - または - –

答えて

1

プラグインはますます使用されているので、宝石にこだわる。宝石とプラグインはまったく同じことをすることができます。そのため、彼らは混乱しています。しかし、違いはどのように組織されているのか、最も重要なのはbundlerconfig.gemのような宝石の管理方法です。宝石とそのバージョンを管理する方がはるかに簡単です。プラグインはvendorフォルダにインストールする必要があります。gemsは、カスタマイズする必要がある場合はそのフォルダにインストールすることも、レールがそのディレクトリの場所を理解している限りgemディレクトリにインストールすることもできます。レールが始まったとき、プラグインを使用して機能を追加しましたが、開発者はすぐに宝石がライブラリをパッケージ化し更新するより良い方法を提供していることに気がついたので、ほとんどのプラグインが宝石に移行し、

8

プラグインは特定のディレクトリからロードされたライブラリです。宝石はBundlerまたはRubyGemsで直接ロードされます。

ここでは、これが実際に違いを生むのは、保守と管理です。最新かつ最高のauthlogicプラグインが必要な場合はどうなりますか、ディレクトリ内のファイルを更新する必要があります。それは1つのプラグインだとそれほど悪くはありませんが、常に更新されるものはどうですか?そのようなものを管理するのに役立つ既存のコードパッケージングおよび配布システム(RubyGems)がありました。

もう一度authlogicの例を考えてみます。新しいバージョンでは他の依存関係が必要な場合はどうなりますか? RubyGemsではgemファイルがその関係を明示的に定義しますが、プラグインシステムはそうではなく、そのような定義は重複していました。

レール3.xのBundlerの出現により、あなたのプロジェクトが使用する宝石の管理と配布が非常に簡単になりました。

TL; DR:プラグインは基本的にパッケージ情報のない宝石です。

-1

ジェムとプラグイン

GEMは

AジェムRubyGemsのによって定義されたパッケージングシステムを使用して、パッケージ化されたRubyアプリケーションでLIBファイルに格納されています。

プラグインは、ベンダー/プラグイン

Aレールプラグインに格納されているコアレールフレームワークを拡張パッケージ化Rubyアプリケーションです。