summaryrefslogtreecommitdiffstats
path: root/lib/puppet/parser
diff options
context:
space:
mode:
authorLuke Kanies <luke@madstop.com>2009-04-07 18:41:51 -0500
committerJames Turnbull <james@lovedthanlost.net>2009-04-22 14:39:38 +1000
commitefe68165b382d6860e83b0bb1d1108f36fa3d2fd (patch)
tree0144f344f2d0474f28aa055ecdc8b521249e251c /lib/puppet/parser
parenta3b1e8ce9c8ad97ed3bcf65c0554ae34690716fa (diff)
downloadpuppet-efe68165b382d6860e83b0bb1d1108f36fa3d2fd.tar.gz
puppet-efe68165b382d6860e83b0bb1d1108f36fa3d2fd.tar.xz
puppet-efe68165b382d6860e83b0bb1d1108f36fa3d2fd.zip
Removing unnecessary parser variables when yaml-dumping
Also working around a YAML bug in Ruby. And fixing tests that were broken in a previous commit in this rebase but not caught earlier. Signed-off-by: Luke Kanies <luke@madstop.com>
Diffstat (limited to 'lib/puppet/parser')
-rw-r--r--lib/puppet/parser/resource.rb2
-rw-r--r--lib/puppet/parser/resource/param.rb4
-rw-r--r--lib/puppet/parser/resource/reference.rb6
-rw-r--r--lib/puppet/parser/yaml_trimmer.rb11
4 files changed, 22 insertions, 1 deletions
diff --git a/lib/puppet/parser/resource.rb b/lib/puppet/parser/resource.rb
index 23df1c624..8d5e5a359 100644
--- a/lib/puppet/parser/resource.rb
+++ b/lib/puppet/parser/resource.rb
@@ -5,6 +5,7 @@ class Puppet::Parser::Resource
require 'puppet/parser/resource/reference'
require 'puppet/util/tagging'
require 'puppet/file_collection/lookup'
+ require 'puppet/parser/yaml_trimmer'
include Puppet::FileCollection::Lookup
@@ -13,6 +14,7 @@ class Puppet::Parser::Resource
include Puppet::Util::Errors
include Puppet::Util::Logging
include Puppet::Util::Tagging
+ include Puppet::Parser::YamlTrimmer
attr_accessor :source, :scope, :rails_id
attr_accessor :virtual, :override, :translated
diff --git a/lib/puppet/parser/resource/param.rb b/lib/puppet/parser/resource/param.rb
index 6e22d3e17..0f791ecc5 100644
--- a/lib/puppet/parser/resource/param.rb
+++ b/lib/puppet/parser/resource/param.rb
@@ -1,4 +1,5 @@
require 'puppet/file_collection/lookup'
+require 'puppet/parser/yaml_trimmer'
# The parameters we stick in Resources.
class Puppet::Parser::Resource::Param
@@ -8,6 +9,7 @@ class Puppet::Parser::Resource::Param
include Puppet::Util::MethodHelper
include Puppet::FileCollection::Lookup
+ include Puppet::Parser::YamlTrimmer
def initialize(hash)
set_options(hash)
@@ -16,7 +18,7 @@ class Puppet::Parser::Resource::Param
end
def inspect
- "#<#{self.class} @name => #{name}, @value => #{value}, @source => #{source.name}, @line => #{line}>"
+ "#<#{self.class} @name => #{name}, @value => #{value}, @source => #{source.name if source}, @line => #{line}>"
end
def line_to_i
diff --git a/lib/puppet/parser/resource/reference.rb b/lib/puppet/parser/resource/reference.rb
index 0c28cf0df..cacd0707e 100644
--- a/lib/puppet/parser/resource/reference.rb
+++ b/lib/puppet/parser/resource/reference.rb
@@ -1,9 +1,11 @@
# A reference to a resource. Mostly just the type and title.
require 'puppet/resource/reference'
require 'puppet/file_collection/lookup'
+require 'puppet/parser/yaml_trimmer'
# A reference to a resource. Mostly just the type and title.
class Puppet::Parser::Resource::Reference < Puppet::Resource::Reference
+ include Puppet::Parser::YamlTrimmer
include Puppet::FileCollection::Lookup
include Puppet::Util::MethodHelper
include Puppet::Util::Errors
@@ -69,6 +71,10 @@ class Puppet::Parser::Resource::Reference < Puppet::Resource::Reference
requiredopts(:type, :title)
end
+ def skip_for_yaml
+ %w{@typeclass @definedtype}
+ end
+
def to_ref
# We have to return different cases to provide backward compatibility
# from 0.24.x to 0.23.x.
diff --git a/lib/puppet/parser/yaml_trimmer.rb b/lib/puppet/parser/yaml_trimmer.rb
new file mode 100644
index 000000000..14064c8e6
--- /dev/null
+++ b/lib/puppet/parser/yaml_trimmer.rb
@@ -0,0 +1,11 @@
+module Puppet::Parser::YamlTrimmer
+ REMOVE = %w{@scope @source}
+
+ def to_yaml_properties
+ r = instance_variables - REMOVE
+ if respond_to?(:skip_for_yaml)
+ r -= skip_for_yaml()
+ end
+ r
+ end
+end