Utils
Las utils son helpers que nos permiten agrupar métodos relacionados. Tienen las siguientes particularidades:
No tienen lógica del dominio de la aplicación donde se usan.
Suelen ser clases estáticas.
Su uso normalmente se repite por toda la aplicación.
¿Por qué la usamos?
Usamos utils porque Rails no define un lugar específico para este tipo de helpers.
En Rails todo lo que no es del dominio de una app se coloca dentro de /lib
. En platanus reservamos este directorio para toda aquella lógica que sea candidata a convertirse en una gema y no para simples helpers.
¿Cómo la usamos?
Instalación
Vienen con la gema power-types que normalmente viene instalada en nuestro proyectos generados con potassium.
Uso básico
Luego de instalada la gema, se corre el generador:
bin/rails generate util util_name method_1 method_2 method_n
Por ejemplo si queremos crear una clase util para simplificar el uso de enums podemos hacer:
bin/rails generate util Enums translate_enum_attr translate_aasm_attr enum_options_for_select
Esto generará el helper en: app/utils/enums_utils.rb
Luego se usaría así:
Repasemos las particularidades de las utils contra el ejemplo:
“No tienen lógica del dominio de la aplicación donde se usan.” → En este caso se cumple ya que
EnumsUtils
podría moverse a otra aplicación y seguiría funcionando. No hay lógica específica del proyecto.“Suelen ser clases estáticas.” → Como se puede ver
translate_enum_attr
yenum_options_for_select
son métodos de clase. No crea una instancia deEnumUtils
en ningún momento.“Su uso normalmente se repite por toda la aplicación” → Sirve para el modelo
Supply
que usamos en el ejemplo pero también podría servir para cualquier otro modelo de la aplicación.
Recursos útiles
Última actualización