module ActivePStore::Persistence

Attributes

id[R]

Public Instance Methods

destroy() click to toggle source
# File lib/active_pstore/persistence.rb, line 7
def destroy
  ActivePStore::Base.use_connection do |connection|
    connection[self.class.pstore_key].delete_if {|obj| obj.id == self.id }
  end

  self
end
new_record?() click to toggle source
# File lib/active_pstore/persistence.rb, line 15
def new_record?
  @id.nil?
end
persisted?() click to toggle source
# File lib/active_pstore/persistence.rb, line 19
def persisted?
  !new_record?
end
save() click to toggle source
# File lib/active_pstore/persistence.rb, line 23
def save
  ActivePStore::Base.use_connection do |connection|
    if new_record?
      @id = SecureRandom.hex

      if connection[self.class.pstore_key]
        connection[self.class.pstore_key] << self
      else
        connection[self.class.pstore_key] = [self]
      end
    else
      connection[self.class.pstore_key].map! {|obj| obj.id == self.id ? self : obj }
    end
  end

  true
end
update(attrs) click to toggle source
# File lib/active_pstore/persistence.rb, line 47
def update(attrs)
  attrs.each do |attr_name, attr_value|
    self.public_send("#{attr_name}=", attr_value)
  end

  save
end
Also aliased as: update_attributes
update_attribute(attr_name, attr_value) click to toggle source
# File lib/active_pstore/persistence.rb, line 41
def update_attribute(attr_name, attr_value)
  self.public_send("#{attr_name}=", attr_value)

  save
end
update_attributes(attrs)
Alias for: update