module Turnkey

Constants

VERSION

Public Class Methods

archive(instance, key) click to toggle source
# File lib/turnkey/core.rb, line 3
def archive(instance, key)
  if instance.is_a? Array
    archive_array(instance, key)
  else
    archive_instance(instance, key)
  end
  true
end
unarchive(key) click to toggle source
# File lib/turnkey/core.rb, line 12
def unarchive(key)
  data = user_defaults[key]
  archived_klasses = Cache.classes
  archived_klasses.each do |klass|
    klass.class_eval {
      include Turnkey::Proxy
    }
  end
  NSKeyedUnarchiver.unarchiveObjectWithData(data)
end

Private Class Methods

archive_array(array, key) click to toggle source
# File lib/turnkey/core.rb, line 34
def self.archive_array(array, key)
  array.each { |inst| Utility.defineProtocols(inst) }
  archive_instance(array, key)
end
archive_instance(instance, key) click to toggle source
# File lib/turnkey/core.rb, line 27
def self.archive_instance(instance, key)
  Cache.update(instance)
  Utility.defineProtocols(instance)
  archived_data = NSKeyedArchiver.archivedDataWithRootObject(instance)
  user_defaults[key] = archived_data
end
user_defaults() click to toggle source
# File lib/turnkey/core.rb, line 39
def self.user_defaults
  NSUserDefaults.standardUserDefaults
end

Private Instance Methods

archive(instance, key) click to toggle source
# File lib/turnkey/core.rb, line 3
def archive(instance, key)
  if instance.is_a? Array
    archive_array(instance, key)
  else
    archive_instance(instance, key)
  end
  true
end
unarchive(key) click to toggle source
# File lib/turnkey/core.rb, line 12
def unarchive(key)
  data = user_defaults[key]
  archived_klasses = Cache.classes
  archived_klasses.each do |klass|
    klass.class_eval {
      include Turnkey::Proxy
    }
  end
  NSKeyedUnarchiver.unarchiveObjectWithData(data)
end