class GraphqlDevise::MountMethod::OptionSanitizers::ClassChecker

Public Class Methods

new(klass) click to toggle source
# File lib/graphql_devise/mount_method/option_sanitizers/class_checker.rb, line 7
def initialize(klass)
  @klass_array = Array(klass)
end

Public Instance Methods

call!(value, key) click to toggle source
# File lib/graphql_devise/mount_method/option_sanitizers/class_checker.rb, line 11
def call!(value, key)
  return if value.nil?

  unless value.instance_of?(Class)
    raise GraphqlDevise::InvalidMountOptionsError, "`#{key}` option has an invalid value. Class expected."
  end

  unless @klass_array.any? { |klass| value.ancestors.include?(klass) }
    raise GraphqlDevise::InvalidMountOptionsError,
          "`#{key}` option has an invalid value. #{@klass_array.join(', ')} or descendants expected. Got #{value}."
  end

  value
end