diff options
author | John Keiser <john@johnkeiser.com> | 2015-12-02 17:55:35 -0800 |
---|---|---|
committer | John Keiser <john@johnkeiser.com> | 2015-12-02 18:07:42 -0800 |
commit | 0c5ef9442d6fe8be5a9d0eb5d50ace124adeffd5 (patch) | |
tree | 3d8c709dc70407f1aadd98b10060b79626b72976 /lib/chef/resource.rb | |
parent | 0b2cf51f77aa1988ad9af1110e36e5ce478af3ac (diff) | |
download | chef-0c5ef9442d6fe8be5a9d0eb5d50ace124adeffd5.tar.gz |
Make to_hash include properties with defaults (fixes #4127)jk/4127
Diffstat (limited to 'lib/chef/resource.rb')
-rw-r--r-- | lib/chef/resource.rb | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/chef/resource.rb b/lib/chef/resource.rb index 90453bd00e..3edcc24e17 100644 --- a/lib/chef/resource.rb +++ b/lib/chef/resource.rb @@ -664,13 +664,18 @@ class Chef end def to_hash + # Grab all current state, then any other ivars (backcompat) + result = {} + self.class.state_properties.each do |p| + result[p.name] = p.get(self) + end safe_ivars = instance_variables.map { |ivar| ivar.to_sym } - FORBIDDEN_IVARS - instance_vars = Hash.new safe_ivars.each do |iv| key = iv.to_s.sub(/^@/,'').to_sym - instance_vars[key] = instance_variable_get(iv) + next if result.has_key?(key) + result[key] = instance_variable_get(iv) end - instance_vars + result end def self.json_create(o) |