Dans Ruby, comment créer une constante de classe privée? (i.e. qui est visible à l'intérieur de la classe, mais pas à l'extérieur)Comment faire des constantes de classe privée dans Ruby
class Person
SECRET='xxx' # How to make class private??
def show_secret
puts "Secret: #{SECRET}"
end
end
Person.new.show_secret
puts Person::SECRET # I'd like this to fail
Bien sûr, « privé » en Ruby ne veut pas dire ce que cela signifie dans la plupart des langues . Ruby n'est pas si grand que ça, alors si vous voulez accéder à quelque chose, vous pouvez toujours le faire (mais peut-être pas avec la syntaxe la plus évidente). Le 'private' de Ruby dit seulement qu'il ne peut pas être précédé d'un point (' .') (ce qui je suppose est aussi un indice pourquoi ça ne marchera pas sur '::') – Amadan
Juste au cas où. Ruby 1.9.3 a maintenant des constantes privées. – whitequark