rails plantillas official gemas framework ejemplos caracteristicas ruby-on-rails rubygems ruby-on-rails-plugins

ruby on rails - plantillas - Construyendo una gema de rubí para aplicaciones de rieles



ruby on rails official website (4)

Como desarrollador de Rails, me siento un poco estúpido al hacer esta pregunta, ¡pero espero aprender algo nuevo y que alguien pueda sacarme de mi miseria! En las aplicaciones de rieles que uso (otras personas) gemas todo el tiempo, también uso complementos de la comunidad o los míos.

¿Entiendo los beneficios de usar gemas sobre complementos, ya que son compatibles con versiones, segmentados, de todo el sistema, más fáciles de administrar y compartir, etc., pero no sé cómo hacer una gema para mis aplicaciones de rieles.

¿Siempre empiezas con un complemento y lo conviertes en una gema? He visto las palabras ''empaquetarlo como una gema''. Además, la gema que estoy pensando en construir no sería buena en un programa normal de rubí, solo es útil para aplicaciones de rieles. ¿Ni siquiera estoy seguro de que la semántica de eso tenga sentido, ''RubyGem'' que solo funcione en una aplicación de rieles?

Me gustaría crear una gema (si eso es lo que debo usar?) Para una pieza discreta de funcionalidad para mis aplicaciones de rieles. Tendrá que agregar una migración de base de datos, nuevas rutas y proporcionar controladores y vistas o ayudantes de vista útiles. Sé que puedo lograr esto a través de un plug-in, pero me gustaría saber cómo / por qué hacerlo como una ''gema Ruby''?



Echa un vistazo a Jeweler . Jeweler te da un conjunto de tareas de rake para que la creación de versiones de gemas y la construcción sean muy fáciles.


Para evitar el riesgo de un exceso de ingeniería, generalmente comienzo con la función que necesito directamente en la aplicación. Luego, tan pronto como necesite usar la misma característica en otro proyecto, verifico si vale la pena extraerlo en un complemento o incluso en una aplicación independiente que proporcione una API.

Los complementos y las gemas son a menudo intercambiables. Las gemas proporcionan varias ventajas significativas en términos de reutilización y mantenimiento. Por otro lado, hay algún problema conocido específico. Por ejemplo, una aplicación Rails en realidad no puede cargar tareas de rake definidas en un complemento empaquetado como una gema.

Casi todos los complementos de Rails se pueden empaquetar como una gema. Por ejemplo, toma mi complemento tabs_on_rails .

Puede instalarlo como una gema especificando la dependencia en environment.rb. O puede usar el comando de script/plugin install como usted esperaría.

Si desea obtener el mismo resultado, asegúrese de seguir el diseño de Gem estándar y de proporcionar el init.rb inicialización init.rb requerido por Rails. Además, es posible que desee crear un archivo install.rb y uninstall.rb para incluir los ganchos posteriores a la instalación y posteriores a la desinstalación cuando el complemento se instala como un complemento estándar de Rails.

Por último, pero no menos importante, si empaqueta un complemento como Gem, puede reutilizarlo en proyectos que no sean de Rails y proporcionar inicializaciones específicas de Rails utilizando el archivo init.rb Las aplicaciones que no sean Rails simplemente lo ignorarán.