J'ai une classe avec une constante définie pour cela. J'ai alors une méthode de classe définie qui accède à cette constante de classe. Cela fonctionne bien. Un exemple:(In Ruby) permettant des méthodes de classe mélangées accès aux constantes de classe
#! /usr/bin/env ruby
class NonInstantiableClass
Const = "hello, world!"
class << self
def shout_my_constant
puts Const.upcase
end
end
end
NonInstantiableClass.shout_my_constant
Mon problème se pose en tentant de déplacer cette méthode de classe vers un module externe, comme suit:
#! /usr/bin/env ruby
module CommonMethods
def shout_my_constant
puts Const.upcase
end
end
class NonInstantiableClass
Const = "hello, world!"
class << self
include CommonMethods
end
end
NonInstantiableClass.shout_my_constant
Ruby interprète le procédé demandant une constante à partir du module, plutôt que la classe:
line 5:in `shout_my_constant': uninitialized constant CommonMethods::Const (NameError)
Alors, quels tours de magie avez-vous pour laisser la méthode accéder à la constante de classe? Merci beaucoup.
Eh bien, cela éclaircit les choses. Je devais encore expérimenter la syntaxe :: :). – jameshfisher
N'arrêtez pas de lire pour le moment. Lire ci-dessous la réponse de johannes. – Sebastian