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