Class: Ridley::ChefObject
- Inherits:
-
Object
- Object
- Ridley::ChefObject
show all
- Includes:
- Chozo::VariaModel, Comparable
- Defined in:
- lib/ridley/chef_object.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(resource, new_attrs = {}) ⇒ ChefObject
Returns a new instance of ChefObject.
48
49
50
51
|
# File 'lib/ridley/chef_object.rb', line 48
def initialize(resource, new_attrs = {})
@resource = resource
mass_assign(new_attrs)
end
|
Class Method Details
.chef_id ⇒ String?
5
6
7
|
# File 'lib/ridley/chef_object.rb', line 5
def chef_id
@chef_id
end
|
.chef_json_class ⇒ String?
30
31
32
|
# File 'lib/ridley/chef_object.rb', line 30
def chef_json_class
@chef_json_class
end
|
.chef_type ⇒ String
17
18
19
|
# File 'lib/ridley/chef_object.rb', line 17
def chef_type
@chef_type ||= self.class.name.underscore
end
|
.set_chef_id(identifier) ⇒ String
12
13
14
|
# File 'lib/ridley/chef_object.rb', line 12
def set_chef_id(identifier)
@chef_id = identifier.to_sym
end
|
.set_chef_json_class(klass) ⇒ String
37
38
39
40
|
# File 'lib/ridley/chef_object.rb', line 37
def set_chef_json_class(klass)
@chef_json_class = klass
attribute(:json_class, default: klass)
end
|
.set_chef_type(type) ⇒ String
24
25
26
27
|
# File 'lib/ridley/chef_object.rb', line 24
def set_chef_type(type)
@chef_type = type.to_s
attribute(:chef_type, default: type)
end
|
Instance Method Details
#<=>(other) ⇒ Boolean
104
105
106
|
# File 'lib/ridley/chef_object.rb', line 104
def <=>(other)
self.chef_id <=> other.chef_id
end
|
#==(other) ⇒ Object
108
109
110
|
# File 'lib/ridley/chef_object.rb', line 108
def ==(other)
self.chef_id == other.chef_id
end
|
#chef_id ⇒ String
93
94
95
|
# File 'lib/ridley/chef_object.rb', line 93
def chef_id
get_attribute(self.class.chef_id)
end
|
#eql?(other) ⇒ Boolean
115
116
117
|
# File 'lib/ridley/chef_object.rb', line 115
def eql?(other)
self.class == other.class && self == other
end
|
#hash ⇒ Object
119
120
121
|
# File 'lib/ridley/chef_object.rb', line 119
def hash
self.chef_id.hash
end
|
#inspect ⇒ Object
97
98
99
|
# File 'lib/ridley/chef_object.rb', line 97
def inspect
"#<#{self.class} chef_id:#{self.chef_id}, attributes:#{self._attributes_}>"
end
|
#reload ⇒ Object
Reload the attributes of the instantiated resource
87
88
89
90
|
# File 'lib/ridley/chef_object.rb', line 87
def reload
mass_assign(resource.find(self)._attributes_)
self
end
|
#save ⇒ Boolean
Creates a resource on the target remote or updates one if the resource already exists.
60
61
62
63
64
65
66
67
68
|
# File 'lib/ridley/chef_object.rb', line 60
def save
raise Errors::InvalidResource.new(self.errors) unless valid?
mass_assign(resource.create(self)._attributes_)
true
rescue Errors::HTTPConflict
self.update
true
end
|
#update ⇒ Boolean
Updates the instantiated resource on the target remote with any changes made to self
77
78
79
80
81
82
|
# File 'lib/ridley/chef_object.rb', line 77
def update
raise Errors::InvalidResource.new(self.errors) unless valid?
mass_assign(resource.update(self)._attributes_)
true
end
|