Class: MongoidAbility::FindLock::FindInheritedLock
- Inherits:
-
MongoidAbility::FindLock
- Object
- Struct
- MongoidAbility::FindLock
- MongoidAbility::FindLock::FindInheritedLock
- 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
Constructor Details
This class inherits a constructor from MongoidAbility::FindLock
Instance Method Details
#call ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/mongoid_ability/find_lock.rb', line 39 def call return unless owner.respond_to?(owner.class.inherit_from_relation_name) locks = LocksDecorator.new( owner.inherit_from_relation .flat_map { |inherited_owner| FindOwnedLock.call(inherited_owner, action, subject_type, subject_id, ) } ) 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(&:open?) || locks.class_locks.detect(&:closed?) end |