[ad_1]
The command sample might be useful if you would like to offer a typical interface for various actions that shall be executed later in time. Often it is an object that encapsulates all the knowledge wanted to run the underlying motion correctly.
Instructions are sometimes used to deal with consumer interface actions, create undo managers, or handle transactions. Let’s examine a command sample implementation in Swift by making a command line argument handler with emojis. 💾
#!/usr/bin/env swift
import Basis
protocol Command {
func execute()
}
class HelpCommand: Command {
func execute() {
Assist().data()
}
}
class Assist {
func data() {
print("""
🤖 Commander 🤖
v1.0
Obtainable instructions:
👉 assist This command
👉 ls Record paperwork
Bye! 👋
""")
}
}
class ListCommand: Command {
func execute() {
Record().homeDirectoryContents()
}
}
class Record {
func homeDirectoryContents() {
let fileManager = FileManager.default
guard let documentsURL = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first else {
print("Couldn't open paperwork listing")
exit(-1)
}
do {
let fileURLs = attempt fileManager.contentsOfDirectory(at: documentsURL, includingPropertiesForKeys: nil)
print("nt📁 Itemizing paperwork listing:n")
print(fileURLs.map { "tt💾 " + $0.lastPathComponent }.joined(separator: "nn") + "n" )
}
catch {
print(error.localizedDescription)
exit(-1)
}
}
}
class App {
var instructions: [String:Command] = [:]
init() {
self.instructions["help"] = HelpCommand()
self.instructions["ls"] = ListCommand()
}
func run() {
let arguments = CommandLine.arguments[1...]
guard let key = arguments.first, self.instructions[key] != nil else "))]")
exit(-1)
self.instructions[key]!.execute()
}
}
App().run()
For those who save this file, can run it by merely typing ./file-name.swift from a terminal window. The Swift compiler will care for the remainder. ⚒
[ad_2]
