Skip to content

Instantly share code, notes, and snippets.

@metaskills
Created February 9, 2009 21:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save metaskills/61011 to your computer and use it in GitHub Desktop.
Save metaskills/61011 to your computer and use it in GitHub Desktop.
module VersionedExtensions
def save_version?
false
end
def set_version(v)
self.version = v
update_without_callbacks
end
def forcing_new_version
def self.save_version? ; true ; end
@saving_version = true
self.class.transaction { yield }
ensure
def self.save_version? ; false ; end
@saving_version = false
end
protected
def set_new_version
true
end
end
module VersionedChildExtensions
def make_new_version!(v)
forcing_new_version do
set_version(v)
save_version
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment