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