summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Wolfe <jes5199@gmail.com>2011-01-03 16:28:24 -0800
committerJesse Wolfe <jes5199@gmail.com>2011-01-03 16:28:24 -0800
commit7661ba82a3c765d4bf8a400a3c770f351c541f96 (patch)
tree89e9736c4357dd17ef6bc128af11890a5f93a64e
parent10f89de6e55429fcb055b15a513d01e6e20f03b9 (diff)
downloadpuppet-7661ba82a3c765d4bf8a400a3c770f351c541f96.tar.gz
puppet-7661ba82a3c765d4bf8a400a3c770f351c541f96.tar.xz
puppet-7661ba82a3c765d4bf8a400a3c770f351c541f96.zip
maint: Prune #inspect methods on various objects
Ruby's default #inspect method can lead to printing factorial-order output for large graphs of objects. Since we have large graphs of objects, this is not optimal. This patch replaces a few well-connected objects' #inspect methods with methods that produce reduced output, and are thus much faster. Paired-With: Nick Lewis <nick@puppetlabs.com>
-rw-r--r--lib/puppet/parser/ast.rb4
-rw-r--r--lib/puppet/relationship.rb4
-rw-r--r--lib/puppet/resource.rb4
-rw-r--r--lib/puppet/resource/type_collection.rb4
-rw-r--r--lib/puppet/simple_graph.rb4
5 files changed, 20 insertions, 0 deletions
diff --git a/lib/puppet/parser/ast.rb b/lib/puppet/parser/ast.rb
index 54e034acb..a5aaeddc4 100644
--- a/lib/puppet/parser/ast.rb
+++ b/lib/puppet/parser/ast.rb
@@ -19,6 +19,10 @@ class Puppet::Parser::AST
attr_accessor :parent, :scope
+ def inspect
+ "( #{self.class} #{self.to_s} #{@children.inspect} )"
+ end
+
# don't fetch lexer comment by default
def use_docs
self.class.use_docs
diff --git a/lib/puppet/relationship.rb b/lib/puppet/relationship.rb
index 7079fb44b..08d7d042b 100644
--- a/lib/puppet/relationship.rb
+++ b/lib/puppet/relationship.rb
@@ -71,6 +71,10 @@ class Puppet::Relationship
"#{source} => #{target}"
end
+ def inspect
+ "{ #{source} => #{target} }"
+ end
+
def to_pson_data_hash
data = {
'source' => source.to_s,
diff --git a/lib/puppet/resource.rb b/lib/puppet/resource.rb
index 4f0d50750..b0a3ecee6 100644
--- a/lib/puppet/resource.rb
+++ b/lib/puppet/resource.rb
@@ -46,6 +46,10 @@ class Puppet::Resource
resource
end
+ def inspect
+ "#{@type}[#{@title}]#{to_hash.inspect}"
+ end
+
def to_pson_data_hash
data = ([:type, :title, :tags] + ATTRIBUTES).inject({}) do |hash, param|
next hash unless value = self.send(param)
diff --git a/lib/puppet/resource/type_collection.rb b/lib/puppet/resource/type_collection.rb
index 6a03458b3..277d37b18 100644
--- a/lib/puppet/resource/type_collection.rb
+++ b/lib/puppet/resource/type_collection.rb
@@ -19,6 +19,10 @@ class Puppet::Resource::TypeCollection
@watched_files = {}
end
+ def inspect
+ "TypeCollection" + { :hostclasses => @hostclasses.keys, :definitions => @definitions.keys, :nodes => @nodes.keys }.inspect
+ end
+
def <<(thing)
add(thing)
self
diff --git a/lib/puppet/simple_graph.rb b/lib/puppet/simple_graph.rb
index 55b39fadf..c5dac0f6c 100644
--- a/lib/puppet/simple_graph.rb
+++ b/lib/puppet/simple_graph.rb
@@ -80,6 +80,10 @@ class Puppet::SimpleGraph
vertex.to_s
end
+ def inspect
+ { :@adjacencies => @adjacencies, :@vertex => @vertex.to_s }.inspect
+ end
+
private
# These methods exist so we don't need a Hash with a default proc.