Swiftpack.co - 0xLet/DataObject as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by 0xLet.
0xLet/DataObject 1.1.1
📦 DataObject(Any)
⭐️ 3
🕓 2 years ago
.package(url: "https://github.com/0xLet/DataObject.git", from: "1.1.1")

DataObject

DataObject(Any)

Basic Example

let obj = DataObject("init_value")
    .set(variable: "SomeValue", value: "qwerty")
    .set(variable: "nil", value: nil)

XCTAssertEqual(obj.value(), "init_value")
XCTAssertEqual(obj.SomeValue.value(), "qwerty")
XCTAssertEqual(obj.nil, DataObject())

SURL JSON Example

"https://jsonplaceholder.typicode.com/users/7".url?
    .get { (obj) in
        print(obj.variables.keys) // [AnyHashable("response"), AnyHashable("data")]
        print(obj.data)
}
JSON
{
  "id": 7,
  "name": "Kurtis Weissnat",
  "username": "Elwyn.Skiles",
  "email": "[email protected]",
  "address": {
    "street": "Rex Trail",
    "suite": "Suite 280",
    "city": "Howemouth",
    "zipcode": "58804-1099",
    "geo": {
      "lat": "24.8918",
      "lng": "21.8984"
    }
  },
  "phone": "210.067.6132",
  "website": "elvis.io",
  "company": {
    "name": "Johns Group",
    "catchPhrase": "Configurable multimedia task-force",
    "bs": "generate enterprise e-tailers"
  }
}

Output: obj.data

DataObject {
|    Variables
|    * id: 7 (__NSCFNumber)
|    * value: 500 bytes (Data)
|    * address: {
    city = Howemouth;
    geo =     {
        lat = "24.8918";
        lng = "21.8984";
    };
    street = "Rex Trail";
    suite = "Suite 280";
    zipcode = "58804-1099";
} (__NSDictionaryI)
|    * email: [email protected] (__NSCFString)
|    * json: {
  "id": 7,
  "name": "Kurtis Weissnat",
  "username": "Elwyn.Skiles",
  "email": "[email protected]",
  "address": {
    "street": "Rex Trail",
    "suite": "Suite 280",
    "city": "Howemouth",
    "zipcode": "58804-1099",
    "geo": {
      "lat": "24.8918",
      "lng": "21.8984"
    }
  },
  "phone": "210.067.6132",
  "website": "elvis.io",
  "company": {
    "name": "Johns Group",
    "catchPhrase": "Configurable multimedia task-force",
    "bs": "generate enterprise e-tailers"
  }
} (String)
|    * website: elvis.io (NSTaggedPointerString)
|    * username: Elwyn.Skiles (__NSCFString)
|    * company: {
    bs = "generate enterprise e-tailers";
    catchPhrase = "Configurable multimedia task-force";
    name = "Johns Group";
} (__NSDictionaryI)
|    * phone: 210.067.6132 (__NSCFString)
|    * name: Kurtis Weissnat (__NSCFString)
}

WTV Example

"https://jsonplaceholder.typicode.com/users/7".url?
    .get { (obj) in
        print(obj.data.wtv(named: "name")!)
}

Output: obj.data.wtv(named: "name")

DataObject.variables["company"]["name"] 👉 FOUND: (label: Optional("name"), value: Johns Group)
DataObject.variables["name"] 👉 FOUND: (label: Optional("name"), value: Kurtis Weissnat)

GitHub

link
Stars: 3
Last commit: 2 years ago
Advertisement: IndiePitcher.com - Cold Email Software for Startups

Release Notes

1.1.1
2 years ago

DataObject

DataObject(Any)

Basic Example

let obj = DataObject("init_value")
    .set(variable: "SomeValue", value: "qwerty")
    .set(variable: "nil", value: nil)

XCTAssertEqual(obj.value(), "init_value")
XCTAssertEqual(obj.SomeValue.value(), "qwerty")
XCTAssertEqual(obj.nil, DataObject())

SURL JSON Example

"https://jsonplaceholder.typicode.com/users/7".url?
    .get { (obj) in
        print(obj.variables.keys) // [AnyHashable("response"), AnyHashable("data")]
        print(obj.data)
}
JSON
{
  "id": 7,
  "name": "Kurtis Weissnat",
  "username": "Elwyn.Skiles",
  "email": "[email protected]",
  "address": {
    "street": "Rex Trail",
    "suite": "Suite 280",
    "city": "Howemouth",
    "zipcode": "58804-1099",
    "geo": {
      "lat": "24.8918",
      "lng": "21.8984"
    }
  },
  "phone": "210.067.6132",
  "website": "elvis.io",
  "company": {
    "name": "Johns Group",
    "catchPhrase": "Configurable multimedia task-force",
    "bs": "generate enterprise e-tailers"
  }
}

Output: obj.data

DataObject {
|    Variables
|    * id: 7 (__NSCFNumber)
|    * value: 500 bytes (Data)
|    * address: {
    city = Howemouth;
    geo =     {
        lat = "24.8918";
        lng = "21.8984";
    };
    street = "Rex Trail";
    suite = "Suite 280";
    zipcode = "58804-1099";
} (__NSDictionaryI)
|    * email: [email protected] (__NSCFString)
|    * json: {
  "id": 7,
  "name": "Kurtis Weissnat",
  "username": "Elwyn.Skiles",
  "email": "[email protected]",
  "address": {
    "street": "Rex Trail",
    "suite": "Suite 280",
    "city": "Howemouth",
    "zipcode": "58804-1099",
    "geo": {
      "lat": "24.8918",
      "lng": "21.8984"
    }
  },
  "phone": "210.067.6132",
  "website": "elvis.io",
  "company": {
    "name": "Johns Group",
    "catchPhrase": "Configurable multimedia task-force",
    "bs": "generate enterprise e-tailers"
  }
} (String)
|    * website: elvis.io (NSTaggedPointerString)
|    * username: Elwyn.Skiles (__NSCFString)
|    * company: {
    bs = "generate enterprise e-tailers";
    catchPhrase = "Configurable multimedia task-force";
    name = "Johns Group";
} (__NSDictionaryI)
|    * phone: 210.067.6132 (__NSCFString)
|    * name: Kurtis Weissnat (__NSCFString)
}

WTV Example

"https://jsonplaceholder.typicode.com/users/7".url?
    .get { (obj) in
        print(obj.data.wtv(named: "name")!)
}

Output: obj.data.wtv(named: "name")

DataObject.variables["company"]["name"] 👉 FOUND: (label: Optional("name"), value: Johns Group)
DataObject.variables["name"] 👉 FOUND: (label: Optional("name"), value: Kurtis Weissnat)

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics