나는 보석이 어디로 가야하는지 이해하려고 노력하고있다. 나는 보석으로 변환하려고하는 루비 스크립트를 썼다. 내 보석을위한 해골을 만들기 위해 bundler를 사용했습니다.내 보석을 어디에서 개발해야합니까?
이제 2 개의 파일 'Gemfile'과 'mygem.gemspec'이 있습니다.
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 개 보석에 의존하는 데 사용 내 Gemfile에
나는이 선 말을 가지고 , '팩터', '디버거', 'json'.
어디에서 추가합니까? 그리고 어떻게? 이 http://yehudakatz.com/2010/12/16/clarifying-the-roles-of-the-gemspec-and-gemfile/
이제 사람 (링크에서) 말한다 :
내가이 발견했다. 보석을 개발할 때 이", 중복을 피하기 위해 Gemfile에 gemspec 방법을 사용을 일반적으로, 보석의 Gemfile은 젬 소스와 하나의 gemspec 라인을 포함해야 ... "그것이로
그래서 내 gemspec 파일을 왼쪽 ..
전 C https://github.com/puppetlabs/facter/blob/master/Gemfile
.. 그리고 그의 gemspec은 다음과 같습니다 : hecked의 facter의 공식 저장소와 Gemfile은 지금 https://github.com/puppetlabs/facter/blob/master/.gemspec
왜 그는 Gemfile에 자신의 보석이없고, gemspec 아무것도 않습니다? 그는 단지 내가 읽은 것과 정반대로 행동하고 있습니다.
누군가 나를 분명하게 해줄 수 있습니까?
감사합니다.
감사합니다. 나는 아직도 약간 혼란 스럽다. 그럼 누군가가 내 보석을 설치한다고 가정 해 봅시다. 'gem install mygem'을 실행하면 gemspec에 모든 보석도 설치됩니다. 사용자가 이미 facter이지만 버전이 다른 경우에는 어떻게해야합니까? 그리고 다시 보석에 사용되는 Gemfile입니까? 언제 누군가가'bundle install '을 사용하여 보석을 설치합니까? U 일반적으로 gemfile에서 intall gems에 번들 설치를 사용합니까? –
'bundle install'은 프로젝트의 일관된 환경을 유지하기위한 것으로, 동시에 모든 버전 요구 사항을 모두 충족 시키려고합니다. 그래서 단순한 개방형 종속성이 가장 좋은 이유입니다. Gemfile은 Bundler에서 사용하기 때문에 보석 개발자는 개발할 수있는 일관성있는 종속성 집합을 가질 수 있습니다. 여기에는 시스템에 설치된 여러 버전의 대처 및 프로젝트에 사용할 버전 선택이 포함됩니다. gemfile이 직접 설치되어 있지 않은 경우, 설치 프로세스는'.gemspec '에 의해 내장 된 데이터를 사용합니다. –