class MongoidAbility::LocksDecorator

adds scope-like methods on top of an Array containing locks

Public Instance Methods

class_locks() click to toggle source
# File lib/mongoid_ability/locks_decorator.rb, line 37
def class_locks
  compact.select(&:class_lock?)
end
for_action(action) click to toggle source
# File lib/mongoid_ability/locks_decorator.rb, line 5
def for_action(action)
  compact.select do |lock|
    lock.action == action.to_sym
  end
end
for_subject(subject) click to toggle source
# File lib/mongoid_ability/locks_decorator.rb, line 30
def for_subject(subject)
  compact.select do |lock|
    lock.subject_type == subject.class.model_name &&
      lock.subject_id == subject.id
  end
end
for_subject_id(subject_id) click to toggle source
# File lib/mongoid_ability/locks_decorator.rb, line 24
def for_subject_id(subject_id)
  compact.select do |lock|
    lock.subject_id == BSON::ObjectId.from_string(subject_id)
  end
end
for_subject_type(subject_type) click to toggle source
# File lib/mongoid_ability/locks_decorator.rb, line 11
def for_subject_type(subject_type)
  compact.select do |lock|
    lock.subject_type == subject_type.to_s
  end
end
for_subject_types(subject_types) click to toggle source
# File lib/mongoid_ability/locks_decorator.rb, line 17
def for_subject_types(subject_types)
  subject_types = Array(subject_types).map(&:to_s)
  compact.select do |lock|
    subject_types.include?(lock.subject_type)
  end
end
id_locks() click to toggle source
# File lib/mongoid_ability/locks_decorator.rb, line 41
def id_locks
  compact.select(&:id_lock?)
end