Skip to content
This repository has been archived by the owner on Jun 20, 2023. It is now read-only.

PoissonBallon/DataModelKit

Repository files navigation

DataModelKit

Version Carthage compatible Platform Build Status Swift 4 codecov License

DataModelKit is a simple and light framework to parse and read *.xcdatamodel files. It provides an API to navigate and explore DataModel

It's used in DataModelGen tools. (available soon)

Usage

Init a DataModel Object

import DataModelKit

static let path = "Project/Ressources/Sample.xcdatamodel"
let model = try? DataModel(with: DataModelKitTests.pathTest)

print(model.entities)

Installation

EasyRealm is available through CocoaPods, Carthage and SPM.

CocoaPods

use_frameworks!

pod "DataModelKit"

Carthage

github 'PoissonBallon/DataModelKit'

SPM

 dependencies: [
    .package(url: "https://github.com/PoissonBallon/DataModelKit.git", .upToNextMinor(from:"1.0.0"))
  ],

API

DataModelKit provide somes structs with attribute to exploite your DataModel

DataModel

It is the root object of your DataModel

public struct DataModel {  
  public let path: Struct   /// Path of the original file.xcdatamodel
  public let entities: [Entity] /// Parsed model's entities
  public let documentVersion: String /// Version of file.xcdatamodel
  public let systemVersion: String /// System version of file.xcdatamodel
  public let minimumToolsVersion: String /// Minimum tools version of file.xcdatamodel
  public let lastSavedToolsVersion: String /// Last saved tools version of file.xcdatamodel
}

Entity

public struct Entity {
  public let name: String ///
  public let userInfos: [UserInfo]
  public let attributes: [Attribute]
  public let relationships: [Relationship]
}

Relationship

public struct Relationship {
  public let name: String
  public let destination: String
  public let inverse: String?
  public let userInfo: [UserInfo]
  public let toMany: Bool
  public let toOne: Bool
  public let optional: Bool
  public let syncable: Bool
  public let ordered: Bool
}

Attribute

public struct Attribute {
  public let name: String
  public let optional: Bool
  public let indexed: Bool
  public let defaultValue: String?
  public let type: String
  public let userInfos: [UserInfo]
}

Author

License

DataModelKit is available under the MIT license. See the LICENSE file for more info.

Other

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published