2009-10-17 14 views
15

¿Cómo se usan las gemas de una aplicación MacRuby .5 en Snow Leopard? ¿Debo especificar la ruta de la gema? Si es así, ¿cómo hago esto?Uso de gemas con MacRuby

El mejor escenario es empaquetar las gemas dentro de la aplicación para que el usuario no tenga que instalarlas cuando se distribuya la aplicación.

+0

ACTUALIZACIÓN: Rb-appscript no funciona con MacRuby. Todavía no entiendo por qué nokogiri no es así. –

Respuesta

5

Yehuda Katz joya bundler es una muy buena opción en mi humilde opinión:

http://github.com/wycats/bundler

De todos modos, hay muchas otras opciones, como la creación de un vendedor/directorio en su paquete de aplicaciones de añadir cada subdirectorio proveedor para la biblioteca de rubí ruta de búsqueda en 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' 

estoy usando el último enfoque aquí:

http://github.com/rubiojr/canasto

+0

Esto es bueno, pero muy inconveniente para requerir una gema con muchas otras dependencias. – Overbryd

-5

primera u tendrá que instalar la gema:

$ sudo gem install gem_name 

entonces simplemente requieren en su programa, u tendrá a exigir a las 'rubygems también:

require 'rubygems' 
require 'gem_name' 
+0

Hola Raafat, Gracias por la respuesta. Tengo las gemas instaladas y las uso todos los días en scripts normales. Estoy requiriendo Rubygems y las gemas después de eso. El error es un error de carga. Estos están trabajando: requieren 'rubygems' requieren 'tocino' requerir 'net/http' requiere uri '' Esto no es. requieren 'nokogiri' requieren 'appscript' –

12

Para usar gemas en un proyecto MacRuby es necesario utilizar:

$ sudo macgem instalar gem_name

No todas las gemas son compatibles con MacRuby, sin embargo.

2

Las gemas que están escritas en C aún no se pueden usar en MacRuby. Por lo tanto, no nokogiri por el momento.

Para empaquetar las gemas, el recién lanzado MacRuby 0.5 beta 2 incluye la herramienta macrubyc, que empaqueta el marco MacRuby dentro de su paquete. También agregaron soporte para hacerlo directamente desde Xcode en solo un paso.

4

Si va a empaquetar una aplicación MacRuby también se puede añadir la bandera --gem con macruby_deploy en la pestaña "Info" para su destino de despliegue.

Esto pone la gema especificada en la carpeta site_ruby en lo profundo de su paquete.

Los argumentos que estoy pasando macruby_deploy para mi aplicación son:

--compile --embed --gem sequel --gem sqlite3 
Cuestiones relacionadas