2016-03-28 15 views
2

Wie kann ich die folgende Methode some_protected geschützt oder privat machen? Es sollte ohne Vererbung implementiert werden.So stellen Sie eine geschützte Singleton-Methode her

module Sample 
    def self.some_public 
    some_protected 
    end 

    protected 

    def self.some_protected 
    puts 'Bingo!' 
    end 
end 

Sample::some_public  # Bingo! 
Sample::some_protected # Bingo! (but expected an error that method is not accessible) 
+0

Warum möchten Sie diese Methode _protected_ haben? Für mich macht es wenig Sinn, wenn ich mit Klassenmethoden arbeite. –

+0

Vielleicht. Was genau denkst du könnte falsch sein? – Kirby

+0

Was wollen Sie erreichen? –

Antwort

2

Die Arbeit in der Singleton-Klasse ist wahrscheinlich die einfachste.

module Sample; end 

class <<Sample 
    def some_public 
    some_protected 
    end 
    protected def some_protected 
    puts 'Bingo!' 
    end 
end 
+0

Ja, das ist was ich brauche. – Kirby

Verwandte Themen