2012-04-29 11 views

risposta

10

Mentre non è su Ruby Doc per qualche motivo, included è effettivamente documentato. Esecuzione ri Module.included nel terminale fornisce queste:

included(othermod) 

richiamata richiamato ogni volta che il ricevitore è incluso in un altro modulo o una classe. Questa opzione deve essere utilizzata preferibilmente a Module.append_features se il codice desidera eseguire un'azione quando un modulo è incluso in un altro.

module A 
    def A.included(mod) 
    puts "#{self} included in #{mod}" 
    end 
end 
module Enumerable 
    include A 
end 

Questa documentazione può essere trovato nel Ruby source in object.c. Purtroppo, Module.extended non è documentato.

+4

'Module.extended' è esattamente come' incluso', tranne che viene eseguito quando si chiama 'extend some_module' invece di quando si chiama' include some_module'. –

1

Sospetto che non sia sul sito Web RubyDoc perché è un metodo privato e non sono attualmente visualizzati metodi privati.

Le persone sono a conoscenza di questo problema, ma non hanno ancora capito come gestire i metodi che sono privati ​​anche se non sono dettagli di implementazione.

Ho creato un bug report a http://bugs.ruby-lang.org/issues/6381

+0

Interessante che sia visibile tramite 'ri', però. Una buona presa sui metodi privati ​​non è su Ruby Doc! Sicuramente sfortunato, sii gentile se fossero "ripiegati" di default, ma potrebbero comunque essere visualizzati. –

0

sembra solo metodi pubblici sono documentati

0

entrambi sono documentato nella pagina 556 della seconda edizione di piccone (che copre Ruby 1.8). La documentazione sembra proprio come il risultato di ri Module.included pubblicato da Andrew Marshall, quindi sospetto che la sezione del libro sia stata generata automaticamente. Se è stato eliminato dalle edizioni successive di pickaxe, potrebbe essere il risultato dello stesso bug che gli impedisce di presentarsi allo ruby-doc.org.

Problemi correlati