Gemspec 应该与 Ruby Gem 一起包装吗?



我读到我们不应该用Ruby Gem打包测试文件。

现在我想知道,我们是否应该打包 Gemspec。

例如,给定以下 Ruby Gem:

tree .
.
├── LICENSE.txt
├── README.md
├── lib
│   └── simplegem.rb
├── simplegem.gemspec
└── test
├── simplegem_test.rb
└── thing_test.rb
2 directories, 6 files

我的 Gem::规格应该如下所示:

$LOAD_PATH.unshift 'lib'
require 'simplegem'
Gem::Specification.new do |s|
s.name        = 'simplegem'
s.version     = Simplegem::VERSION
s.licenses    = ['MIT']
s.summary     = 'This is a simple gem!'
s.description = 'Much longer explanation of the simple gem!'
s.authors     = ['...']
s.email       = '...'
s.files       = %w(simplegem.gemspec
LICENSE.txt
README.md
lib/simplegem.rb)
s.homepage    = 'https://github.com/mbigras'
end

或:

$LOAD_PATH.unshift 'lib'
require 'simplegem'
Gem::Specification.new do |s|
s.name        = 'simplegem'
s.version     = Simplegem::VERSION
s.licenses    = ['MIT']
s.summary     = 'This is a simple gem!'
s.description = 'Much longer explanation of the simple gem!'
s.authors     = ['...']
s.email       = '...'
s.files       = %w(LICENSE.txt
README.md
lib/simplegem.rb)
s.homepage    = 'https://github.com/mbigras'
end

请注意,第一个数组如何在s.files数组中包含simplegem.gemspec,而第二个数组不包含。

  • Gemspec 应该与 Ruby Gem 一起包装吗?
  • 为什么或为什么不呢?

没有必要将 Gemspec 与红宝石一起打包,在对安装在我的一个宝石家中的宝石进行调查时,我注意到实际上大多数宝石都不包含 gemspec 文件:

~/.rvm/gems/ruby-2.3.7/gems $ find . -name *.gemspec | wc -l
95
~/.rvm/gems/ruby-2.3.7@happy-backend/gems $ ls | wc -l
318

你为什么不想打包它?

  • 它可以在您的 GEM 中节省几个字节

为什么要打包?

  • 它可以轻松拆开和重新包装宝石
  • 为什么不呢? 无论如何,Gem 规范都会上传到 Gem 服务器,所以那里没有秘密,如果"用户"真的想要它,它将在$GEM_HOME/specifications文件夹中

相关内容

  • 没有找到相关文章

最新更新