2009-10-17 12 views
15

Jak korzystać z klejnotów z aplikacji MacRuby .5 w systemie Snow Leopard? Czy muszę określić ścieżkę klejnotu? Jeśli tak, jak to zrobić?Używanie klejów z MacRuby

Najlepszy scenariusz to pakowanie klejnotów wewnątrz aplikacji, aby użytkownik nie musiał ich instalować podczas dystrybucji aplikacji.

+0

UPDATE: Rb-appscript nie działa z MacRuby. Nadal nie rozumiem, dlaczego nokogiri nie jest. –

Odpowiedz

5

Yehuda Katz gem Bundler jest bardzo dobrym rozwiązaniem IMHO:

http://github.com/wycats/bundler

W każdym razie, istnieje wiele innych opcji, takich jak stworzenie vendor/katalogu w aplikacji pakietu dodając każdy podkatalog dostawcy do biblioteki ruby ścieżka przeszukiwania w rb_main.rb:

$:.unshift File.join(File.dirname(__FILE__), 'vendor/rest-client/lib') 
$:.unshift File.join(File.dirname(__FILE__), 'vendor/crack/lib') 
require 'rest-client' 
require 'crack' 

Używam drugie podejście tutaj:

http://github.com/rubiojr/canasto

+0

To jest ładne, ale bardzo niewygodne, ponieważ wymaga klejnotów z wieloma innymi zależnościami. – Overbryd

-5

1-ty u będą musieli zainstalować gem:

$ sudo gem install gem_name 

po prostu wymaga to od używanego programu, u będzie musiał nakazać 'RubyGems' również:

require 'rubygems' 
require 'gem_name' 
+0

Cześć Raafat, Dzięki za odpowiedź. Mam zainstalowane klejnoty i używam ich codziennie w normalnych skryptach. Po tym wymagam rubygem i klejnotów. Błąd jest błędem ładowania. te pracują: require 'rubygems' wymagać 'boczek' wymagać 'netto/http' wymagać 'URI' To nie jest. wymagają 'nokogiri' wymagają 'appscript' –

12

Aby użyć klejnotów projekt MacRuby trzeba użyć:

$ sudo macgem zainstalować gem_name

Nie wszystkie klejnoty są kompatybilne z MacRuby.

2

Kamienie, które są napisane w C, nie są jeszcze dostępne w MacRuby. Tak więc, na razie nie ma nokogiri.

Aby spakować klejnoty, właśnie wydany MacRuby 0.5 beta 2 zawiera narzędzie macrubyc, które pakuje strukturę MacRuby wewnątrz twojego pakietu. Dodali również wsparcie dla robienia tego bezpośrednio z Xcode w jednym kroku.

4

Jeśli pakujesz aplikację MacRuby, możesz również dodać flagę --gem pod numeremw zakładce "Informacje" dla celu wdrożenia.

Spowoduje to umieszczenie określonego klejnotu w folderze site_ruby głęboko w pakiecie.

Argumenty olewam macruby_deploy dla mojej aplikacji są:

--compile --embed --gem sequel --gem sqlite3