2009-02-04 7 views
13

J'écris une petite application Shoes qui nécessite une bibliothèque que j'ai écrite avec mon installation régulière de Ruby. Ma bibliothèque utilise la gemme 'net-ssh' et un tas d'autres bibliothèques Ruby.Utilisation des bibliothèques et gemmes Ruby avec une application Shoes

Quand je lance ma bibliothèque directement avec rubis régulière (il a sa propre interface de ligne de commande) comme ceci:

ruby my_lib.rb 

... tout va bien. Mais quand j'essaie de l'exiger dans mon application Shoes, j'obtiens une erreur 'no tel fichier à charger - net/ssh' (car my_lib utilise net-ssh).

J'ai essayé de déconner avec le $: inclure variable de chemin dans l'application Chaussures comme ceci:

$:.unshift "C:/ruby/lib/ruby/1.8" 
$:.unshift "C:/ruby/lib/ruby/site_ruby/1.8" 
require 'rubygems' 
gem 'net-ssh' 
require 'my_lib.rb' 

... mais sans succès. Je reçois «Impossible de trouver RubyGem net-ssh».

Quelqu'un at-il eu le même problème? Quelle est la meilleure façon d'utiliser vos bibliothèques et gemmes Ruby dans une application Chaussures?

Répondre

17

Hey, _why posted on his blog, hackety.org, à propos de l'utilisation de gemmes dans les chaussures. J'espère que ça aide!

 
Shoes.setup do 
    gem 'json >= 1.1.1' 
    gem 'activerecord' 
end 

require 'json' 
require 'activerecord' 

Shoes.app do 
    @msg = para "ALL SYSTEMS GO" 
    animate(20) { @msg.toggle } 
end 
+0

baxter, j'ai trouvé une solution quelque peu laide, qui consistait simplement à copier les fichiers gem 'net-ssh' dans le répertoire de Shoes gem, ce qui est exactement ce que le "Shoes.setup" est censé faire, donc, je suppose Je n'étais pas si loin de la vérité! Merci! ;-) – Dema

+0

Hehe, pas de problème :) – baxter

2

Pour shoes4, la méthode Shoes.setup est dépréciée. Vous pouvez installer les pierres précieuses dont vous avez besoin soit:

  1. gem install net-ssh
  2. En utilisant Bundler et un Gemfile

Ensuite, il vous suffit de require 'net-ssh' dans votre application.

+0

J'ai connu le même problème. Mes environnements locaux étaient tous basés sur RVM mais certaines gemmes (pdf-reader) n'ont pas été trouvées lors de l'exécution en mode de lancement ou empaquetées. J'ai dû emballer mon application. Copiez ensuite les gemmes directement dans le répertoire lib/gems qui fait partie du contenu des applications Mac OS X (pas sûr s'il en est de même sur Windows). Ensuite, compresser ce contenu pour la distribution. J'ai bien travaillé. Je suis sûr que vous pourriez écrire un script à l'emballeur pour le faire. Out change notre actuellement peu fréquent. Mac OS X 10.10. Chaussures federales – Ben

Questions connexes