You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Quick and dirty fix for this: add a file lib/puppet/parser/functions/has_key.rb with the following content.
# frozen_string_literal: true
#
# has_key.rb
#
module Puppet::Parser::Functions
newfunction(:has_key, type: :rvalue, doc: <<-'DOC') do |args|
@summary
**Deprecated:** Determine if a hash has a certain key value.
@return
Boolean value
@example Example Usage:
$my_hash = {'key_one' => 'value_one'}
if has_key($my_hash, 'key_two') {
notice('we will not reach here')
}
if has_key($my_hash, 'key_one') {
notice('this will be printed')
}
> **Note:** **Deprecated** since Puppet 4.0.0, this can now be achieved in the Puppet
language with the following equivalent expression:
$my_hash = {'key_one' => 'value_one'}
if 'key_one' in $my_hash {
notice('this will be printed')
}
DOC
unless args.length == 2
raise Puppet::ParseError, "has_key(): wrong number of arguments (#{args.length}; must be 2)"
end
unless args[0].is_a?(Hash)
raise Puppet::ParseError, "has_key(): expects the first argument to be a hash, got #{args[0].inspect} which is of type #{args[0].class}"
end
args[0].key?(args[1])
end
end
This module does no longer work with the current version of puppetlabs-stdlib.
In this MR the
has_key
function was removed.puppetlabs/puppetlabs-stdlib#1319
Is this repository still managed? Would you accept a pull request? Or maybe this module can be transfered to voxpupuli team?
The text was updated successfully, but these errors were encountered: