module AASM::Persistence::SequelPersistence::InstanceMethods

def aasm_transaction(requires_new, requires_lock)

def aasm_transaction(requires_new, requires_lock)
  self.class.db.transaction(savepoint: requires_new) do
    if requires_lock
      # http://sequel.jeremyevans.net/rdoc/classes/Sequel/Model/InstanceMethods.html#method-i-lock-21
      requires_lock.is_a?(String) ? lock!(requires_lock) : lock!
    end
    yield
  end
end