module MotionDataWrapper::Model::Persistence

Public Class Methods

included(base) click to toggle source
# File lib/motion_data_wrapper/model/persistence.rb, line 5
def self.included(base)
  base.extend(ClassMethods)
end

Public Instance Methods

awakeFromFetch() click to toggle source
Calls superclass method
# File lib/motion_data_wrapper/model/persistence.rb, line 36
def awakeFromFetch
  super
  after_fetch if respond_to? :after_fetch
end
awakeFromInsert() click to toggle source
Calls superclass method
# File lib/motion_data_wrapper/model/persistence.rb, line 41
def awakeFromInsert
  super
  after_fetch if respond_to? :after_fetch
end
destroy() click to toggle source
# File lib/motion_data_wrapper/model/persistence.rb, line 46
def destroy

  if context = managedObjectContext
    before_destroy_callback
    context.deleteObject(self)
    error = Pointer.new(:object)
    if context.save(error)
      @destroyed = true
      after_destroy_callback
      freeze
    end
  end

end
destroyed?() click to toggle source
# File lib/motion_data_wrapper/model/persistence.rb, line 61
def destroyed?
  @destroyed || false
end
new_record?() click to toggle source
# File lib/motion_data_wrapper/model/persistence.rb, line 65
def new_record?
  @new_record || false
end
persisted?() click to toggle source
# File lib/motion_data_wrapper/model/persistence.rb, line 69
def persisted?
  !(new_record? || destroyed?)
end
save() click to toggle source
# File lib/motion_data_wrapper/model/persistence.rb, line 73
def save
  begin
    save!
  rescue MotionDataWrapper::RecordNotSaved
    return false
  end
  true
end
save!() click to toggle source
# File lib/motion_data_wrapper/model/persistence.rb, line 82
def save!        
  unless context = managedObjectContext
    context = App.delegate.managedObjectContext
    context.insertObject(self)
  end

  before_save_callback
  error = Pointer.new(:object)
  unless context.save(error)
    managedObjectContext.deleteObject(self)
    raise MotionDataWrapper::RecordNotSaved, self and return false
  end
  instance_variable_set('@new_record', false)
  after_save_callback

  true
end

Private Instance Methods

after_destroy_callback() click to toggle source
# File lib/motion_data_wrapper/model/persistence.rb, line 125
def after_destroy_callback
  after_destroy if respond_to? :after_destroy
end
after_save_callback() click to toggle source
# File lib/motion_data_wrapper/model/persistence.rb, line 112
def after_save_callback
  if @is_new_record
    after_create if respond_to? :after_create
  else
    after_update if respond_to? :after_update
  end
  after_save if respond_to? :after_save
end
before_destroy_callback() click to toggle source
# File lib/motion_data_wrapper/model/persistence.rb, line 121
def before_destroy_callback
  before_destroy if respond_to? :before_destroy
end
before_save_callback() click to toggle source
# File lib/motion_data_wrapper/model/persistence.rb, line 102
def before_save_callback
  before_save if respond_to? :before_save
  @is_new_record = new_record?
  if @is_new_record
    before_create if respond_to? :before_create
  else
    before_update if respond_to? :before_update
  end
end