He leído que Ruby es ideal para idiomas específicos de dominio. En los últimos meses, he estado creando un juego de navegador, un tipo de RPG. En algún momento, me gustaría que los usuarios puedan realizar y finalizar misiones. Las misiones pueden ser cualquier cosa, desde matar x cantidad de mobs, matar a un jefe de banda, tal vez reunir algunos elementos y cosas por el estilo.¿Cómo diseñaría un DSL de este tipo en Ruby?
Todo el proceso suena intrigante y propenso a errores. También estaba pensando que sería una buena idea crear una DSL para ese asunto. Una forma de describir misiones en un lenguaje simple. Pero no tengo mucha experiencia con eso.
¿Crees que es una buena idea? Y si es así, ¿tiene algún consejo/tutorial para sugerir?
ambas respuestas me ayudaron mucho, elegiría las dos mejores. Aunque tengo que elegir uno, elegiré este para el libro de metaprogramación, que también parece una buena referencia. – Spyros
en 2012, probablemente no sea necesario reinventar la metaprogramación y superar los mismos obstáculos ... ¿tal vez revisar la gema Docile para implementar DSL? https://github.com/ms-ati/docile –