diff options
-rw-r--r-- | lib/puppet/parser/scope.rb | 4 | ||||
-rwxr-xr-x | spec/unit/parser/scope_spec.rb | 12 |
2 files changed, 16 insertions, 0 deletions
diff --git a/lib/puppet/parser/scope.rb b/lib/puppet/parser/scope.rb index 7b75ca86b..3a87f964b 100644 --- a/lib/puppet/parser/scope.rb +++ b/lib/puppet/parser/scope.rb @@ -82,6 +82,10 @@ class Puppet::Parser::Scope compiler.catalog end + def each + to_hash.each { |name, value| yield(name, value) } + end + # Proxy accessors def host @compiler.node.name diff --git a/spec/unit/parser/scope_spec.rb b/spec/unit/parser/scope_spec.rb index 887890ead..78feaf08b 100755 --- a/spec/unit/parser/scope_spec.rb +++ b/spec/unit/parser/scope_spec.rb @@ -122,6 +122,18 @@ describe Puppet::Parser::Scope do @scope.should_not be_include("var") end + it "should support iteration over its variables" do + @scope["one"] = "two" + @scope["three"] = "four" + hash = {} + @scope.each { |name, value| hash[name] = value } + hash.should == {"one" => "two", "three" => "four" } + end + + it "should include Enumerable" do + @scope.singleton_class.ancestors.should be_include(Enumerable) + end + describe "and the variable is qualified" do before do @compiler = Puppet::Parser::Compiler.new(Puppet::Node.new("foonode")) |