lib/og/mixin/optimistic_locking.rb in og-0.23.0 vs lib/og/mixin/optimistic_locking.rb in og-0.24.0

- old
+ new

@@ -1,6 +1,7 @@ -require 'mega/macro' +require 'mega/dynamod' +require 'glue/on_included' module Og # This error is thrown when you the object you are trynig # to update is allready updated by another thread. @@ -16,24 +17,20 @@ # http://en.wikipedia.org/wiki/Optimistic_concurrency_control module Locking property :lock_version, Fixnum, :default => 0 pre "@lock_version = 0", :on => :og_insert - - def self.append_features(base) #:nodoc: - PropertyUtils.copy_features(self, base) - - super - + + on_included %{ base.module_eval do def self.enchant self.send :alias_method, :update_without_lock, :update self.send :alias_method, :update, :update_with_lock self.send :alias_method, :save_without_lock, :save self.send :alias_method, :save, :save_with_lock end end - end + } def update_with_lock lock = @lock_version @lock_version += 1