class CanValidator

Constants

RESERVED_OPTIONS
VERSION

Public Instance Methods

validate_each(record, attribute, value) click to toggle source
# File lib/can_validator.rb, line 4
def validate_each(record, attribute, value)
  if !value.respond_to?(:can?) || !has_permission?(record, value)
    record.errors.add(attribute, options[:message] || :permission_denied)
  end
end

Private Instance Methods

has_permission?(record, value) click to toggle source
# File lib/can_validator.rb, line 12
def has_permission?(record, value)
  actions = options.keys - RESERVED_OPTIONS
  actions.all? do |action|
    options[action] ? value.can?(action, record) : value.cannot?(action, record)
  end
end