2010-09-04 27 views
0

J'ai ajouté quelques fonctionnalités de mise en cache à la gem geokit et j'ai utilisé gemcutter pour créer une copie 'badnaam-geokit'. Les seuls changements sont dans Geocoders.rb qui fonctionne bien si je viens de le modifier localement. Cependant, après l'avoir publié sur rubygems et l'avoir installé en tant que 'badnaam-geokit' dans mon fichier environment.rb (config.gem "badnaam-geokit"), je deviens méchant.customisations gem

Des idées?

Voici la ma fourchette sur github

http://github.com/badnaam/geokit-gem

et est la pierre précieuse ici. http://rubygems.org/gems/badnaam-geokit

no such file to load -- badnaam-geokit 
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' 
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' 
/usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:156:in `require' 
/usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:521:in `new_constants_in' 
/usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:156:in `require' 
/usr/local/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/rails/gem_dependency.rb:208:in `load' 
/usr/local/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:307:in `load_gems' 
/usr/local/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:307:in `each' 
/usr/local/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:307:in `load_gems' 

Répondre

-1

J'ai utilisé l'option: lib.

C'est donc ce qui a fonctionné

config.gem "badnaam-Geokit",: lib => "Geokit"

+0

pourquoi est-ce que cela est downvoted? – badnaam

+0

Votre réponse a été postée après la réponse de @wuputah, vous devriez probablement supprimer votre réponse et accepter sa réponse. –

1

Bien que votre bijou a changé de nom, le nom de la bibliothèque n'a pas changé. Votre ligne config.gem indique à Rails de charger la gemme, puis require 'badnaam-geokit' mais il n'y a pas de fichier dans votre gemme de ce nom.

Le correctif, utilisez l'option :lib à config.gem:

config.gem 'badnaam-geokit', :lib => 'geokit' 

De plus, pousser des pierres précieuses pour Rubygems des changements comme celui-ci ne soit pas encouragée. Je vous suggère plutôt de passer votre projet Rails à use Bundler (works great with Rails 2.3.5), puis d'utiliser l'option :git pour charger la gemme directement à partir de votre fourche Github.

+0

Merci. Je garderai cela à l'esprit. La solution que vous recommandez génère la même erreur. J'ai mis dans l'option: require et cela ne semble pas prendre effet. Dois-je également installer la gemme geokit régulière? – badnaam

+0

Oups, ': require' est l'option Bundler; ': lib' est l'option' config.gem'. – wuputah