2017-05-22 5 views
0

Je dois marquer le type @return d'une méthode qui renvoie une classe au lieu d'une instance. Exemple:Documentation YARD pour une méthode qui retourne une classe

# @return [String] # This implies that the return type is a String object 
def string_class 
    String   # The method actually returns the String class itself 
end 

Est-ce que YARD ont une norme pour cela? Ma première estimation était @return [Class<String>] mais je n'ai pas été en mesure de trouver de la documentation pour quelque chose comme ça.

+0

Je écrirais simplement '@return [Class]' – Stefan

Répondre

2

En ruby, (presque) tout est un objet, y compris les classes elles-mêmes!

String.class == Class 

(Il y a a class called Class, dont String est une instance.) Par conséquent, vous pouvez documenter la méthode comme ceci:

# @return [Class] 
def string_class 
    String 
end 
+0

Je sais que je peux utiliser la classe, mais je voudrais le documenter comme la classe String spécifiquement, si possible. L'objectif est d'utiliser l'API YARD pour trouver les méthodes du type de retour. Dans cet exemple, je voudrais que les résultats incluent String.try_convert. – dtroof

+0

Ahh oui, je vois. Je ne sais pas si c'est possible dans la syntaxe de YARD (je devrais faire des recherches plus ...), mais vous pouvez aussi envisager de documenter ceci comme une méthode tapée par un canard à laquelle l'objet retourné devrait répondre: '@return [ #try_convert] '. –