module MongoidAbility::Subject::ClassMethods
Public Instance Methods
ancestors_with_default_locks()
click to toggle source
# File lib/mongoid_ability/subject.rb, line 42 def ancestors_with_default_locks self_and_ancestors_with_default_locks - [self] end
default_lock(lock_cls, action, outcome, options = {})
click to toggle source
# File lib/mongoid_ability/subject.rb, line 26 def default_lock(lock_cls, action, outcome, options = {}) lock = lock_cls.new(subject_type: to_s, action: action, outcome: outcome, options: options) # remove any existing locks if existing_lock = default_locks.detect { |l| l.action == lock.action && l.options == lock.options } default_locks.delete(existing_lock) end # add new lock default_locks.push(lock) end
default_locks()
click to toggle source
# File lib/mongoid_ability/subject.rb, line 14 def default_locks @default_locks ||= LocksDecorator.new([]) end
default_locks=(locks)
click to toggle source
# File lib/mongoid_ability/subject.rb, line 22 def default_locks=(locks) @default_locks = locks end
has_default_lock_for_action?(action)
click to toggle source
# File lib/mongoid_ability/subject.rb, line 54 def has_default_lock_for_action?(action) default_locks.for_action(action).present? end
is_root_class?()
click to toggle source
# File lib/mongoid_ability/subject.rb, line 46 def is_root_class? root_class == self end
reset_default_locks!()
click to toggle source
# File lib/mongoid_ability/subject.rb, line 18 def reset_default_locks! @default_locks = LocksDecorator.new([]) end
root_class()
click to toggle source
# File lib/mongoid_ability/subject.rb, line 50 def root_class self_and_ancestors_with_default_locks.last end
self_and_ancestors_with_default_locks()
click to toggle source
# File lib/mongoid_ability/subject.rb, line 38 def self_and_ancestors_with_default_locks ancestors.select { |a| a.is_a?(Class) && a.respond_to?(:default_locks) } end