2011-01-28 24 views
18

Đá quý có một vài phụ thuộc phát triển như ruby-debug19 và sqlite3-ruby, nơi tên đá quý và các yêu cầu khác nhau. Chúng tôi xử lý điều này trong Gemfile bằng cách sử dụng tùy chọn: require => 'foo'.Khi sử dụng 'gemspec' trong Gemfile làm cách nào để thực hiện: require => 'foo'

ví dụ:

gem "sqlite3-ruby", :require => "sqlite3" 
gem 'ruby-debug19', :require => 'ruby-debug' 

Chúng tôi đang cố di chuyển tất cả các tệp này đến tệp gemspec và sử dụng chỉ thị 'gemspec' trong Gemfile.

trong gemspec những trở thành:

s.add_development_dependency "sqlite3-ruby" 
s.add_development_dependency 'ruby-debug19' 

Có cách nào để quy định rằng: yêu cầu => tùy chọn khi sử dụng s.add_dependency?

Trả lời

14

Không, bạn không thể, bạn vẫn cần ghi đè giá trị trong Gemfile.

source "http://rubygems.org" 

gem 'ruby-debug19', :require => 'ruby-debug' 

# Specify your gem's dependencies in .gemspec 
gemspec 

Small tip: nếu bạn sử dụng sqlite3 đá quý thay vì sqlite3-ruby (mà thực sự là như nhau), sau đó bạn không cần phải xác định yêu cầu khác nhau.

+1

Tại sao lại như vậy? Có add_development_dependency thực hiện điều tương tự như: required => false? –

+2

Vì vậy, tôi đoán nếu chúng ta muốn 'require: false' phụ thuộc vào phát triển, thì chúng ta cần xác định gem trong gemspec trước như là một phụ thuộc phát triển, sau đó thêm nó vào Gemfile như một phụ thuộc phát triển và' require: false'? – Dennis

Các vấn đề liên quan