我刚刚使用bundle创建了一个测试gem,它创建了一个内容不可读的.gem文件,所以我想知道
.gem文件包含什么内容?这是二进制数据吗?我以前认为.gem文件包含打包的ruby函数
rails框架如何使用这个.gem文件?因为它看起来不像模块
由于
答案 0 :(得分:7)
如果检查文件系统上的文件,您可以看到发生了什么。
在Posix环境中,您可以使用file命令检查文件:
$: file bundler-1.3.0.gem
bundler-1.3.0.gem: POSIX tar archive
正如您所看到的那样,它是一个tar存档。因此它是一个二进制文件,由gem
工具打包和管理。
它是'二进制',所以你不会像预期的那样看到它。
你是对的,你可以继续认为它包含打包的ruby'函数'。
你告诉它通过你的gemspec包含的所有内容(不过你包括它)都在那里。
就Rails如何使用gemfile而言,它通常通过将gem安装到您的系统来使用,如何完成部分取决于您的环境决策。
答案 1 :(得分:5)
gem文件只是一个包含(至少)gemspec文件的tar存档。通常还会有ruby源文件以及可能的本机代码或支持资产(例如,设计用于rails的gem也可能包含一些javascript)。包括README,CHANGELOG和其他文档也很常见。