Module: Ardm::Property::Discriminator::Model
- Defined in:
- lib/ardm/property/discriminator.rb
Instance Method Summary collapse
Instance Method Details
#inherited(model) ⇒ Object
33 34 35 36 |
# File 'lib/ardm/property/discriminator.rb', line 33 def inherited(model) super # setup self.descendants #set_discriminator_scope_for(model) end |
#new(*args, &block) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/ardm/property/discriminator.rb', line 38 def new(*args, &block) if args.size == 1 && args.first.kind_of?(Hash) discriminator = properties.discriminator if discriminator_value = args.first[discriminator.name] model = discriminator.typecast(discriminator_value) if model.kind_of?(Model) && !model.equal?(self) return model.new(*args, &block) end end end super end |