class Dry::Ability::Or
Public Instance Methods
accessible?()
click to toggle source
# File lib/dry/ability/rule.rb, line 105 def accessible? true end
attributes_for(account, object)
click to toggle source
# File lib/dry/ability/rule.rb, line 92 def attributes_for(account, object) items.reduce({}) do |result, rule| result.deep_merge!(rule.attributes_for(rule, object)); result end end
call(account, object)
click to toggle source
# File lib/dry/ability/rule.rb, line 86 def call(account, object) items.reduce(false) do |result, rule| result || rule[account, object] end end
scope_for(account, subject)
click to toggle source
# File lib/dry/ability/rule.rb, line 98 def scope_for(account, subject) base_relations = items.map { |rule| rule.scope_for(account, subject) } condit = base_relations.map { |r| r.except(:joins) }.reduce(:or) merged = base_relations.map { |r| r.except(:where) }.reduce(:merge) merged.merge(condit) end
|(other)
click to toggle source
# File lib/dry/ability/rule.rb, line 109 def |(other) self.class.new([*items, other]) end