2011-09-28 11 views
5

Estoy usando YARD para documentar mi proyecto. YARD documenta los atributos creados conPATIO: documento par getter/setter personalizado como attr_accessor

attr_accessor :some_attribute 

en una sección separada "Instance Attribute Summary". ahora tengo otro atributo, pero con colocador costumbre y captador

def some_other_attribute 
    ... 
end 

def some_other_attribute= value 
    ... 
end 

así que básicamente mi pregunta es, ¿cómo puedo obtener patio para documentar este par de setter/getter igual attr_accessor en el caso anterior, y la lista some_other_attribute dentro "Resumen de atributo de instancia"?

Respuesta

5

A partir de 0.8 (que está en prelanzamiento ahora), la directiva @!attribute es la forma recomendada para indicar que un objeto es un atributo. Las etiquetas @attr_* están en desuso en favor de esta directiva. También puede hacer (en 0.8.0+):

# @!parse attr_accessor :some_attribute 

para analizar el código que no está necesariamente ejecutado por Ruby. Antes de 0,8, sólo podría añadir el attr_accessor directamente y luego redefinir el setter/getter de la siguiente manera:

class MyClass 
    attr_accessor :foo 
    def foo; something_else end 
    def foo=(v) something_else(v) end 
end 

Ruby no debería preocuparse, excepto que en ruby -w se le advertirá sobre las redefiniciones del método. Si esto te molesta, puedes agregar undef foo, foo= allí también. Es un poco desordenado (si le importa -w), y es por eso que agregamos cosas como @!parse y @!attribute.

+0

¿Dónde definirías '@! Parse attr_accessor: some_attribute'? – thomthom

1

Usted debe ser capaz de utilizar la etiqueta @attr de la clase:

# @attr [String] name The name of this object. 
class MyClass 
    def name 
    end 
    def name= 
    end 
end 

Hay otras etiquetas (como @attr_reader y @attr_writer) que también puede ser útil.

Cuestiones relacionadas