Я пытаюсь понять, куда должны идти камни. Я написал сценарий ruby, который я пытаюсь преобразовать в драгоценный камень. Я использовал спутник для создания скелета для своего драгоценного камня.Где я должен поместить свой камень в свой развивающийся камень?
Теперь у меня есть 2 файла «Gemfile» и «mygem.gemspec».
В моем Gemfile я получил 2 линии говоря:
source 'https://rubygems.org'
# Specify your gem's dependencies in cudruby.gemspec
gemspec
ого в моем 'mygem.gemspec' я получил:
# coding: utf-8
lib = File.expand_path('../lib', __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'mygem/version'
Gem::Specification.new do |spec|
spec.name = "mygem"
spec.version = Mygem::VERSION
spec.authors = ["mygem"]
spec.email = ["[email protected]"]
spec.summary = %q{mygem}
spec.description = %q{mygem}
spec.homepage = "http://www.mygem.com"
spec.license = "MIT"
spec.files = Dir["{lib}/**/*.rb", "bin/*", "LICENSE", "*.md"]
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
spec.require_paths = ["lib"]
spec.add_development_dependency "bundler", "~> 1.6"
spec.add_development_dependency "rake"
end
теперь мой рубиновый скрипт, используемый, чтобы полагаться на 3 драгоценных камнях , 'facter', 'debugger', 'json'.
Где их добавить? И как?
Я нашел это: http://yehudakatz.com/2010/12/16/clarifying-the-roles-of-the-gemspec-and-gemfile/
Теперь парень говорит (по ссылке):.
«При разработке жемчужину, используйте gemspec метод в Gemfile, чтобы избежать дублирования в целом, Gemfile драгоценного камня должна содержать источник Rubygems и один gemspec линию ...»
так что я оставил свой gemspec файл, как это было ..
I C Официальный репозиторий hecked facter и его Gemfile является: https://github.com/puppetlabs/facter/blob/master/Gemfile
..и его gemspec является: https://github.com/puppetlabs/facter/blob/master/.gemspec
теперь, почему не у него есть свои драгоценные камни в Gemfile, и ничто в gemspec? Он просто делает прямо противоположное тому, что я читаю.
Может ли кто-нибудь объяснить это мне, пожалуйста?
Спасибо!
Хорошо, спасибо большое. Тем не менее, я все еще немного смущен. Итак, скажем, кто-то устанавливает мой драгоценный камень, выполнив «gem install mygem», который также установит любые драгоценные камни в gemspec правильно? что, если пользователь уже имеет фактору, но имеет другую версию? и еще раз в этом случае Gemfile используется в драгоценном камне? когда кто-нибудь будет использовать 'bundle install' для установки драгоценного камня? U использует вас, чтобы установить intell gems из gemfile, как правило, нет? –
'bundle install' предназначен для обеспечения согласованной среды для проекта и будет одновременно выполнять все требования к версии из всех. Именно поэтому лучше всего использовать простую открытую зависимость. Gemfile используется Bundler, поэтому разработчик драгоценных камней может иметь согласованный набор зависимостей для разработки. Это включает в себя решение нескольких версий, установленных в системе, и выбор того, который будет использоваться для вашего проекта. Когда жемчуг * установлен *, процесс установки не использует 'Gemfile' напрямую, он использует данные, встроенные в него' .gemspec'. –