2011-01-28 1 views
18

La gemma ha alcune dipendenze di sviluppo come ruby-debug19 e sqlite3-ruby dove il nome della gemma e il fabbisogno sono diversi. Gestiamo questo nel Gemfile usando l'opzione: require => 'foo'.Quando si utilizza 'gemspec' in un Gemfile come faccio: require => 'foo'

ad es.

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

stiamo cercando di spostare tutti questi al file gemspec e utilizzare la direttiva '' gemspec nel Gemfile.

nelle gemspec questi diventano:

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

C'è un modo per prevedere che: richiedono => opzione quando si utilizza s.add_dependency?

risposta

14

No, non è possibile, è comunque necessario sovrascrivere il valore nel file Gem.

source "http://rubygems.org" 

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

# Specify your gem's dependencies in .gemspec 
gemspec 

Un piccolo suggerimento: se si utilizza il sqlite3 gemma anziché sqlite3-ruby (che in realtà è lo stesso), quindi non è necessario specificare un diverso richiedono.

+1

Perché è quello? Add_development_dependency ha le stesse caratteristiche di: required => false? –

+2

Quindi suppongo che se vogliamo 'require: false' una dipendenza di sviluppo, allora dobbiamo specificare la gem in firstspec come dipendenza di sviluppo, quindi aggiungerla al Gemfile come dipendenza di sviluppo e' require: false'? – Dennis