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 ; end
On 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
end
Autrement 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
end
Moins 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
end
Voilà. Si vous connaissez un autre cas d’utilisation, laissez donc un commentaire.
Source (pdf) toruby
À demain.