class Duracloud::AbstractEntity
Public Instance Methods
delete()
click to toggle source
# File lib/duracloud/abstract_entity.rb, line 13 def delete raise Error, "Cannot delete, already deleted." if deleted? reset_properties do_delete deleted! freeze end
deleted?()
click to toggle source
# File lib/duracloud/abstract_entity.rb, line 25 def deleted? !!@deleted end
load_properties()
click to toggle source
# File lib/duracloud/abstract_entity.rb, line 39 def load_properties do_load_properties persisted! end
persisted?()
click to toggle source
# File lib/duracloud/abstract_entity.rb, line 21 def persisted? !!@persisted end
properties()
click to toggle source
Return the properties associated with this resource,
loading from Duracloud if necessary.
@return [Duracloud::Properties] the properties @raise [Duracloud::NotFoundError] if the resource is marked persisted
but does not exist in Duracloud
# File lib/duracloud/abstract_entity.rb, line 34 def properties load_properties if persisted? && @properties.nil? @properties ||= Properties.new end
save()
click to toggle source
# File lib/duracloud/abstract_entity.rb, line 6 def save raise Error, "Cannot save deleted #{self.class}." if deleted? do_save persisted! reset_properties end
Private Instance Methods
deleted!()
click to toggle source
# File lib/duracloud/abstract_entity.rb, line 54 def deleted! @deleted = true @persisted = false end
do_delete()
click to toggle source
# File lib/duracloud/abstract_entity.rb, line 59 def do_delete raise NotImplementedError, "Subclasses must implement `do_delete`." end
do_load_properties()
click to toggle source
# File lib/duracloud/abstract_entity.rb, line 46 def do_load_properties raise NotImplementedError, "Subclasses must implement `#do_load_properties` private method." end
do_save()
click to toggle source
# File lib/duracloud/abstract_entity.rb, line 63 def do_save raise NotImplementedError, "Subclasses must implement `do_save`." end
persisted!()
click to toggle source
# File lib/duracloud/abstract_entity.rb, line 50 def persisted! @persisted = true end
properties=(props)
click to toggle source
# File lib/duracloud/abstract_entity.rb, line 67 def properties=(props) @properties = Properties.new(props) end
properties_class()
click to toggle source
# File lib/duracloud/abstract_entity.rb, line 75 def properties_class Properties end
reset_properties()
click to toggle source
# File lib/duracloud/abstract_entity.rb, line 71 def reset_properties @properties = nil end