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
|