Class: MongoidAbility::FindLock::FindOwnedLock

Inherits:
MongoidAbility::FindLock show all
Defined in:
lib/mongoid_ability/find_lock.rb

Instance Attribute Summary

Attributes inherited from MongoidAbility::FindLock

#action, #options, #owner, #subject_id, #subject_type

Instance Method Summary collapse

Methods inherited from MongoidAbility::FindLock

call, #initialize

Constructor Details

This class inherits a constructor from MongoidAbility::FindLock

Instance Method Details

#callObject



57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/mongoid_ability/find_lock.rb', line 57

def call
  return unless owner.respond_to?(:locks_relation)
  locks = owner.locks_relation.for_action(action).for_subject_type(subject_type)

  if subject_id.present?
    lock = locks.for_subject_id(subject_id).detect(&:closed?) ||
           locks.for_subject_id(subject_id).detect(&:open?)
    return lock unless lock.nil?
  end

  locks.class_locks.detect(&:closed?) || locks.class_locks.detect(&:open?)
end