Module: SimplyStored::InstanceMethods

Defined in:
lib/simply_stored/instance_methods.rb

Instance Method Summary collapse

Instance Method Details

#==(other) ⇒ Object



9
10
11
# File 'lib/simply_stored/instance_methods.rb', line 9

def ==(other)
  other._id == _id && other._rev == _rev
end

#attributes=(attr) ⇒ Object



42
43
44
# File 'lib/simply_stored/instance_methods.rb', line 42

def attributes=(attr)
  super(_remove_protected_attributes(attr))
end

#deleted?Boolean

Returns:

  • (Boolean)


57
58
59
60
61
62
63
# File 'lib/simply_stored/instance_methods.rb', line 57

def deleted?
  if self.class.soft_deleting_enabled?
    !send(self.class.soft_delete_attribute).nil?
  else
    false
  end
end

#destroy(override_soft_delete = false) ⇒ Object Also known as: delete



25
26
27
28
29
30
31
32
33
34
# File 'lib/simply_stored/instance_methods.rb', line 25

def destroy(override_soft_delete=false)
  check_and_destroy_dependents
  if self.class.soft_deleting_enabled? && !override_soft_delete
    _mark_as_deleted
  else
    self.skip_callbacks = true if self.class.soft_deleting_enabled? && deleted?
    CouchPotato.database.destroy_document(self)
    freeze
  end
end

#eql?(other) ⇒ Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/simply_stored/instance_methods.rb', line 13

def eql?(other)
  self.==(other)
end

#initialize(attributes = {}, &blk) ⇒ Object



4
5
6
7
# File 'lib/simply_stored/instance_methods.rb', line 4

def initialize(attributes = {}, &blk)
  super(_remove_protected_attributes(attributes))
  blk.call(self) if blk
end

#reloadObject



46
47
48
49
50
51
52
53
54
55
# File 'lib/simply_stored/instance_methods.rb', line 46

def reload
  instance = self.class.find(_id, :with_deleted => true)
  instance.attributes.each do |attribute, value|
    send "#{attribute}=", value
  end
  self._rev = instance._rev
  reset_dirty_attributes
  reset_association_caches
  self
end

#save(validate = true) ⇒ Object



17
18
19
# File 'lib/simply_stored/instance_methods.rb', line 17

def save(validate = true)
  CouchPotato.database.save_document(self, validate)
end

#save!Object



21
22
23
# File 'lib/simply_stored/instance_methods.rb', line 21

def save!
  CouchPotato.database.save_document!(self)
end

#update_attributes(attributes = {}) ⇒ Object



37
38
39
40
# File 'lib/simply_stored/instance_methods.rb', line 37

def update_attributes(attributes = {})
  self.attributes = attributes
  save
end