diff options
author | Jeff McCune <jeff@puppetlabs.com> | 2013-02-15 11:56:16 -0800 |
---|---|---|
committer | Jeff McCune <jeff@puppetlabs.com> | 2013-02-15 11:57:42 -0800 |
commit | a45d4f13070cd05c029b96c789f499133721d523 (patch) | |
tree | 5aaf8094fb3f3933ed3677efb6401bb8a4ff676c | |
parent | f7a18189ec338b01b0fc89d75def832753af3868 (diff) | |
download | puppet-stdlib-a45d4f13070cd05c029b96c789f499133721d523.tar.gz puppet-stdlib-a45d4f13070cd05c029b96c789f499133721d523.tar.bz2 |
Revert "Merge pull request #130 from jhoblitt/has_element"
This reverts commit f7a18189ec338b01b0fc89d75def832753af3868, reversing
changes made to 36a7b29630a4d4de17af79b5dd4e9491ec20b123.
I'm reverting this change because of concerns raised by Peter Meier that
it duplicates the "in" operator in the DSL. The "in" operator is new
information that I did not posses when I made the decision to merge.
Because of this new information I'm un-merging and continuing the
discussion in the comments of
https://projects.puppetlabs.com/issues/19272
Reference: GH-130
-rw-r--r-- | lib/puppet/parser/functions/has_element.rb | 28 | ||||
-rw-r--r-- | spec/unit/puppet/parser/functions/has_element_spec.rb | 42 | ||||
-rw-r--r-- | tests/has_element.pp | 9 |
3 files changed, 0 insertions, 79 deletions
diff --git a/lib/puppet/parser/functions/has_element.rb b/lib/puppet/parser/functions/has_element.rb deleted file mode 100644 index e29bbb9..0000000 --- a/lib/puppet/parser/functions/has_element.rb +++ /dev/null @@ -1,28 +0,0 @@ -module Puppet::Parser::Functions - - newfunction(:has_element, :type => :rvalue, :doc => <<-'ENDHEREDOC') do |args| - Determine if an array has an element with a matching value. - - Example: - - $my_array = ['key_one'] - if has_element($my_array, 'key_two') { - notice('we will not reach here') - } - if has_element($my_array, 'key_one') { - notice('this will be printed') - } - - ENDHEREDOC - - unless args.length == 2 - raise Puppet::ParseError, ("has_element(): wrong number of arguments (#{args.length}; must be 2)") - end - unless args[0].is_a?(Array) - raise Puppet::ParseError, "has_element(): expects the first argument to be an array, got #{args[0].inspect} which is of type #{args[0].class}" - end - args[0].include?(args[1]) - - end - -end diff --git a/spec/unit/puppet/parser/functions/has_element_spec.rb b/spec/unit/puppet/parser/functions/has_element_spec.rb deleted file mode 100644 index b5270d2..0000000 --- a/spec/unit/puppet/parser/functions/has_element_spec.rb +++ /dev/null @@ -1,42 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe Puppet::Parser::Functions.function(:has_element) do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - describe 'when calling has_element from puppet' do - it "should not compile when no arguments are passed" do - pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./ - Puppet[:code] = '$x = has_element()' - expect { - scope.compiler.compile - }.to raise_error(Puppet::ParseError, /wrong number of arguments/) - end - - it "should not compile when 1 argument is passed" do - pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./ - Puppet[:code] = "$x = has_element('foo')" - expect { - scope.compiler.compile - }.to raise_error(Puppet::ParseError, /wrong number of arguments/) - end - - it "should require the first value to be an Array" do - pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./ - Puppet[:code] = "$x = has_element('foo', 'bar')" - expect { - scope.compiler.compile - }.to raise_error(Puppet::ParseError, /expects the first argument to be an array/) - end - end - - describe 'when calling the function has_element from a scope instance' do - it 'should detect existing elements' do - scope.function_has_element([['one'], 'one']).should be_true - end - - it 'should detect existing elements' do - scope.function_has_element([['one'], 'two']).should be_false - end - end -end diff --git a/tests/has_element.pp b/tests/has_element.pp deleted file mode 100644 index ec06aac..0000000 --- a/tests/has_element.pp +++ /dev/null @@ -1,9 +0,0 @@ -include stdlib - -$my_array = ['key_one'] -if has_element($my_array, 'key_two') { - notice('we will not reach here') -} -if has_element($my_array, 'key_one') { - notice('this will be printed') -} |