summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff McCune <jeff@puppetlabs.com>2013-02-15 11:56:16 -0800
committerJeff McCune <jeff@puppetlabs.com>2013-02-15 11:57:42 -0800
commita45d4f13070cd05c029b96c789f499133721d523 (patch)
tree5aaf8094fb3f3933ed3677efb6401bb8a4ff676c
parentf7a18189ec338b01b0fc89d75def832753af3868 (diff)
downloadpuppet-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.rb28
-rw-r--r--spec/unit/puppet/parser/functions/has_element_spec.rb42
-rw-r--r--tests/has_element.pp9
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')
-}