Module: Reins::Model::Persistence
- Included in:
- Base
- Defined in:
- lib/reins/model/persistence.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
- #destroy ⇒ Object
- #new_record? ⇒ Boolean
- #persisted? ⇒ Boolean
- #reload ⇒ Object
- #save ⇒ Object
- #save! ⇒ Object
- #update(attrs) ⇒ Object
- #update!(attrs) ⇒ Object
Class Method Details
.included(base) ⇒ Object
4 5 6 |
# File 'lib/reins/model/persistence.rb', line 4 def self.included(base) base.extend(ClassMethods) end |
Instance Method Details
#destroy ⇒ Object
64 65 66 67 68 69 70 71 |
# File 'lib/reins/model/persistence.rb', line 64 def destroy run_callbacks(:before_destroy) if respond_to?(:run_callbacks) sql = "DELETE FROM #{self.class.table_name} WHERE #{self.class.primary_key} = ?" Reins::Database.connection.execute(sql, [id]) @persisted = false run_callbacks(:after_destroy) if respond_to?(:run_callbacks) self end |
#new_record? ⇒ Boolean
81 |
# File 'lib/reins/model/persistence.rb', line 81 def new_record? = !persisted? |
#persisted? ⇒ Boolean
80 |
# File 'lib/reins/model/persistence.rb', line 80 def persisted? = @persisted == true |
#reload ⇒ Object
73 74 75 76 77 78 |
# File 'lib/reins/model/persistence.rb', line 73 def reload record = self.class.find(id) @attributes = record.send(:attributes_hash).dup @associations = nil self end |
#save ⇒ Object
43 44 45 46 47 48 |
# File 'lib/reins/model/persistence.rb', line 43 def save return false if respond_to?(:valid?) && !valid? run_save_callbacks { persisted? ? update_record : insert_record } true end |
#save! ⇒ Object
50 51 52 |
# File 'lib/reins/model/persistence.rb', line 50 def save! save || raise(Reins::Model::RecordInvalid, self) end |
#update(attrs) ⇒ Object
54 55 56 57 |
# File 'lib/reins/model/persistence.rb', line 54 def update(attrs) attrs.each { |k, v| @attributes[k.to_s] = v } save end |
#update!(attrs) ⇒ Object
59 60 61 62 |
# File 'lib/reins/model/persistence.rb', line 59 def update!(attrs) attrs.each { |k, v| @attributes[k.to_s] = v } save! end |