summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel DeLeo <dan@opscode.com>2011-04-22 15:55:21 -0700
committerDaniel DeLeo <dan@opscode.com>2011-04-22 15:55:21 -0700
commitcaf215248885df3faa5131eb19cc70819671aa0b (patch)
treee6b7773a5277ae9cbdd0d488adb48491d5bd7aa4
parent21564e70292015588ab8d47720a9a26f7122d8d5 (diff)
parent0200791b72e9d6a929080d11488b2229ba5f520f (diff)
downloadchef-caf215248885df3faa5131eb19cc70819671aa0b.tar.gz
Merge branch 'CHEF-2258'
-rw-r--r--chef/lib/chef/resource.rb17
1 files changed, 9 insertions, 8 deletions
diff --git a/chef/lib/chef/resource.rb b/chef/lib/chef/resource.rb
index 6dbbdec29e..b92f52c8e9 100644
--- a/chef/lib/chef/resource.rb
+++ b/chef/lib/chef/resource.rb
@@ -70,6 +70,7 @@ F
end
+ FORBIDDEN_IVARS = [:@run_context, :@node]
HIDDEN_IVARS = [:@allowed_actions, :@resource_name, :@source_line, :@run_context, :@name, :@node]
include Chef::Mixin::CheckHelper
@@ -320,7 +321,7 @@ F
end
def inspect
- ivars = instance_variables.map { |ivar| ivar.to_sym } - HIDDEN_IVARS
+ ivars = instance_variables.map { |ivar| ivar.to_sym } - FORBIDDEN_IVARS
ivars.inject("<#{to_s}") do |str, ivar|
str << " #{ivar}: #{instance_variable_get(ivar).inspect}"
end << ">"
@@ -328,11 +329,10 @@ F
# Serialize this object as a hash
def to_json(*a)
+ safe_ivars = instance_variables.map { |ivar| ivar.to_sym } - FORBIDDEN_IVARS
instance_vars = Hash.new
- self.instance_variables.each do |iv|
- unless iv == "@run_context"
- instance_vars[iv] = self.instance_variable_get(iv)
- end
+ safe_ivars.each do |iv|
+ instance_vars[iv.to_s.sub(/^@/, '')] = instance_variable_get(iv)
end
results = {
'json_class' => self.class.name,
@@ -342,10 +342,11 @@ F
end
def to_hash
+ safe_ivars = instance_variables.map { |ivar| ivar.to_sym } - FORBIDDEN_IVARS
instance_vars = Hash.new
- self.instance_variables.each do |iv|
+ safe_ivars.each do |iv|
key = iv.to_s.sub(/^@/,'').to_sym
- instance_vars[key] = self.instance_variable_get(iv) unless (key == :run_context) || (key == :node)
+ instance_vars[key] = instance_variable_get(iv)
end
instance_vars
end
@@ -444,7 +445,7 @@ F
def json_create(o)
resource = self.new(o["instance_vars"]["@name"])
o["instance_vars"].each do |k,v|
- resource.instance_variable_set(k.to_sym, v)
+ resource.instance_variable_set("@#{k}".to_sym, v)
end
resource
end