Method: Code::Type::Hash#valid?

Defined in:
lib/code/type/hash.rb

#valid?(argument) ⇒ Boolean

Returns:

  • (Boolean)


12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/code/type/hash.rb', line 12

def valid?(argument)
  return false unless argument.is_a?(Object::Dictionary)

  argument = argument.raw
  (argument.keys + hash.keys).uniq.all? do |key|
    if hash[key]
      valid_for?(
        expected: hash[key],
        actual: argument[key] || Object::Nothing.new
      )
    else
      false
    end
  end
end