class RXCode::Model

Attributes

archive_object[R]
ARCHIVE ====================================================================================================

Public Class Methods

class_for_archived_object_type(type) click to toggle source
# File lib/rxcode/models/model.rb, line 33
def self.class_for_archived_object_type(type)
  case type
  when "PBXProject"
    Project
  when "PBXFileReference"
    FileReference
  when "PBXNativeTarget"
    Target
  when "XCConfigurationList"
    BuildConfigurationList
  when "XCBuildConfiguration"
    BuildConfiguration
  end
end
map_archived_object(archived_object) click to toggle source
# File lib/rxcode/models/model.rb, line 48
def self.map_archived_object(archived_object)
  if klass = class_for_archived_object_type(archived_object['isa'])
    klass.new(archived_object)
  end
end
new(source) click to toggle source
# File lib/rxcode/models/model.rb, line 5
def initialize(source)
  case source
  when ArchivedObject, NilClass
    @archive_object = source
  when Archive
    @archive_object = source.root_object
  when String, Hash
    archive = Archive.new(source)
    @archive_object = archive.rootObject
  else
    raise "Unable to initialize #{self.class.name} from #{source.class.name}: #{source.inspect}"
  end
  
  if @archive_object
    @archive_object.model_object = self
    @archive_object.archive.object_mapper ||=
      Proc.new { |archived_object| self.class.map_archived_object(archived_object) }
  end
end
object_at_path(archive_path) click to toggle source
# File lib/rxcode/models/model.rb, line 54
def self.object_at_path(archive_path)
  Archive.new(archive_path).rootObject.model_object
end

Public Instance Methods

archive() click to toggle source
# File lib/rxcode/models/model.rb, line 29
def archive
  archive_object.archive
end
root() click to toggle source
ROOT =======================================================================================================
# File lib/rxcode/models/model.rb, line 60
def root
  self.archive.root_object.model_object
end