Module: VersionFu::InstanceMethods

Defined in:
lib/version_fu/version_fu.rb

Instance Method Summary collapse

Instance Method Details

#check_for_new_versionObject



88
89
90
91
# File 'lib/version_fu/version_fu.rb', line 88

def check_for_new_version
  instatiate_revision if create_new_version?
  true # Never halt save
end

#create_new_version?Boolean

This the method to override if you want to have more control over when to version

Returns:

  • (Boolean)


94
95
96
97
# File 'lib/version_fu/version_fu.rb', line 94

def create_new_version?
  # Any versioned column changed?
  self.class.versioned_columns.detect {|a| __send__ "#{a}_changed?"}
end

#find_version(number) ⇒ Object



84
85
86
# File 'lib/version_fu/version_fu.rb', line 84

def find_version(number)
  versions.find :first, :conditions=>{:version=>number}
end

#instatiate_revisionObject



99
100
101
102
103
104
105
106
107
# File 'lib/version_fu/version_fu.rb', line 99

def instatiate_revision
  new_version = versions.build
  versioned_columns.each do |attribute|
    new_version.__send__ "#{attribute}=", __send__(attribute)
  end
  version_number = new_record? ? 1 : version + 1
  new_version.version = version_number
  self.version = version_number
end