2009-10-17 62 views
15

如何使用Snow Leopard上的MacRuby .5應用程序中的寶石?我是否需要指定寶石路徑?如果是這樣,我該怎麼做?在MacRuby中使用Gems

最佳方案是將寶石包裝在應用程序中,以便用戶在分發應用程序時不必安裝寶石。

+0

UPDATE: RB-appscript不MacRuby的工作。仍然不明白爲什麼nokogiri不是。 – 2009-10-18 00:54:17

回答

5

耶胡達·卡茨寶石捆綁是一個非常好的選擇恕我直言:

http://github.com/wycats/bundler

無論如何,有很多其他的選擇,如在你的應用程序包創建一個供應商/目錄添加每個供應商子目錄的Ruby庫在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' 

我使用的是後一種方法在這裏:

http://github.com/rubiojr/canasto

+0

這很好,但是對於需要與許多其他依賴項相關的gem非常不方便。 – Overbryd 2012-02-02 16:24:23

-5

1ü將不得不安裝寶石:

$ sudo gem install gem_name 

然後簡單地要求它在你的計劃,你也會有要求「的rubygems」也:

require 'rubygems' 
require 'gem_name' 
+0

嗨Raafat, 感謝您的答覆。我已經安裝了寶石,並且每天都在正常腳本中使用它們。之後我需要rubygems和寶石。該錯誤是一個加載錯誤。 這些工作: 需要 'RubyGems的' 需要 '培根' 要求 '淨/ HTTP' 需要 'URI' 這是沒有的。 需要'nokogiri' 需要'appscript' – 2009-10-18 00:31:05

12

要使用的寶石在一個MacRuby的項目,你需要使用:

$ sudo的macgem安裝gem_name

不是所有的寶石都與MacRuby兼容。

2

用C編寫的寶石在MacRuby中尚不可用。所以,暫時沒有nokogiri

爲了打包寶石,剛發佈的MacRuby 0.5 beta 2包含工具macrubyc,該工具將MacRuby框架打包到您的包中。他們還支持直接從Xcode中完成這一操作。

4

如果您要打包MacRuby應用程序,您還可以在部署目標的「信息」選項卡下爲macruby_deploy添加--gem標誌。

這會將指定的gem放置在包中深處的site_ruby文件夾中。

我傳遞macruby_deploy我的應用程序的參數是:

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