Wie markiere ich eine Klasse in Ruby als veraltet?

8

In Ruby (und noch mehr: Rails) ist einfach Methoden als veraltet markieren .

Aber wie kann ich eine ganze Klasse als veraltet markieren? Ich möchte eine Warnung ausgeben, wenn eine Klasse verwendet wird:

%Vor%

Oder wenn es in der Vererbung verwendet wird:

%Vor%

Oder in verschachtelten Klassen:

%Vor%

Ich würde denken, dass dies ein class_eval -Block wäre sei der Ort, an dem man eine solche Warnung anbringen kann. Ist das der richtige Ort? Oder gibt es bessere Methoden?

    
berkes 17.04.2015, 09:55
quelle

3 Antworten

3

Sie können const_missing verwenden, um Konstanten und damit Klassen zu verwerfen.

const_missing wird aufgerufen, wenn auf eine nicht definierte Konstante verwiesen wird.

%Vor%

Dies ermöglicht, dass vorhandener Code, der auf MyModule::BillingMethod verweist, weiterhin funktioniert und warnt den Benutzer vor der Verwendung der veralteten Klasse.

Es ist das Beste, was ich bisher für den abwertenden Klassenzweck gesehen habe.

    
Andrey Deineko 17.04.2015, 10:09
quelle
8

Vielleicht möchten Sie sich Deprecate welches Teil von Rubys Standard Library ist:

%Vor%

Die Verwendung der Methode deprecated würde zu einer Warnung wie folgt führen:

%Vor%     
spickermann 17.04.2015 11:05
quelle
-2

Warum nicht so:

%Vor%     
Gena Shumilkin 17.04.2015 10:04
quelle

Tags und Links