2013-04-24 3 views
4

Что касается списка файлов для gemspecs.Каковы наилучшие методы обновления списка файлов gemspec?

Я заметил, что ювелир обновляет этот список вручную с перечислением файлов в проекте. например

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

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

end 

Есть ли доказательства того, что использование git ls-files или Dir.glob('**/*') для динамического создания списка файлов для gemspec вызывает проблемы с производительностью при использовании драгоценных камней в проектах (особенно рельсы проектов)? например?

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

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

end 
+0

Есть сообщения? –

ответ

1

Его отлично подходит для генерации списка файлов динамически. На самом деле, Gemspec Specification docs показывают несколько способов сделать это.

Из документов 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-files, потому что я не хотел бы предположить, что каждая система, использующая драгоценный камень будет установлен мерзавец на нем.

+0

Единственными системами, которые нуждаются в git, являются те, кто строит драгоценный камень правильно? – drewish

+0

Это правильно. – infused

Смежные вопросы