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