Class Index [+]

Quicksearch

DataMapper::Property::Discriminator::Model

Public Instance Methods

inherited(model) click to toggle source
    # File lib/dm-core/property/discriminator.rb, line 15
15:         def inherited(model)
16:           super  # setup self.descendants
17:           set_discriminator_scope_for(model)
18:         end
new(*args, &block) click to toggle source
    # File lib/dm-core/property/discriminator.rb, line 20
20:         def new(*args, &block)
21:           if args.size == 1 && args.first.kind_of?(Hash)
22:             discriminator = properties(repository_name).discriminator
23: 
24:             if discriminator_value = args.first[discriminator.name]
25:               model = discriminator.typecast_to_primitive(discriminator_value)
26: 
27:               if model.kind_of?(Model) && !model.equal?(self)
28:                 return model.new(*args, &block)
29:               end
30:             end
31:           end
32: 
33:           super
34:         end

Private Instance Methods

set_discriminator_scope_for(model) click to toggle source
    # File lib/dm-core/property/discriminator.rb, line 38
38:         def set_discriminator_scope_for(model)
39:           discriminator = self.properties.discriminator
40:           default_scope = model.default_scope(discriminator.repository_name)
41:           default_scope.update(discriminator.name => model.descendants.dup << model)
42:         end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.