2009-02-04 11 views
13

Piszę małą aplikację Obuwia, która wymaga biblioteki, którą napisałem przy pomocy mojej regularnej instalacji Ruby. Moja biblioteka używa klejnotu "net-ssh" i garstki innych bibliotek Ruby.Używanie bibliotek i klejnotów Ruby przy pomocy aplikacji Buty

Kiedy uruchamiam moją bibliotekę bezpośrednio z regularnym rubin (posiada własny interfejs wiersza poleceń) tak:

ruby my_lib.rb 

... wszystko jest w porządku. Ale gdy próbuję wymagać tego w mojej aplikacji butów, otrzymuję komunikat "brak takiego pliku do załadowania - net/ssh" (ponieważ my_lib używa net-ssh).

Próbowałem aprowizacji z $: include path zmienną w aplikacji obuwniczy tak:

$:.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' 

... ale nie miał powodzenia. Otrzymuję komunikat "Nie można znaleźć RubyGem net-ssh".

Ktoś miał ten sam problem? Jaki jest najlepszy sposób korzystania z bibliotek i klejnotów Ruby w aplikacji Buty?

Odpowiedz

17

Hej, _why posted on his blog, hackety.org, o używaniu klejnotów w Obuwie. Mam nadzieję, że to pomoże!

 
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, znalazłem nieco brzydkie rozwiązanie, które polegało po prostu na skopiowaniu plików gem 'net-ssh' do katalogu klejnotów Shoes, co jest dokładnie tym, co powinien zrobić "Shoes.setup", więc myślę, że Nie byłem tak daleki od prawdy! Dzięki! ;-) – Dema

+0

Hehe, bez problemu :) – baxter

2

Dla shoes4, metoda Shoes.setup jest przestarzała. Można zainstalować kamienie potrzebne przez:

  1. gem install net-ssh
  2. Korzystanie Bundler i Gemfile

Potem trzeba tylko require 'net-ssh' w aplikacji.

+0

Występuję ten sam problem. Moje lokalne środowiska były oparte na rvm, ale pewne klejnoty (czytnik pdf) nie zostały znalezione podczas uruchamiania w trybie uruchamiania lub w pakiecie. Musiałem spakować swoją aplikację. Następnie skopiuj klejnoty bezpośrednio do katalogu lib/gems, który jest częścią zawartości aplikacji Mac OS X (nie wiesz, czy to samo w oknach). Następnie spakuj zawartość do dystrybucji. Dobrze pracował. Jestem pewna, że ​​można skryptować pakowarkę, aby to zrobić. Obecnie nasze zmiany są rzadkością. Mac OS X 10.10. Buty federales – Ben

Powiązane problemy