Module: Loco::Persistable
- Included in:
- Model
- Defined in:
- lib/motion-loco/persistable.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
- #destroy(&block) ⇒ Object
- #load(id, data) ⇒ Object
- #new? ⇒ Boolean
- #save(&block) ⇒ Object
- #serialize(options = {}) ⇒ Object
Class Method Details
.included(base) ⇒ Object
90 91 92 |
# File 'lib/motion-loco/persistable.rb', line 90 def self.included(base) base.extend(ClassMethods) end |
Instance Method Details
#destroy(&block) ⇒ Object
5 6 7 8 9 10 11 12 |
# File 'lib/motion-loco/persistable.rb', line 5 def destroy(&block) adapter = self.class.get_class_adapter unless self.new? adapter.delete_record(self) do |record| block.call(record) if block.is_a? Proc end end end |
#load(id, data) ⇒ Object
14 15 16 17 18 |
# File 'lib/motion-loco/persistable.rb', line 14 def load(id, data) data.merge!({ id: id }) self.set_properties(data) self end |
#new? ⇒ Boolean
20 21 22 |
# File 'lib/motion-loco/persistable.rb', line 20 def new? self.id.nil? end |
#save(&block) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/motion-loco/persistable.rb', line 24 def save(&block) adapter = self.class.get_class_adapter if self.new? adapter.create_record(self) do |record| block.call(record) if block.is_a? Proc end else adapter.update_record(self) do |record| block.call(record) if block.is_a? Proc end end end |
#serialize(options = {}) ⇒ Object
37 38 39 |
# File 'lib/motion-loco/persistable.rb', line 37 def serialize(={}) self.class.get_class_adapter.serialize(self, ) end |