summaryrefslogtreecommitdiffstats
path: root/lib/puppet/parser/ast/objectref.rb
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-01-18 17:24:15 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-01-18 17:24:15 +0000
commit6bab167dcbb274fd302a65d567d6af0ef6621b79 (patch)
tree92093e971bab20400ac8218a5cf1b159e64b5cbb /lib/puppet/parser/ast/objectref.rb
parented39be9dd2ecdbe9a8624ed2f6c03334e123e81d (diff)
downloadpuppet-6bab167dcbb274fd302a65d567d6af0ef6621b79.tar.gz
puppet-6bab167dcbb274fd302a65d567d6af0ef6621b79.tar.xz
puppet-6bab167dcbb274fd302a65d567d6af0ef6621b79.zip
Made lots of small changes, mostly to help usability but also fixed a couple of key bugs
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@841 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib/puppet/parser/ast/objectref.rb')
-rw-r--r--lib/puppet/parser/ast/objectref.rb20
1 files changed, 16 insertions, 4 deletions
diff --git a/lib/puppet/parser/ast/objectref.rb b/lib/puppet/parser/ast/objectref.rb
index e9561d65d..6418c14fb 100644
--- a/lib/puppet/parser/ast/objectref.rb
+++ b/lib/puppet/parser/ast/objectref.rb
@@ -21,7 +21,7 @@ class Puppet::Parser::AST
objnames = [objnames]
end
- # Verify we can find the object.
+ # See if we can look the object up in our scope tree.
begin
object = scope.lookuptype(objtype)
rescue Puppet::ParseError => except
@@ -32,20 +32,32 @@ class Puppet::Parser::AST
error = Puppet::ParseError.new(detail)
error.line = self.line
error.file = self.file
- error.stack = caller
+ error.backtrace = detail.backtrace
+ raise error
+ end
+
+ # If the type isn't defined, verify that it's builtin
+ unless object or Puppet::Type.type(objtype)
+ error = Puppet::ParseError.new("Could not find type %s" %
+ objtype.inspect)
+ error.line = self.line
+ error.file = self.file
raise error
end
- Puppet.debug "ObjectRef returned type %s" % object
# should we implicitly iterate here?
# yes, i believe that we essentially have to...
- objnames.collect { |objname|
+ ret = objnames.collect { |objname|
if object.is_a?(AST::Component)
objname = "%s[%s]" % [objtype,objname]
objtype = "component"
end
[objtype,objname]
}.reject { |obj| obj.nil? }
+
+ # Return a flattened array, since we know that we've created an
+ # array
+ return *ret
end
def tree(indent = 0)