Class: DataMapper::Types::Discriminator
- Object
- DataMapper::Type
- DataMapper::Types::Discriminator
Constants Inherited from DataMapper::Type
Public Visibility
Public Class Method Summary
| bind(property) |
|---|
Public Instance Methods Inherited from Object
Public Class Method Details
bind
public
bind(property)
[View source]
7 8 9 10 11 12 13 14
# File 'dm-core/lib/dm-core/types/discriminator.rb', line 7 def self.bind(property) model = property.model model.class_eval "def self.inheritance_class_names\n@inheritance_class_names ||= []\nend\n\nafter_class_method :inherited, :propagate_inheritance_class_name\n\ndef self.propagate_inheritance_class_name(target)\ninheritance_class_names << target.name\nsuperclass.send(:propagate_inheritance_class_name,target) if superclass.respond_to?(:propagate_inheritance_class_name)\nend\n" model.send(:scope_stack) << DataMapper::Query.new(property.repository, model, property.name => (model.inheritance_class_names << model.name)) end