Du nouveau dans Ruby 2.1: Définition de méthode
Ruby 2.1 devrait être là dans pas longtemps, il est temps de regarder ce que cette nouvelle version nous offre. Aujourd’hui on va voir un petit changement dans la définition des méthodes.
Ce qui change avec def
Jusqu’ici, def renvoyait nil:
[~]⇒ rvm use 2.0.0
[~]⇒ irb
>> def foo;end
nil
Dans Ruby 2.1, def va renvoyer le nom de la méthode (en tant que symbole):
[~]⇒ rvm use 2.1.0-preview1
[~]⇒ irb
>> def foo;end
=> :foo
Un cas d’utilisation
Pour l’instant je ne connais qu’un seul cas d’utilisation:
private def foo ; endOn peut utiliser Ruby pendant très longtemps avant de se rendre compte que
private est une méthode et non un mot-clé. Avant Ruby 2.1, l’utilisation
typique de private est celle-ci:
class Foo
  def foo ; end
  private
  def bar ; end
endAutrement dit: les méthodes publiques avant private et les méthodes privées
après. Une autre possibilité intéressante est la suivante:
class Foo
  def foo ; end
  def foo_helper ; end
  private :bar
endMoins utilisée mais pourtant cool, cette façon de faire permet de garder, par exemple, une méthode helper sous la méthode appellante.
Avec Ruby 2.1 nous aurons donc la possibilité d’écrire ceci:
class Foo
  def foo ; end
  private foo_helper ; end
endVoilà. Si vous connaissez un autre cas d’utilisation, laissez donc un commentaire.
Source (pdf) toruby
À demain.