¿Cómo incrustar Ruby en C++?
scripting embedded-language (5)
El trago probablemente sea el camino a seguir ... pero el rubí no se incrusta demasiado bien ...
si quieres un lenguaje que se integre perfectamente en C ++, prueba lua
¿Cuál es la mejor manera de insertar Ruby como lenguaje de scripting en C ++? Usando ruby.h? ¿TRAGO? ¿Algo más? Lo que necesito es exponer algunos objetos de C ++ a Ruby y hacer que el intérprete de Ruby evalúe los scripts que acceden a estos objetos. No me importa extender Ruby o acceder a él en C ++.
Encontré este artículo sobre la incrustación de Ruby en C ++ , y si bien es muy útil, es algo viejo y me preguntaba si hay otros recursos sobre el tema (o implementaciones de código abierto de motores similares).
Es posible que desee ver a tinyrb .
Ruby proporciona un archivo README.EXT muy útil. Tiene mucha información sobre cómo extender Ruby y convertir entre tipos de C & Ruby.
También está este extracto del libro de la piqueta que cubre prácticamente lo mismo.
En mi caso, cuando agregué las secuencias de comandos de Ruby a mi aplicación, decidí no usar swig, porque mis necesidades eran muy simples y no quería agregar otra dependencia de compilación.
He estado trabajando en Rarity ( https://github.com/Plaristote/Rarity ), que hace dos cosas:
- Genera enlaces Ruby a partir de una descripción YML de su API C ++
- Permite la interacción con el script de Ruby de la manera más C ++ que existe
He resuelto una buena cantidad de preguntas (manejo de excepciones, recolección de basura) ... No he visto en ningún otro lado la generación de código que Rarity usa para hacer que tus enlaces cobren vida. Tampoco he visto ninguna otra lib que permita una conversión tan fácil entre los tipos C ++ y Ruby.
¡Creo que Rarity vale la pena! ¡Y me alegraría tener algunos comentarios también :)!
Rice se ve muy prometedor.