Damit können Sie von einer anderen Klasse erben, die keine DM-Klasse ist.
Es ermöglicht auch das Hinzufügen der DM-Funktionen zu einer Klasse im laufenden Betrieb. Hier ist eine Klassenmethode aus einem Modul ich arbeite jetzt:
def datamapper_class
klass = self.dup
klass.send(:include, DataMapper::Resource)
klass.storage_names[:default] = @table_name
klass.property(:id, DataMapper::Types::Serial)
klass.property(:created_at, DateTime, :nullable => false)
klass.property(:updated_at, DateTime, :nullable => false)
columns_with_types { |n, t| klass.property(n, t, :field => n.to_s) }
klass
end
Auf diese Weise können Sie mir eine SAXMachine Klasse nehmen (sehr leicht) und schalten Sie ihn in eine Datamapper Klasse on the fly, und zu tun DataMappery Sachen mit ihm . Du könntest es sogar zu einer Singleton-Klasse eines Objekts machen.
Ich stelle mir vor, dass dies meinen Speicherbedarf verringert, wenn ich 100K-Objekte aus XML importiere (ich verwende kein DM für die Massenimporte) und mische nur die komplexeren Datenbankfunktionen, wenn ich sie brauche
Ich dachte, es könnte ein rein "philosophischer" Grund sein - Mal sehen, was andere Leute sagen. – cloudhead