He estado trabajando en mi primer plugin de Rails 3, para empaquetar una función de ayuda sencilla que me gusta tener en el ApplicationHelper
de todas mis aplicaciones. Puede ver el código completo on Github.Crear una sencilla gema de ayudante de texto de Rails 3
Aquí es mi primer intento:
## lib/semantic_id.rb ##
require 'semantic_id/version'
module ::ActionView::Helpers::TextHelper
def semantic_id
string = String.new
case
when controller.action_name =~ /new|edit/
string += controller.action_name + "_"
when controller.action_name =~ /index|create/
string += controller.controller_name
else
string += controller.controller_name.singularize
end
string += "_view"
end
end
Ahora, esto funciona, pero como yo lo entiendo este no es el 'Rails 3 Way' de extender ActiveSupport o cualquier otro módulo de rieles. No he podido encontrar mucha documentación sobre cómo se supone que debes construir una gema de Rails 3. Traté de seguir la Guía de Rails, pero el método dado allí para agregar ayudantes no funcionó, o de lo contrario me faltaba algo.
Mi pregunta es: dando el código de arriba como un ejemplo de la funcionalidad que estoy buscando, ¿cómo convertir esto en una gema de plugin de Rails 3?
Gracias!
debe intentar usar la gema del joyero en la creación de su gema :) – corroded
En cuanto a las respuestas dadas, estoy roto porque confié en ambos para resolver este problema. El código de Alex me acercó, pero todavía me costaba imaginar cómo hacerlo cargar en la aplicación hasta que Noli publicó sus enlaces a mejores ejemplos de cómo armar una railtie. Así que, al final, la respuesta de Alex me ayudó a comenzar, mientras que Noli me ayudó a terminar. Tengo que ir con Noli en este caso, ya que sus enlaces hicieron la diferencia al final. ¡Gracias a ambos por sus respuestas consideradas! – Andrew