2009-08-07 13 views
14

Non riesco a capire come chiamare un metodo da un modulo genitore in una classe.Chiamare i metodi del modulo genitore da una classe nidificata

Voglio chiamare le funzioni del modulo dal modulo genitore nelle mie classi nidificate, ma non riesco a trovare un modo come farlo.

esempio:

module Awesome 
    class Checker 
    def awesome? 
     awesome_detection 
    end 
    end 

    module_function 
    def awesome_detection 
    true 
    end 

end 

Se chiamo Awesome::Checker.new.awesome?, è a conoscenza di awesome_detection

Tutte le idee su quello che mi manca?

+0

Appena ricordato - Mi sono reso conto che potevo fare "includere Awesome" in correttore, ma voglio sapere in un altro modo se ho più classi in "Awesome". –

risposta

22
#!/usr/bin/env ruby -wKU 

module Awesome 

    class Checker 
    def awesome? 
     Awesome.awesome_detection 
    end 
    end 

    def self.awesome_detection 
    puts "yes" 
    end 

end 

Awesome::Checker.new.awesome? 
# => yes 
+0

La 'module_function' nella domanda originale era migliore. Risolvere il problema di "def awesome?" Per chiamare "Awesome.awesome_detection" sarebbe stato sufficiente. –

Problemi correlati