Adjust to use default URI.escape escape list

Conform to RFC per comments on: https://github.com/puppetlabs/puppetlabs-stdlib/pull/164

Conflicts:
	lib/puppet/parser/functions/uriescape.rb
	spec/unit/puppet/parser/functions/uriescape_spec.rb
This commit is contained in:
Tomas Doran 2013-07-02 11:18:42 +01:00 committed by Adrien Thebo
parent e0d4588bd2
commit b2e23dc65b
2 changed files with 3 additions and 4 deletions

View file

@ -15,7 +15,6 @@ module Puppet::Parser::Functions
value = arguments[0]
klass = value.class
unsafe = ":/?#[]@!$&'()*+,;= "
unless [Array, String].include?(klass)
raise(Puppet::ParseError, 'uriescape(): Requires either ' +
@ -26,7 +25,7 @@ module Puppet::Parser::Functions
# Numbers in Puppet are often string-encoded which is troublesome ...
result = value.collect { |i| i.is_a?(String) ? URI.escape(i,unsafe) : i }
else
result = URI.escape(value,unsafe)
result = URI.escape(value)
end
return result

View file

@ -13,8 +13,8 @@ describe "the uriescape function" do
end
it "should uriescape a string" do
result = scope.function_uriescape([":/?#[]@!$&'()*+,;= "])
result.should(eq('%3A%2F%3F%23%5B%5D%40%21%24%26%27%28%29%2A%2B%2C%3B%3D%20'))
result = scope.function_uriescape([":/?#[]@!$&'()*+,;= \"{}"])
result.should(eq(':/?%23[]@!$&\'()*+,;=%20%22%7B%7D'))
end
it "should do nothing if a string is already safe" do