Module: HashPersistent::Resource::InstanceMethods

Defined in:
lib/hash-persistent/resource.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#keyObject

Returns the value of attribute key.



45
46
47
# File 'lib/hash-persistent/resource.rb', line 45

def key
  @key
end

Instance Method Details

#deleteObject

Raises:

  • (RuntimeError)


57
58
59
60
61
62
63
64
# File 'lib/hash-persistent/resource.rb', line 57

def delete
  raise RuntimeError unless key
  return unless self.class.store.has_key?(prefix_key)
  # TODO concurrency here, the store's delete call should cope, but we don't want the callback if something else got in first?
  # Alternative: ensure that callback handles this case, which is true of HashPersistent::Collection
  self.class.store.delete(prefix_key)
  self.class.on_delete.call(self) if self.class.on_delete
end

#prefix_keyObject



47
48
49
# File 'lib/hash-persistent/resource.rb', line 47

def prefix_key
  self.class.prefix + key
end

#saveObject

Raises:

  • (RuntimeError)


51
52
53
54
55
# File 'lib/hash-persistent/resource.rb', line 51

def save
  raise RuntimeError unless key
  self.class.store[prefix_key] = self
  self.class.on_save.call(self) if self.class.on_save
end