(StackOverflow me está diciendo que esta cuestión es "subjetiva y es probable que se cierre" ... bueno, voy a darle un tiro independientemente)¿La mejor práctica para funciones de espacio de nombres en Ruby? (Pregunta novato)
Estoy escribiendo un montón de métodos de ayuda (para un paquete de TextMate), y me gustaría (y necesito) tener un espacio de nombres ordenado.
Estos métodos son en realidad funciones justas, es decir, no funcionan en nada fuera de su propio alcance y, por lo tanto, no pertenecen realmente a una clase. No hay nada que necesite instanciar.
Hasta ahora, he estado haciendo esto y que funciona bien
module Helpers::Foo
module_function
def bar
# ...
end
end
Helpers::Foo.bar # this is how I'd like to call the method/function
Pero, ¿sería mejor:
1. Saltar module_function
y declarar los métodos/funciones como self.*
?
2. ¿O sería mejor declarar una clase en lugar de un módulo?
3. O use class << self
(dentro de un módulo o una clase)?
4. ¿O algo completamente diferente?
Me doy cuenta de que esta es una pregunta bastante abierta, pero realmente solo estoy buscando escuchar lo que la gente está haciendo.
+1 para el anterior, también conocido como self. –
Buen punto. Pero me temo que el "yo" perderá su significado en mi código, ya que prácticamente todo es un módulo que no contiene más que funciones auxiliares. Entonces, todo se definiría como "yo". En ese caso, podría no definir nada como "yo mismo" y usar "función_módulo" en su lugar. – Flambino
veo, actualizaré la respuesta para incluir una tercera opción que prefiero para esta situación. –