From 8a4e2e9378fe617b0d6b7210ed63f6d5e5bd9956 Mon Sep 17 00:00:00 2001 From: James Turnbull Date: Tue, 21 Oct 2008 09:50:54 +1100 Subject: Fixed #1663 - Regression relating to facter fact naming from 0.24.5 --- CHANGELOG | 2 ++ lib/puppet/parser/templatewrapper.rb | 3 ++- spec/unit/parser/templatewrapper.rb | 15 ++++++++++++++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index abd185663..1046384c5 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,6 @@ 0.24.6 + Fixed #1663 - Regression relating to facter fact naming from 0.24.5 + Fixed #1655 - Provider::Confine::Variable tests are broken Fixed #1646 - service puppet status does not work as non-root diff --git a/lib/puppet/parser/templatewrapper.rb b/lib/puppet/parser/templatewrapper.rb index fc716b0fd..824fc48ef 100644 --- a/lib/puppet/parser/templatewrapper.rb +++ b/lib/puppet/parser/templatewrapper.rb @@ -78,7 +78,8 @@ class Puppet::Parser::TemplateWrapper # to the regular methods. benchmark(:debug, "Bound template variables for #{file}") do scope.to_hash.each { |name, value| - instance_variable_set("@#{name}", value) + realname = name.gsub(/[^\w]/, "_") + instance_variable_set("@#{realname}", value) } end diff --git a/spec/unit/parser/templatewrapper.rb b/spec/unit/parser/templatewrapper.rb index 20ea76921..a8c464771 100755 --- a/spec/unit/parser/templatewrapper.rb +++ b/spec/unit/parser/templatewrapper.rb @@ -78,5 +78,18 @@ describe Puppet::Parser::TemplateWrapper do @tw.result @tw.instance_variable_get("@one").should == "foo" - end + end + + %w{! . ; :}.each do |badchar| + it "should translate #{badchar} to _ when setting the instance variables" do + template_mock = mock("template", :result => "woot!") + File.expects(:read).with("/tmp/fake_template").returns("template contents") + ERB.expects(:new).with("template contents", 0, "-").returns(template_mock) + + @scope.expects(:to_hash).returns("one#{badchar}" => "foo") + @tw.result + + @tw.instance_variable_get("@one_").should == "foo" + end + end end -- cgit