Revert "Merge pull request #130 from jhoblitt/has_element"
This reverts commitf7a18189ec
, reversing changes made to36a7b29630
. 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
This commit is contained in:
parent
f7a18189ec
commit
a45d4f1307
3 changed files with 0 additions and 79 deletions
|
@ -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
|
|
|
@ -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
|
|
|
@ -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')
|
|
||||||
}
|
|
Loading…
Reference in a new issue