2012-02-02 2 views
4

입니다. 그래서 나는이 보석을 가지고 있으며 다른 많은 보석에 달려 있습니다. gemspec에서 말하는 동안보석이 여러 개 필요한 보석 파일은

s.add_dependency "haml" ... 

들러 상관하지 않는 것, 그래서 Gemfile에서 이러한 의존성을 반복해야합니다. 여러 개의 보석이 필요한 구문이 있습니까? 뭐 그런 (작동하지 않습니다) :

gem "so-and-so", 
    :git => "some-repo", 
    :require => ["this-gem", "that-gem", "and-what-not"] 

필요한 단지 내가 Bundler를 자신의 의존성을 관리하는 보석 자체에 보이는 것을 확신 하나의 객체

답변

0

허용하도록 보인다. 젬이 당신을 위해 그것을 수행하기 때문에 종속성을 지정하기 위해 이것과 같은 구문을 필요로하지 않아야한다고 생각하는 아이디어는 gemspec 파일입니다. As stated on the bundler docs의 경우 require 키워드는 '보석의 주 파일이 보석 이름과 다른 경우이를 요구하는 방법을 지정하십시오.'

보석이 s.add_dependency 'haml' ...을 가지고 있으며, 그 다음 작동하지 않는 중 보석의 gempsec 파일 오류, 또는 당신이 bundler의 버전이 오류가 있습니다 (또는 의존성 또는 무언가에 대해 알고 너무 오래)합니다. 나는 그것을 보석의 저자들에게보고 할 것이다.

젬에 어떤 문제가 있는지 또는 그 의존성이 put the gem and the other required gems it uses in a group이 될 때까지 사용할 수있는 하나의 임시 해결책은 웬만한 이유를 언급하는 Gemfile에 주석을 추가하는 것입니다.

어떤 보석에 문제가 있습니까? 이름을 지정하면 다른 사람들이 자신이 경험하고있는 것을 확인할 수 있거나 더 나은 도움을 줄 수 있습니다. 또한 쉘에서 gem dependency gem_name을 시도하면 어떻게됩니까?

+0

여기에 bundler로 확인하는 명령이 있습니까?이 보석은 사적인 git repo에서 유래했으며 루비 젬에게는 보이지 않습니다. (종속성이 충족되지 않는 원인이 될 수 있음) – Jan

+0

개인 소유의 보석도 비공개입니까? 그것이 사실 인 경우 아마 당신의 문제 일 것입니다. 그리고 아닙니다, 나는 번들러가 그런 명령을 가지고 있다고 생각하지 않습니다. 적절한 명령은'gem dependency' 일 것입니다, 그것은 bundler가 사용하는 것과 같습니다. 종속성 명령에 대한 [rubygems docs] (http://docs.rubygems.org/read/chapter/10#page78)를 참조하십시오. 또한 bundler는'sources' 지시어에 지정된 보석에서만 보석을 찾습니다. 따라서 의존하는 보석이'rubygems.org'에 호스트되어 있지 않다면 다른 광원을 추가하여 찾을 수있는 위치를 알려야 할 수도 있습니다 그 의존성. – Batkins

+0

방금 ​​확인한 repo는 실제로 개인용이 아니며 gemspec이 있습니다. https://bitbucket.org/janlimpens/portfolio-engine/src/11332e9045c4/portfolio_engine.gemspec 종속성은 잘 알려진 보석입니다. – Jan

0

gemspec을 종속성의 소스로 사용하도록 bundler에게 알려줘야합니다. 이를 위해, 단지 일반적으로 보석에 대한 귀하의 Gemfile

source "http://rubygems.org" 

# require this gem's dependencies 
gemspec 

에이를 삽입, 이것은 Gemfile의 유일한 내용입니다.

4

the Gemfile documentation에 따르면 간단히 배열을 전달할 수 있습니다.

require 'minitest/spec' 
require 'minitest/autorun' 

이 작업을 얻으려면 : Minitest에 대한 구문 설탕처럼 RSpec을 연구하고 내가 필요 거라고 지적하면서이 질문을했다. 나는 여러가 전에 Gemfile에서 필요로 해본 적이 것, 그리고 인터넷 검색이 질문에 나를 여기에 인도, 더 많은 인터넷 검색은 상태 Gemfile 문서를 알려준 : Gemfile 내 자신에 따라서

REQUIRE AS (:require) 
Each gem MAY specify files that should be used when autorequiring via 
Bundler.require. You may pass an array with multiple files, or false 
to prevent any file from being autorequired. 

gem "sqlite3-ruby", :require => "sqlite3" 
gem "redis", :require => ["redis/connection/hiredis", "redis"] 
gem "webmock", :require => false 

내가

을 포함했다 완벽하게 작동 및 I보다 더 좋은 읽고 찾을 수

describe 'basic crud' do 
    it 'must create a user with valid details' do 
    User.transaction do 
     user = User.create!(username: 'test', password: 'pass') 
     user.username.must_equal 'test' 
     user.destroy 
    end 
    end 
end 

같은 테스트를 작성하는 나를 수

group :test do 
    gem 'minitest', require: ['minitest/autorun', 'minitest/spec'] 
    gem 'rack-test', require: 'rack/test' 
    gem 'simplecov', require: false 
end 

assert_equals user.username, 'test'과 내게 익숙한 before :each do…after :all do… 준비 및 정리 방법에 대한 액세스를 제공합니다.

관련 문제