diff --git a/lib/puppet/parser/functions/has_key.rb b/lib/puppet/parser/functions/has_key.rb deleted file mode 100644 index 334b849f0..000000000 --- a/lib/puppet/parser/functions/has_key.rb +++ /dev/null @@ -1,41 +0,0 @@ -# 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 diff --git a/spec/functions/has_key_spec.rb b/spec/functions/has_key_spec.rb deleted file mode 100644 index 882356171..000000000 --- a/spec/functions/has_key_spec.rb +++ /dev/null @@ -1,22 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -describe 'has_key' do - it { is_expected.not_to eq(nil) } - it { is_expected.to run.with_params.and_raise_error(Puppet::ParseError, %r{wrong number of arguments}i) } - it { is_expected.to run.with_params('one').and_raise_error(Puppet::ParseError, %r{wrong number of arguments}i) } - it { is_expected.to run.with_params('one', 'two', 'three').and_raise_error(Puppet::ParseError, %r{wrong number of arguments}i) } - it { is_expected.to run.with_params('one', 'two').and_raise_error(Puppet::ParseError, %r{expects the first argument to be a hash}) } - it { is_expected.to run.with_params(1, 'two').and_raise_error(Puppet::ParseError, %r{expects the first argument to be a hash}) } - it { is_expected.to run.with_params([], 'two').and_raise_error(Puppet::ParseError, %r{expects the first argument to be a hash}) } - - it { is_expected.to run.with_params({ 'key' => 'value' }, 'key').and_return(true) } - it { is_expected.to run.with_params({}, 'key').and_return(false) } - it { is_expected.to run.with_params({ 'key' => 'value' }, 'not a key').and_return(false) } - - context 'with UTF8 and double byte characters' do - it { is_expected.to run.with_params({ 'κéỳ ' => '٧ậļųể' }, 'κéỳ ').and_return(true) } - it { is_expected.to run.with_params({ 'キー' => '٧ậļųể' }, 'キー').and_return(true) } - end -end