Method: Hash#assert_valid_keys
- Defined in:
- activesupport/lib/active_support/core_ext/hash/keys.rb
#assert_valid_keys(*valid_keys) ⇒ Object
Validates all keys in a hash match *valid_keys
, raising ArgumentError
on a mismatch.
Note that keys are treated differently than HashWithIndifferentAccess, meaning that string and symbol keys will not match.
{ name: 'Rob', years: '28' }.assert_valid_keys(:name, :age) # => raises "ArgumentError: Unknown key: :years. Valid keys are: :name, :age"
{ name: 'Rob', age: '28' }.assert_valid_keys('name', 'age') # => raises "ArgumentError: Unknown key: :name. Valid keys are: 'name', 'age'"
{ name: 'Rob', age: '28' }.assert_valid_keys(:name, :age) # => passes, raises nothing
48 49 50 51 52 53 54 55 |
# File 'activesupport/lib/active_support/core_ext/hash/keys.rb', line 48 def assert_valid_keys(*valid_keys) valid_keys.flatten! each_key do |k| unless valid_keys.include?(k) raise ArgumentError.new("Unknown key: #{k.inspect}. Valid keys are: #{valid_keys.map(&:inspect).join(', ')}") end end end |