diff options
author | Luke Kanies <luke@puppetlabs.com> | 2011-06-16 18:41:19 -0700 |
---|---|---|
committer | Luke Kanies <luke@puppetlabs.com> | 2011-07-15 11:52:16 -0700 |
commit | 3b2a24602d11d4ca2f7e761fb831f126ecf2de62 (patch) | |
tree | a8cb2e1a42d5cf1a8483d3e127ff5348ae72a22a | |
parent | b3c155430965280ab59b1dd70c020c6da3396fc9 (diff) | |
download | puppet-3b2a24602d11d4ca2f7e761fb831f126ecf2de62.tar.gz puppet-3b2a24602d11d4ca2f7e761fb831f126ecf2de62.tar.xz puppet-3b2a24602d11d4ca2f7e761fb831f126ecf2de62.zip |
Adding Scope#each method
The capability was already there via to_hash, and
Enumerable was already included, but this method was
missing. Given the kind of hacking RI is doing,
this seemed appropriate.
Signed-off-by: Luke Kanies <luke@puppetlabs.com>
Reviewed-by: Nick Lewis <nick@puppetlabs.com>
-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")) |