Sha256: 8f268d3ac48700ffbdb4fc026f2072befd71d52a0e62228cbb4cb0ef924b44fa

Contents?: true

Size: 713 Bytes

Versions: 8

Compression:

Stored size: 713 Bytes

Contents

# frozen_string_literal: true

module GraphqlDevise
  module MountMethod
    module OptionSanitizers
      class HashChecker
        def initialize(element_type_array)
          @element_type_array = Array(element_type_array)
          @default_value      = {}
        end

        def call!(value, key)
          return @default_value if value.blank?

          unless value.instance_of?(Hash)
            raise InvalidMountOptionsError, "`#{key}` option has an invalid value. Hash expected. Got #{value.class}."
          end

          value.each { |internal_key, klass| ClassChecker.new(@element_type_array).call!(klass, "#{key} -> #{internal_key}") }

          value
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
graphql_devise-2.0.0 lib/graphql_devise/mount_method/option_sanitizers/hash_checker.rb
graphql_devise-1.4.0 lib/graphql_devise/mount_method/option_sanitizers/hash_checker.rb
graphql_devise-1.3.0 lib/graphql_devise/mount_method/option_sanitizers/hash_checker.rb
graphql_devise-1.2.0 lib/graphql_devise/mount_method/option_sanitizers/hash_checker.rb
graphql_devise-1.1.1 lib/graphql_devise/mount_method/option_sanitizers/hash_checker.rb
graphql_devise-1.1.0 lib/graphql_devise/mount_method/option_sanitizers/hash_checker.rb
graphql_devise-1.0.1 lib/graphql_devise/mount_method/option_sanitizers/hash_checker.rb
graphql_devise-1.0.0 lib/graphql_devise/mount_method/option_sanitizers/hash_checker.rb