Privater / geschützter Block in Ruby?

8

Ruby scheint keine Möglichkeit zu haben, einen geschützten / privaten Block wie folgt zu definieren:

%Vor%

Das wäre schön im Vergleich zu

%Vor%

wo Sie nach den geschützten Methoden vielleicht "public" vergessen.

Es scheint möglich, dies mittels Metaprogrammierung zu implementieren. Irgendwelche Ideen wie?

    
gsmendoza 15.06.2009, 01:48
quelle

2 Antworten

15

Da Sie nach Funktionalität gruppieren möchten, können Sie alle Ihre Methoden deklarieren und dann deklarieren, welche geschützt und privat sind, indem Sie protected gefolgt von den Symbolen der Methoden, die Sie schützen wollen, und den gleichen für private verwenden.

Die folgende Klasse zeigt, was ich meine. In dieser Klasse sind alle Methoden öffentlich, außer bar_protected und bar_private, die am Ende als geschützt und privat deklariert sind.

%Vor%     
Brandon Bodnar 15.06.2009, 02:33
quelle
9

Ich unterstütze tatsächlich bodnarbms Lösung und empfehle das nicht, aber da ich eine Metaprogrammierungs-Herausforderung nicht bestehen kann, hier ist ein Hack, der dies erreichen wird:

%Vor%     
Chuck 15.06.2009 08:20
quelle

Tags und Links