Method: Spider::Model::Versioned.create_version_model

Defined in:
lib/spiderfw/model/mixins/versioned.rb

.create_version_model(model) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/spiderfw/model/mixins/versioned.rb', line 30

def self.create_version_model(model)
    vmod = Class.new(model)
    vmod.class_eval{ include VersionModel }
    vmod.remove_element(:v_sha1)
    vmod.primary_keys.each do |pk|
         vmod.element_attributes(pk.name, :primary_key => false)
     end
    vmod.element(:v_sha1, String, :primary_key => true, :length => 40, :version_pk => true, :hidden => true) 
    local_pk = "id_versioned_#{model.short_name.downcase}"
    vmod.element(local_pk, Fixnum, :autoincrement => true, :local_pk => true, :hidden => true)
    vmod
end