4

gemspecsのファイル一覧について。

ジュエラーがプロジェクト内のファイルのリストでこのリストを手動で更新していることに気付きました。例えば

Gem::Specification.new do |s|
  # stuff

  s.files = [
    "lib/somegem.rb",
    "README.md"
  ]
  # ... more stuff

end

git ls-filesプロジェクト (特に Rails プロジェクト) 内で gem を使用する場合、またはを使用Dir.glob('**/*')して gemspec のファイル リストを動的に生成すると、パフォーマンスの問題が発生するという証拠はありますか? 例えば?

Gem::Specification.new do |s|
  # stuff

  s.files = `git ls-files`.split("\n")
  # ... more stuff

end
4

1 に答える 1

1

ファイルのリストを動的に生成するのはまったく問題ありません。実際のところ、Gemspec 仕様のドキュメントには、これを行うためのいくつかの方法が示されています。

Rubygems のドキュメントから:

require 'rake'
spec.files = FileList['lib     .rb',
                      'bin/*',
                      '[A-Z]*',
                      'test/   *'].to_a

# or without Rake...
spec.files = Dir['lib/   *.rb'] + Dir['bin/*']
spec.files += Dir['[A-Z]*'] + Dir['test/**/*']
spec.files.reject! { |fn| fn.include? "CVS" }

git ls-filesgem を使用するすべてのシステムに git がインストールされているとは限らないため、私は上記の方法に固執し、 を使用しません。

于 2014-06-27T17:40:48.513 に答える