Programmation Ruby/Accesseurs

Les accesseurs

modifier

Un accesseur est une méthode d'accès à un attribut.

Il existe deux type d'accesseurs :

  • accesseurs en lecture (Get dans certains langages)
  • accesseurs en écriture (Set dans certains langages)

En Ruby c'est une méthode qui porte le nom de l'attribut en lecture et le nom de l'attribut suivit de '=' en écriture tel que :

Class TestClass(val)
  def initialize (val = "test")
    @val= val
  end

  #Ecriture
  def val=(val)
    @val = val
  end

  #Lecture
  def val
    @val
  end

end

titi = TestClass::new
p titi.val # => "test"
titi.val = "test2"
p titi.val # => "test2"

Ruby propose des macro-constructions d'accesseurs pour simplifier l'écriture des classes :

attr_reader :v            =>  def v; @v; end
attr_writer :v	            =>  def v=(value); @v=value; end
attr_accessor :v	    =>  attr_reader :v; attr_writer :v
attr_accessor :v, :w  =>  attr_accessor :v; attr_accessor :w