Contesto d'esecuzione senza gestione dello stato?

Ciao,

mi stavo domandando quali opzioni ci fossero in Rubyland nel caso in cui
si
volesse raggruppare un insieme affine di funzioni che non necessitano di
gestire lo stato ma solo di richiamarsi tra di loro:

opzione numero A)

module ContextA
  def self.func_a1; end
  # ...
  def self.func_an; end
end

ContextA.func_a5

opzione numero B)

class ContextB
  def func_b1; end
  # ...
  def func_bn; end
end

ContextB.new.func_b6

Di A) non mi piace molto dover spammare self. su ogni metodo o wrappare
tutti i metodi in un class << self.
Di B) non mi piace l’uso di .new, ma a livello di syntactic sugar (per
definizione e uso) è molto snella.

Che ne pensate?

trolol, penso che vuoi una problem factory con public static qualcosa :smiley:

Ti avrei risposto con un trait Rust ma il compilatore mi spernacchia con
“You shall not pass”. :slight_smile:

Io uso spesso moduli con extend self

e finché non usi variabili di istanza somigliano un po’ nell’uso e
nell’aspetto a quello che faresti con Elixir

module A
extend self
def foo; end
end

A.foo

altrimenti c’è anche module_function che però ha un comportamento un po’
più complesso.

Mi piace l’extend self :slight_smile:

2015-06-26 17:37 GMT+02:00 Elia S. [email protected]: