Module: Chef::ResourceCollection::ResourceCollectionSerialization
- Included in:
- Chef::ResourceCollection, ResourceList, ResourceSet
- Defined in:
- lib/chef/resource_collection/resource_collection_serialization.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
- #is_chef_resource!(arg) ⇒ Object
-
#to_hash ⇒ Object
Serialize this object as a hash.
- #to_json(*a) ⇒ Object
Class Method Details
.included(base) ⇒ Object
37 38 39 |
# File 'lib/chef/resource_collection/resource_collection_serialization.rb', line 37 def self.included(base) base.extend(ClassMethods) end |
Instance Method Details
#is_chef_resource!(arg) ⇒ Object
51 52 53 54 55 56 |
# File 'lib/chef/resource_collection/resource_collection_serialization.rb', line 51 def is_chef_resource!(arg) unless arg.kind_of?(Chef::Resource) raise ArgumentError, "Cannot insert a #{arg.class} into a resource collection: must be a subclass of Chef::Resource" end true end |
#to_hash ⇒ Object
Serialize this object as a hash
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/chef/resource_collection/resource_collection_serialization.rb', line 22 def to_hash instance_vars = Hash.new self.instance_variables.each do |iv| instance_vars[iv] = self.instance_variable_get(iv) end { "json_class" => self.class.name, "instance_vars" => instance_vars, } end |
#to_json(*a) ⇒ Object
33 34 35 |
# File 'lib/chef/resource_collection/resource_collection_serialization.rb', line 33 def to_json(*a) Chef::JSONCompat.to_json(to_hash, *a) end |