14

バンドルを使用してテストgemを作成したところ、読み取り不可能なコンテンツを含む.gemファイルが作成されたため、疑問に思いました。

  1. その.gemファイルには何が含まれていますか?これはバイナリデータですか?.gemファイルにはパッケージ化されたruby関数が含まれていると思っていたので

  2. この.gemファイルはRailsフレームワークでどのように使用されていますか?モジュールのようには見えないので

ありがとう

4

2 に答える 2

8

ファイルシステム上のファイルをチェックすると、何が起こっているかを確認できます。

Posix環境では、fileコマンドを使用してファイルを確認できます。

$: file bundler-1.3.0.gem          
bundler-1.3.0.gem: POSIX tar archive

ご覧のとおり、tarアーカイブです。つまり、これはバイナリファイルであり、ツールによってパッケージ化および管理されgemます。

これは「バイナリ」であるため、予想どおりに表示されません。

あなたは正しいです、そしてあなたはそれがパッケージ化されたルビーの「関数」を含んでいると考え続けることができます。

gemspecを介して含めるように指示したものはすべて(ただし、それを含めた場合)そこにあります。

Railsがgemfileをどのように使用するかに関しては、一般的にgemをシステムにインストールすることによって使用されますが、それがどのように行われるかは、環境の決定に部分的に依存します。

于 2013-03-09T09:26:59.887 に答える
5

A gem file is just a tar archive containing (at least) a gemspec file. There will also usually be ruby source files and possibly native code or supporting assets (for example a gem designed to be used with rails might also package some javascript). It is also common to include a README, CHANGELOG and other documentation.

于 2013-03-09T09:24:20.603 に答える