(StackOverflow mi sta dicendo che questa domanda è "soggettiva e rischia di essere chiuso" ... beh, io ti do un colpo a prescindere)Le migliori pratiche per le funzioni di namespace in Ruby? (Domanda novizio)
sto scrivendo un sacco di metodi helper (per un pacchetto TextMate), e mi piacerebbe (e ho bisogno) di ordinarli in modo ordinato.
Questi metodi sono in realtà solo funzioni, ovvero non operano su qualcosa al di fuori del proprio ambito di applicazione e quindi non appartengono realmente a una classe. Non c'è niente che abbia bisogno di istanziare.
Finora, ho fatto questo e quello funziona bene
module Helpers::Foo
module_function
def bar
# ...
end
end
Helpers::Foo.bar # this is how I'd like to call the method/function
Ma sarebbe meglio:
1. Skip module_function
e dichiarare i metodi/funzioni come self.*
?
2. O sarebbe meglio dichiarare una classe invece di un modulo?
3. O utilizzare class << self
(all'interno di un modulo o di una classe)?
4. O qualcos'altro interamente?
Mi rendo conto che questa è una domanda abbastanza aperta, ma sto solo cercando di capire cosa stanno facendo le persone.
+1 per il primo, alias auto. –
Buon punto. Ma temo che 'self' perderà il suo significato nel mio codice, dal momento che praticamente tutto è un modulo che non contiene nient'altro che funzioni ausiliarie. Quindi tutto dovrebbe essere definito come "sé", nel qual caso potrei anche non definire nulla come "self" e usare invece "module_function". – Flambino
vedo, aggiornerò la risposta per includere una terza opzione che preferisco per questa situazione. –