Method: ActionPolicy::Policy::PreCheck::ClassMethods#skip_pre_check

Defined in:
lib/action_policy/policy/pre_check.rb

#skip_pre_check(*names, **options) ⇒ Object

rubocop: disable Metrics/AbcSize



183
184
185
186
187
188
189
190
191
192
193
194
# File 'lib/action_policy/policy/pre_check.rb', line 183

def skip_pre_check(*names, **options)
  names.each do |name|
    check = pre_checks.find { |c| c.name == name }
    raise "Pre-check not found: #{name}" if check.nil?

    # when no options provided we remove this check completely
    next pre_checks.delete(check) if options.empty?

    # otherwise duplicate and apply skip options
    pre_checks[pre_checks.index(check)] = check.dup.tap { |c| c.skip! options }
  end
end