Skip to content

Repository files navigation

Icon representing the OpenBytes o project.

o

Output and Input

MIT LicenseCommunity Chat

What is o?

o is a simple framework to output to a file, url, the console, or even register notification using UserNotifications. o can also get input from a file, url, or console.

Where can o be used?

Currently, o can be used on macOS, iOS, and watchOS.

Examples

o.console

o.console.out("Value to print: ", terminator:"") // (oTests/oTests.swift@7) [testExample()]: Value to print:
o.console.out(o.console.in()) // Type in "???"; (oTests/oTests.swift@8) [testExample()]: Optional("???")

o.file

letfileContents=4letfolderPath="./TestFolder"letfilename="SomeNumber"try o.file.createDirectory(path: folderPath)
// Write the value 4, an Int, to a file named `filename` in the `folderPath` directory. Files using o.file are base64Encoded by default.
try o.file.out(fileContents, path: folderPath, filename: filename, base64Encoded:false)
// Asserts
XCTAssertEqual(try o.file.in(path: folderPath, filename: filename),4)
// Delete the File
try o.file.delete(path: folderPath, filename: filename)
// Assert deletion
XCTAssertThrowsError(try o.file.in(path: folderPath, filename: filename)asInt)

o.url

structPost:Codable{letuserId:Intletid:Intlettitle:Stringletbody:String}
// GET Request
let(data, response)=tryawait o.url.get(
url:URL(string:"api/posts")!
)
// POST Request
letpost=Post(userId:1, id:1, title:"First!", body:"")let(_, response)=tryawait o.url.post(
url:URL(string:"api/posts/\(post.id)")!,
body:try?JSONEncoder().encode(post))print(response)

o.notification

// Request Notification Authorization o.notification.requestAuthorization()
// Set UNUserNotificationCenter.current's delegate to `o.notification.delegate`
o.notification.registerDelegate()
// Schedule a Notification
o.notification.post(
title:"Hello!",
subtitle:"o.notification",
body:"Woo Hoo!",
trigger:UNTimeIntervalNotificationTrigger(
timeInterval:3,
repeats:false))

About

Output and Input for File, URL, and Console

Topics

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages