module Loco::Persistable

Public Class Methods

included(base) click to toggle source
# File lib/motion-loco/persistable.rb, line 90
def self.included(base)
  base.extend(ClassMethods)
end

Public Instance Methods

destroy(&block) click to toggle source
# 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) click to toggle source
# File lib/motion-loco/persistable.rb, line 14
def load(id, data)
  data.merge!({ id: id })
  self.set_properties(data)
  self
end
new?() click to toggle source
# File lib/motion-loco/persistable.rb, line 20
def new?
  self.id.nil?
end
save(&block) click to toggle source
# 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={}) click to toggle source
# File lib/motion-loco/persistable.rb, line 37
def serialize(options={})
  self.class.get_class_adapter.serialize(self, options)
end