From 412500a2f270d8eafe41a0be7aa43a52309b3762 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mickae=CC=88l=20Floc=E2=80=99hlay?= Date: Sat, 1 Feb 2020 17:36:41 +0100 Subject: [PATCH 1/4] build: bump swiftformat version --- Brewfile.lock.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Brewfile.lock.json b/Brewfile.lock.json index daa6f7f..a036ae1 100644 --- a/Brewfile.lock.json +++ b/Brewfile.lock.json @@ -19,22 +19,22 @@ } }, "swiftformat": { - "version": "0.44.0", + "version": "0.44.1", "bottle": { "cellar": ":any_skip_relocation", "prefix": "/usr/local", "files": { "catalina": { - "url": "https://homebrew.bintray.com/bottles/swiftformat-0.44.0.catalina.bottle.tar.gz", - "sha256": "07c72ee82ff59ad84a4ddca7dea83ac94ba76c29758b9602f9afb478213e3bc2" + "url": "https://homebrew.bintray.com/bottles/swiftformat-0.44.1.catalina.bottle.tar.gz", + "sha256": "95cec024e6ace171b3a7ea88487ed7cb614e3d7db7cf47cbdd8e4875888f7485" }, "mojave": { - "url": "https://homebrew.bintray.com/bottles/swiftformat-0.44.0.mojave.bottle.tar.gz", - "sha256": "1650e00f1ba45795d397e12332a82e3a5926f184ef19d217b680b281e1e30565" + "url": "https://homebrew.bintray.com/bottles/swiftformat-0.44.1.mojave.bottle.tar.gz", + "sha256": "635691a03bd533c59c42b8b9e11af652d2c582179098ff422df409fff5c5d96d" }, "high_sierra": { - "url": "https://homebrew.bintray.com/bottles/swiftformat-0.44.0.high_sierra.bottle.tar.gz", - "sha256": "e7034ee588615738dac8a9b2ebeb2dfd2ce58e1c59b51fb869ebb9cd2b30442c" + "url": "https://homebrew.bintray.com/bottles/swiftformat-0.44.1.high_sierra.bottle.tar.gz", + "sha256": "15c494f50d4b770451b4205fc17e477a74300252df72dd0520c94f49d8e012af" } } } @@ -46,7 +46,7 @@ "catalina": { "HOMEBREW_VERSION": "2.2.4", "HOMEBREW_PREFIX": "/usr/local", - "Homebrew/homebrew-core": "e8a9116f3e1e8de84357203d749f1a6935d939d9", + "Homebrew/homebrew-core": "f157e41880e1d35967e2e7c1aa264d6578fd7864", "CLT": "", "Xcode": "11.3.1", "macOS": "10.15.1" From 4b86b4176854565316c67ed4aa7ac5379a2bd0d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mickae=CC=88l=20Floc=E2=80=99hlay?= Date: Sat, 1 Feb 2020 17:38:18 +0100 Subject: [PATCH 2/4] feat: add message option to CLI Changing library from Commander to SwiftCLI to do so. --- Package.resolved | 17 ++++----------- Package.swift | 5 ++--- Sources/Pomodoro/Hook.swift | 1 + Sources/Pomodoro/TimerViewCLI.swift | 15 +++++++------ Sources/PomodoroCLI/main.swift | 33 ++++++++++++++++++++++------- 5 files changed, 41 insertions(+), 30 deletions(-) diff --git a/Package.resolved b/Package.resolved index ad69b74..c5e0688 100644 --- a/Package.resolved +++ b/Package.resolved @@ -2,21 +2,12 @@ "object": { "pins": [ { - "package": "Commander", - "repositoryURL": "https://github.com/kylef/Commander.git", + "package": "SwiftCLI", + "repositoryURL": "https://github.com/jakeheis/SwiftCLI", "state": { "branch": null, - "revision": "4b6133c3071d521489a80c38fb92d7983f19d438", - "version": "0.9.1" - } - }, - { - "package": "Spectre", - "repositoryURL": "https://github.com/kylef/Spectre.git", - "state": { - "branch": null, - "revision": "f14ff47f45642aa5703900980b014c2e9394b6e5", - "version": "0.9.0" + "revision": "c72c4564f8c0a24700a59824880536aca45a4cae", + "version": "6.0.1" } } ] diff --git a/Package.swift b/Package.swift index 911b0a1..ba44384 100644 --- a/Package.swift +++ b/Package.swift @@ -7,13 +7,12 @@ let package = Package( name: "Pomodoro", dependencies: [ // Dependencies declare other packages that this package depends on. - // .package(url: /* package url */, from: "1.0.0"), - .package(url: "https://github.com/kylef/Commander.git", from: "0.8.0"), + .package(url: "https://github.com/jakeheis/SwiftCLI", from: "6.0.0"), ], targets: [ // Targets are the basic building blocks of a package. A target can define a module or a test suite. // Targets can depend on other targets in this package, and on products in packages which this package depends on. - .target(name: "Pomodoro", dependencies: ["Commander"]), + .target(name: "Pomodoro", dependencies: ["SwiftCLI"]), .target(name: "PomodoroCLI", dependencies: ["Pomodoro"]), .testTarget(name: "PomodoroTests", dependencies: ["Pomodoro"]), ] diff --git a/Sources/Pomodoro/Hook.swift b/Sources/Pomodoro/Hook.swift index d37ff85..251d5d1 100644 --- a/Sources/Pomodoro/Hook.swift +++ b/Sources/Pomodoro/Hook.swift @@ -8,6 +8,7 @@ enum Hook { extension Hook { // MARK: - Script Support of Hooks + static let dotDirectoryName = ".pomodoro-cli" static let didStartScript = "didStart.sh" diff --git a/Sources/Pomodoro/TimerViewCLI.swift b/Sources/Pomodoro/TimerViewCLI.swift index 6535786..8953ecc 100644 --- a/Sources/Pomodoro/TimerViewCLI.swift +++ b/Sources/Pomodoro/TimerViewCLI.swift @@ -38,9 +38,12 @@ public class TimerViewCLI { /// * A string **with digits only** will be parsed as a number of **seconds**; /// * A string **finishing with `m`** will be parsed as a number of **minutes**. /// (example: `123` or `123m` or `123 m`) - public func start(durationAsString: String) { + public func start(durationAsString: String, message: String?) { do { - start(duration: try TimeInterval.fromHumanReadableString(durationAsString)) + start( + duration: try TimeInterval.fromHumanReadableString(durationAsString), + message: message + ) } catch { output.write(string: "Could not start the timer with interval \(durationAsString)") } @@ -52,7 +55,7 @@ public class TimerViewCLI { /// * A string **with digits only** will be parsed as a number of **seconds**; /// * A string **finishing with `m`** will be parsed as a number of **minutes**. /// (example: `123` or `123m` or `123 m`) - public func start(duration: TimeInterval) { + public func start(duration: TimeInterval, message _: String?) { let timerViewModel = TimerViewModel(timeInterval: duration) self.timerViewModel = timerViewModel @@ -92,9 +95,9 @@ public class TimerViewCLI { } } #if DEBUG - if case .success = result { - debugPrint("✌️ Hook completed successfully.") - } + if case .success = result { + debugPrint("✌️ Hook completed successfully.") + } #endif } } diff --git a/Sources/PomodoroCLI/main.swift b/Sources/PomodoroCLI/main.swift index 9304b4a..16367aa 100644 --- a/Sources/PomodoroCLI/main.swift +++ b/Sources/PomodoroCLI/main.swift @@ -1,14 +1,31 @@ -import Commander import Foundation import Pomodoro +import SwiftCLI -let durationAsString = Option("duration", - default: "25m", - description: "The duration of the pomodoro in seconds (100) or in minutes (10m).") +let durationDefault: String = "25m" -let main = command(durationAsString) { (durationAsString: String) in - let timerViewCLI = TimerViewCLI(output: FileHandle.standardOutput) - timerViewCLI.start(durationAsString: durationAsString) +class PomodoroCommand: Command { + let name = "pomodoro-cli" + let shortDescription = "CLI pomodoro" + + @Key("-d", "--duration", description: "The duration of the pomodoro in seconds (100) or in minutes (10m) (default to \(durationDefault))") + var duration: String? + + @Key("-m", "--message", description: "The intent of the pomodoro (example: email zero)") + var message: String? + + func execute() throws { + var pomodoroMessage: String? = message + if pomodoroMessage == nil { + pomodoroMessage = Input.readLine(prompt: "What’s the intent of this pomodoro?") + } + + TimerViewCLI(output: FileHandle.standardOutput).start( + durationAsString: duration ?? durationDefault, + message: message + ) + } } -main.run() +let cli = CLI(singleCommand: PomodoroCommand()) +cli.goAndExit() From a35075ff9407287e71a1ffdae3b088ae5906f829 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mickae=CC=88l=20Floc=E2=80=99hlay?= Date: Sat, 1 Feb 2020 18:45:41 +0100 Subject: [PATCH 3/4] feat(message): support message and journaling of messages --- Makefile | 5 +- Package.swift | 3 ++ README.md | 13 +++-- Sources/Pomodoro/Environment.swift | 11 +++++ Sources/Pomodoro/Hook.swift | 41 ++++++--------- Sources/Pomodoro/LogWriter.swift | 17 +++++++ Sources/Pomodoro/PomodoroDescription.swift | 52 ++++++++++++++++++++ Sources/Pomodoro/TimeIntervalExtension.swift | 10 +++- Sources/Pomodoro/TimerViewCLI.swift | 42 +++------------- Sources/PomodoroCLI/main.swift | 20 +++++--- 10 files changed, 139 insertions(+), 75 deletions(-) create mode 100644 Sources/Pomodoro/Environment.swift create mode 100644 Sources/Pomodoro/LogWriter.swift create mode 100644 Sources/Pomodoro/PomodoroDescription.swift diff --git a/Makefile b/Makefile index 3d3e979..4a502a8 100644 --- a/Makefile +++ b/Makefile @@ -20,16 +20,17 @@ lint: swiftlint run-test: - .build/debug/PomodoroCLI --duration 10 + .build/debug/PomodoroCLI --duration 5 deploy: swift build -c release --disable-sandbox install ".build/release/PomodoroCLI" "$(bindir)/pomodoro-cli" mkdir -p "$(HOME)/.pomodoro-cli" + touch "$(HOME)/.pomodoro-cli/journal.yml" cp Resources/SampleHooks/did*.sh "$(HOME)/.pomodoro-cli" docs: ./scripts/generateDocs.sh clean: - rm -rf .build \ No newline at end of file + rm -rf .build diff --git a/Package.swift b/Package.swift index ba44384..9ae8cdb 100644 --- a/Package.swift +++ b/Package.swift @@ -5,6 +5,9 @@ import PackageDescription let package = Package( name: "Pomodoro", + platforms: [ + .macOS(.v10_12), + ], dependencies: [ // Dependencies declare other packages that this package depends on. .package(url: "https://github.com/jakeheis/SwiftCLI", from: "6.0.0"), diff --git a/README.md b/README.md index 1a24cdc..8dc1564 100644 --- a/README.md +++ b/README.md @@ -12,13 +12,14 @@ When I started this project, I wrote a [blog post][blog-post] on my motivations ``` -➜ pomodoro-cli --help -> Usage: +➜ Usage: pomodoro-cli [options] - $ pomodoro-cli +CLI pomodoro Options: ---duration [default: 25m] - The duration of the pomodoro in seconds (100) or in minutes (10m). + -d, --duration The duration of the pomodoro in seconds (100) or in minutes (10m) (default to 25m) + -h, --help Show help information + -m, --message The intent of the pomodoro (example: email zero) ``` ## Hooks @@ -27,6 +28,10 @@ Pomodoro can optionnaly run shell scripts when a pomodoro starts and/or finished Sample scripts can be found in [the `SampleHooks` directory](https://github.com/dirtyhenry/pomodoro-cli/blob/master/Resources/SampleHooks). +## Journal + +A journal of pomodoros is created in `~/.pomodoro-cli/journal.yml`. + ## Installation To install from sources, [Swift](https://swift.org/getting-started/) is required. diff --git a/Sources/Pomodoro/Environment.swift b/Sources/Pomodoro/Environment.swift new file mode 100644 index 0000000..a5bd2a2 --- /dev/null +++ b/Sources/Pomodoro/Environment.swift @@ -0,0 +1,11 @@ +import Foundation + +struct Environment { + static let dotDirectoryName = ".pomodoro-cli" + + static let dotDirectory = FileManager.default + .homeDirectoryForCurrentUser + .appendingPathComponent(dotDirectoryName) + + static let hooksOn = false +} diff --git a/Sources/Pomodoro/Hook.swift b/Sources/Pomodoro/Hook.swift index 251d5d1..2c0da3c 100644 --- a/Sources/Pomodoro/Hook.swift +++ b/Sources/Pomodoro/Hook.swift @@ -9,26 +9,18 @@ enum Hook { extension Hook { // MARK: - Script Support of Hooks - static let dotDirectoryName = ".pomodoro-cli" - static let didStartScript = "didStart.sh" static let didFinishScript = "didFinish.sh" - @available(OSX 10.12, *) private var scriptURL: URL { - let dotDirectory = FileManager.default - .homeDirectoryForCurrentUser - .appendingPathComponent(Hook.dotDirectoryName) - switch self { case .didStart: - return dotDirectory.appendingPathComponent(Hook.didStartScript) + return Environment.dotDirectory.appendingPathComponent(Hook.didStartScript) case .didFinish: - return dotDirectory.appendingPathComponent(Hook.didFinishScript) + return Environment.dotDirectory.appendingPathComponent(Hook.didFinishScript) } } - @available(OSX 10.12, *) private func canBeExecuted(completionHandler: (Bool, String?) -> Void) { _ = scriptURL.withUnsafeFileSystemRepresentation { cString in if let scriptPath = cString.map({ String(cString: $0) }) { @@ -42,23 +34,23 @@ extension Hook { } func execute(completionHandler: (Result) -> Void) { - if #available(OSX 10.12, *) { - self.canBeExecuted { executable, path in - if executable, let path = path { - let task = Process.launchedProcess(launchPath: path, arguments: []) - task.waitUntilExit() - let status = task.terminationStatus - if status == 0 { - completionHandler(.success(())) - } else { - completionHandler(.failure(.hookExecutedWithErroredTerminationStatus(status))) - } + guard Environment.hooksOn else { + return + } + + canBeExecuted { executable, path in + if executable, let path = path { + let task = Process.launchedProcess(launchPath: path, arguments: []) + task.waitUntilExit() + let status = task.terminationStatus + if status == 0 { + completionHandler(.success(())) } else { - completionHandler(.failure(.noExecutableFileAtPath(path))) + completionHandler(.failure(.hookExecutedWithErroredTerminationStatus(status))) } + } else { + completionHandler(.failure(.noExecutableFileAtPath(path))) } - } else { - completionHandler(.failure(.hookExecutionNotAvailable)) } } } @@ -66,5 +58,4 @@ extension Hook { enum HookError: Error { case hookExecutedWithErroredTerminationStatus(Int32) case noExecutableFileAtPath(String?) - case hookExecutionNotAvailable } diff --git a/Sources/Pomodoro/LogWriter.swift b/Sources/Pomodoro/LogWriter.swift new file mode 100644 index 0000000..3d68f36 --- /dev/null +++ b/Sources/Pomodoro/LogWriter.swift @@ -0,0 +1,17 @@ +import Foundation + +struct LogWriter { + static let journalFile = "journal.yml" + + func writeLog(pomodoroDescription: PomodoroDescription) { + do { + let journalFileHandle = try FileHandle(forWritingTo: Environment.dotDirectory.appendingPathComponent(LogWriter.journalFile)) + + journalFileHandle.seekToEndOfFile() + journalFileHandle.write(string: pomodoroDescription.description) + journalFileHandle.closeFile() + } catch { + print("An error happened: \(error)") + } + } +} diff --git a/Sources/Pomodoro/PomodoroDescription.swift b/Sources/Pomodoro/PomodoroDescription.swift new file mode 100644 index 0000000..923070c --- /dev/null +++ b/Sources/Pomodoro/PomodoroDescription.swift @@ -0,0 +1,52 @@ +import Foundation + +/// A data struct encapsulating a full description of a Pomodoro. +public struct PomodoroDescription { + static let dateFormatter: DateFormatter = { + let result = DateFormatter() + result.dateStyle = .short + result.timeStyle = .medium + return result + }() + + // MARK: - Creating a pomodoro + + /// Creates a new pomodoro. + /// - Parameters: + /// - duration: the duration of the pomodoro. + /// - message: a message describing the intent of the pomodoro. + public init(duration: TimeInterval, message: String?) { + startDate = Date() + self.duration = duration + self.message = message + } + + let startDate: Date + let duration: TimeInterval + let message: String? + + var endDate: Date { + return startDate.addingTimeInterval(duration) + } + + var formattedStartDate: String { + return PomodoroDescription.dateFormatter.string(from: startDate) + } + + var formattedEndDate: String { + return PomodoroDescription.dateFormatter.string(from: endDate) + } +} + +extension PomodoroDescription: CustomStringConvertible { + /// The description of the Pomodoro, as logged in the journal. + public var description: String { + let lines = [ + "-", + " - startDate: \(formattedStartDate)", + " - endDate: \(formattedEndDate)", + " - message: \(message ?? "n/a")", + ] + return lines.joined(separator: "\n").appending("\n") + } +} diff --git a/Sources/Pomodoro/TimeIntervalExtension.swift b/Sources/Pomodoro/TimeIntervalExtension.swift index 87dd51d..1df3126 100644 --- a/Sources/Pomodoro/TimeIntervalExtension.swift +++ b/Sources/Pomodoro/TimeIntervalExtension.swift @@ -6,7 +6,15 @@ enum TimeIntervalConversionError: Error { } extension TimeInterval { - static func fromHumanReadableString(_ string: String) throws -> TimeInterval { + // MARK: - Creating a time internal from a human readable expression. + + /// Interprets a duration from a human readable string. + /// + /// Two kinds of strings are supported: + /// + /// * A string **with digits only** will be parsed as a number of **seconds** (example: `123`); + /// * A string **finishing with `m`** will be parsed as a number of **minutes** (example: `123m` or `123 m`). + public static func fromHumanReadableString(_ string: String) throws -> TimeInterval { let normalizedInput = string.replacingOccurrences(of: " ", with: "") guard let lastChar = normalizedInput.last else { diff --git a/Sources/Pomodoro/TimerViewCLI.swift b/Sources/Pomodoro/TimerViewCLI.swift index 8953ecc..c2078b2 100644 --- a/Sources/Pomodoro/TimerViewCLI.swift +++ b/Sources/Pomodoro/TimerViewCLI.swift @@ -14,13 +14,6 @@ public class TimerViewCLI { var sleepTime: TimeInterval = 1 let intervalBeforePuttingDisplayToSleep: TimeInterval = 10 - let dateFormatter: DateFormatter = { - let result = DateFormatter() - result.dateStyle = .short - result.timeStyle = .medium - return result - }() - // MARK: - Creating a timer. /// Creates a new instance of a timer. @@ -32,47 +25,26 @@ public class TimerViewCLI { // MARK: - Starting the timer - /// Starts the timer for a duration described as a time interval string. - /// - /// - Parameter durationAsString: the duration of the timer. Two kinds of strings are supported: - /// * A string **with digits only** will be parsed as a number of **seconds**; - /// * A string **finishing with `m`** will be parsed as a number of **minutes**. - /// (example: `123` or `123m` or `123 m`) - public func start(durationAsString: String, message: String?) { - do { - start( - duration: try TimeInterval.fromHumanReadableString(durationAsString), - message: message - ) - } catch { - output.write(string: "Could not start the timer with interval \(durationAsString)") - } - } - /// Starts the timer for the specified duration. /// - /// - Parameter duration: the duration of the string. Two kinds of strings are supported: - /// * A string **with digits only** will be parsed as a number of **seconds**; - /// * A string **finishing with `m`** will be parsed as a number of **minutes**. - /// (example: `123` or `123m` or `123 m`) - public func start(duration: TimeInterval, message _: String?) { - let timerViewModel = TimerViewModel(timeInterval: duration) + /// - Parameter pomodoro: the description of the Pomodoro. + public func start(pomodoro: PomodoroDescription) { + let timerViewModel = TimerViewModel(timeInterval: pomodoro.duration) self.timerViewModel = timerViewModel Hook.didStart.execute(completionHandler: hookCompletionHandler) - let beginning = dateFormatter.string(from: timerViewModel.outputs.startDate) - let end = dateFormatter.string(from: timerViewModel.outputs.endDate) - output.write(string: "🍅 from \(beginning) to \(end)\n") - sleepTime = duration / TimeInterval(outputLength) + output.write(string: "🍅 from \(pomodoro.formattedStartDate) to \(pomodoro.formattedEndDate)\n") + sleepTime = pomodoro.duration / TimeInterval(outputLength) while !timerViewModel.outputs.progress.isFinished { outputLine(for: timerViewModel.outputs.progress.fractionCompleted) Thread.sleep(forTimeInterval: sleepTime) } outputLine(for: 1.0) - output.write(string: "\nTimer ended\n") + output.write(string: "\nPomodoro ended\n") Hook.didFinish.execute(completionHandler: hookCompletionHandler) + LogWriter().writeLog(pomodoroDescription: pomodoro) exit(EXIT_SUCCESS) } diff --git a/Sources/PomodoroCLI/main.swift b/Sources/PomodoroCLI/main.swift index 16367aa..eb91ed8 100644 --- a/Sources/PomodoroCLI/main.swift +++ b/Sources/PomodoroCLI/main.swift @@ -15,15 +15,19 @@ class PomodoroCommand: Command { var message: String? func execute() throws { - var pomodoroMessage: String? = message - if pomodoroMessage == nil { - pomodoroMessage = Input.readLine(prompt: "What’s the intent of this pomodoro?") - } + do { + var pomodoroMessage: String? = message + if pomodoroMessage == nil { + pomodoroMessage = Input.readLine(prompt: "\u{001B}[32m💁‍♀️ What’s the intent of this pomodoro?\u{001B}[m\n") + } + + let durationAsTimeInterval = try TimeInterval.fromHumanReadableString(duration ?? durationDefault) - TimerViewCLI(output: FileHandle.standardOutput).start( - durationAsString: duration ?? durationDefault, - message: message - ) + let pomodoro = PomodoroDescription(duration: durationAsTimeInterval, message: pomodoroMessage) + TimerViewCLI(output: FileHandle.standardOutput).start(pomodoro: pomodoro) + } catch { + print("Could not start the timer with interval \(String(describing: duration))") + } } } From aa98b08505e3c9e0cbb5ccdc3bb3e55123f6c61f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mickae=CC=88l=20Floc=E2=80=99hlay?= Date: Sat, 1 Feb 2020 18:46:26 +0100 Subject: [PATCH 4/4] docs: update docs --- docs/Classes.html | 16 ++ docs/Classes/TimerViewCLI.html | 86 ++------ docs/Extensions.html | 127 +++++++++++ docs/Extensions/TimeInterval.html | 148 +++++++++++++ docs/Structs.html | 129 +++++++++++ docs/Structs/PomodoroDescription.html | 201 ++++++++++++++++++ .../Contents/Resources/Documents/Classes.html | 16 ++ .../Documents/Classes/TimerViewCLI.html | 86 ++------ .../Resources/Documents/Extensions.html | 127 +++++++++++ .../Documents/Extensions/TimeInterval.html | 148 +++++++++++++ .../Contents/Resources/Documents/Structs.html | 129 +++++++++++ .../Structs/PomodoroDescription.html | 201 ++++++++++++++++++ .../Contents/Resources/Documents/index.html | 28 ++- .../Contents/Resources/Documents/search.json | 2 +- .../Contents/Resources/docSet.dsidx | Bin 12288 -> 12288 bytes docs/docsets/Pomodoro.tgz | Bin 42608 -> 44469 bytes docs/index.html | 28 ++- docs/search.json | 2 +- 18 files changed, 1336 insertions(+), 138 deletions(-) create mode 100644 docs/Extensions.html create mode 100644 docs/Extensions/TimeInterval.html create mode 100644 docs/Structs.html create mode 100644 docs/Structs/PomodoroDescription.html create mode 100644 docs/docsets/Pomodoro.docset/Contents/Resources/Documents/Extensions.html create mode 100644 docs/docsets/Pomodoro.docset/Contents/Resources/Documents/Extensions/TimeInterval.html create mode 100644 docs/docsets/Pomodoro.docset/Contents/Resources/Documents/Structs.html create mode 100644 docs/docsets/Pomodoro.docset/Contents/Resources/Documents/Structs/PomodoroDescription.html diff --git a/docs/Classes.html b/docs/Classes.html index 1ae3732..f426ea3 100644 --- a/docs/Classes.html +++ b/docs/Classes.html @@ -97,6 +97,22 @@

Declaration

+ + diff --git a/docs/Classes/TimerViewCLI.html b/docs/Classes/TimerViewCLI.html index 4f2f62b..869551d 100644 --- a/docs/Classes/TimerViewCLI.html +++ b/docs/Classes/TimerViewCLI.html @@ -129,61 +129,9 @@

Starting the timer

  • -
    -
    -
    -
    -
    -

    Starts the timer for a duration described as a time interval string.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func start(durationAsString: String)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - durationAsString - - -
    -

    the duration of the timer. Two kinds of strings are supported: - -

      -
    • A string with digits only will be parsed as a number of seconds;
    • -
    • A string finishing with m will be parsed as a number of minutes. -(example: 123 or 123m or 123 m)
    • -

    -
    -
    -
    -
    -
    -
  • -
  • -
    @@ -198,7 +146,7 @@

    Parameters

    Declaration

    Swift

    -
    public func start(duration: TimeInterval)
    +
    public func start(pomodoro: PomodoroDescription)
    @@ -209,18 +157,12 @@

    Parameters

    - duration + pomodoro
    -

    the duration of the string. Two kinds of strings are supported: - -

      -
    • A string with digits only will be parsed as a number of seconds;
    • -
    • A string finishing with m will be parsed as a number of minutes. -(example: 123 or 123m or 123 m)
    • -

    +

    the description of the Pomodoro.

    @@ -247,6 +189,22 @@

    Parameters

  • + + diff --git a/docs/Extensions.html b/docs/Extensions.html new file mode 100644 index 0000000..48d714f --- /dev/null +++ b/docs/Extensions.html @@ -0,0 +1,127 @@ + + + + Extensions Reference + + + + + + + + + + + +
    +
    +

    + Pomodoro Docs + (100% documented) +

    + +

    + + + View on GitHub + +

    + +
    +
    + +
    +
    +
    +
    +
    +

    Extensions

    +

    The following extensions are available globally.

    + +
    +
    +
    +
      +
    • +
      + + + + TimeInterval + +
      +
      +
      +
      +
      +
      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      extension TimeInterval
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    +
    +
    + + +
    + + + diff --git a/docs/Extensions/TimeInterval.html b/docs/Extensions/TimeInterval.html new file mode 100644 index 0000000..aa05742 --- /dev/null +++ b/docs/Extensions/TimeInterval.html @@ -0,0 +1,148 @@ + + + + TimeInterval Extension Reference + + + + + + + + + + + +
    +
    +

    + Pomodoro Docs + (100% documented) +

    + +

    + + + View on GitHub + +

    + +
    +
    + +
    +
    +
    +
    +
    +

    TimeInterval

    +
    +
    +
    extension TimeInterval
    + +
    +
    + +
    +
    +
    +
    + + +
    + +

    Creating a time internal from a human readable expression.

    +

    +
    +
    +
      +
    • + +
      +
      +
      +
      +
      +

      Interprets a duration from a human readable string.

      + +

      Two kinds of strings are supported:

      + +
        +
      • A string with digits only will be parsed as a number of seconds (example: 123);
      • +
      • A string finishing with m will be parsed as a number of minutes (example: 123m or 123 m).
      • +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public static func fromHumanReadableString(_ string: String) throws -> TimeInterval
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    +
    +
    + + +
    + + + diff --git a/docs/Structs.html b/docs/Structs.html new file mode 100644 index 0000000..3f55295 --- /dev/null +++ b/docs/Structs.html @@ -0,0 +1,129 @@ + + + + Structures Reference + + + + + + + + + + + +
    +
    +

    + Pomodoro Docs + (100% documented) +

    + +

    + + + View on GitHub + +

    + +
    +
    + +
    +
    +
    +
    +
    +

    Structures

    +

    The following structures are available globally.

    + +
    +
    +
    +
      +
    • +
      + + + + PomodoroDescription + +
      +
      +
      +
      +
      +
      +

      A data struct encapsulating a full description of a Pomodoro.

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public struct PomodoroDescription
      +
      extension PomodoroDescription: CustomStringConvertible
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    +
    +
    + + +
    + + + diff --git a/docs/Structs/PomodoroDescription.html b/docs/Structs/PomodoroDescription.html new file mode 100644 index 0000000..352c73e --- /dev/null +++ b/docs/Structs/PomodoroDescription.html @@ -0,0 +1,201 @@ + + + + PomodoroDescription Structure Reference + + + + + + + + + + + +
    +
    +

    + Pomodoro Docs + (100% documented) +

    + +

    + + + View on GitHub + +

    + +
    +
    + +
    +
    +
    +
    +
    +

    PomodoroDescription

    +
    +
    +
    public struct PomodoroDescription
    +
    extension PomodoroDescription: CustomStringConvertible
    + +
    +
    +

    A data struct encapsulating a full description of a Pomodoro.

    + +
    +
    +
    +
    + + +
    + +

    Creating a pomodoro

    +

    +
    +
    +
      +
    • + +
      +
      +
      +
      +
      +

      Creates a new pomodoro.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public init(duration: TimeInterval, message: String?)
      + +
      +
      +
      +

      Parameters

      + + + + + + + + + + + +
      + + duration + + +
      +

      the duration of the pomodoro.

      +
      +
      + + message + + +
      +

      a message describing the intent of the pomodoro.

      +
      +
      +
      +
      +
      +
    • +
    • +
      + + + + description + +
      +
      +
      +
      +
      +
      +

      The description of the Pomodoro, as logged in the journal.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var description: String { get }
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    +
    +
    + + +
    + + + diff --git a/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/Classes.html b/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/Classes.html index 1ae3732..f426ea3 100644 --- a/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/Classes.html +++ b/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/Classes.html @@ -97,6 +97,22 @@

    Declaration

    + + diff --git a/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/Classes/TimerViewCLI.html b/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/Classes/TimerViewCLI.html index 4f2f62b..869551d 100644 --- a/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/Classes/TimerViewCLI.html +++ b/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/Classes/TimerViewCLI.html @@ -129,61 +129,9 @@

    Starting the timer

  • -
    -
    -
    -
    -
    -

    Starts the timer for a duration described as a time interval string.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func start(durationAsString: String)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - durationAsString - - -
    -

    the duration of the timer. Two kinds of strings are supported: - -

      -
    • A string with digits only will be parsed as a number of seconds;
    • -
    • A string finishing with m will be parsed as a number of minutes. -(example: 123 or 123m or 123 m)
    • -

    -
    -
    -
    -
    -
    -
  • -
  • -
    @@ -198,7 +146,7 @@

    Parameters

    Declaration

    Swift

    -
    public func start(duration: TimeInterval)
    +
    public func start(pomodoro: PomodoroDescription)
    @@ -209,18 +157,12 @@

    Parameters

    - duration + pomodoro
    -

    the duration of the string. Two kinds of strings are supported: - -

      -
    • A string with digits only will be parsed as a number of seconds;
    • -
    • A string finishing with m will be parsed as a number of minutes. -(example: 123 or 123m or 123 m)
    • -

    +

    the description of the Pomodoro.

    @@ -247,6 +189,22 @@

    Parameters

  • + + diff --git a/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/Extensions.html b/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/Extensions.html new file mode 100644 index 0000000..48d714f --- /dev/null +++ b/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/Extensions.html @@ -0,0 +1,127 @@ + + + + Extensions Reference + + + + + + + + + + + +
    +
    +

    + Pomodoro Docs + (100% documented) +

    + +

    + + + View on GitHub + +

    + +
    +
    + +
    +
    +
    +
    +
    +

    Extensions

    +

    The following extensions are available globally.

    + +
    +
    +
    +
      +
    • +
      + + + + TimeInterval + +
      +
      +
      +
      +
      +
      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      extension TimeInterval
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    +
    +
    + + +
    + + + diff --git a/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/Extensions/TimeInterval.html b/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/Extensions/TimeInterval.html new file mode 100644 index 0000000..aa05742 --- /dev/null +++ b/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/Extensions/TimeInterval.html @@ -0,0 +1,148 @@ + + + + TimeInterval Extension Reference + + + + + + + + + + + +
    +
    +

    + Pomodoro Docs + (100% documented) +

    + +

    + + + View on GitHub + +

    + +
    +
    + +
    +
    +
    +
    +
    +

    TimeInterval

    +
    +
    +
    extension TimeInterval
    + +
    +
    + +
    +
    +
    +
    + + +
    + +

    Creating a time internal from a human readable expression.

    +

    +
    +
    +
      +
    • + +
      +
      +
      +
      +
      +

      Interprets a duration from a human readable string.

      + +

      Two kinds of strings are supported:

      + +
        +
      • A string with digits only will be parsed as a number of seconds (example: 123);
      • +
      • A string finishing with m will be parsed as a number of minutes (example: 123m or 123 m).
      • +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public static func fromHumanReadableString(_ string: String) throws -> TimeInterval
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    +
    +
    + + +
    + + + diff --git a/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/Structs.html b/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/Structs.html new file mode 100644 index 0000000..3f55295 --- /dev/null +++ b/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/Structs.html @@ -0,0 +1,129 @@ + + + + Structures Reference + + + + + + + + + + + +
    +
    +

    + Pomodoro Docs + (100% documented) +

    + +

    + + + View on GitHub + +

    + +
    +
    + +
    +
    +
    +
    +
    +

    Structures

    +

    The following structures are available globally.

    + +
    +
    +
    +
      +
    • +
      + + + + PomodoroDescription + +
      +
      +
      +
      +
      +
      +

      A data struct encapsulating a full description of a Pomodoro.

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public struct PomodoroDescription
      +
      extension PomodoroDescription: CustomStringConvertible
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    +
    +
    + + +
    + + + diff --git a/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/Structs/PomodoroDescription.html b/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/Structs/PomodoroDescription.html new file mode 100644 index 0000000..352c73e --- /dev/null +++ b/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/Structs/PomodoroDescription.html @@ -0,0 +1,201 @@ + + + + PomodoroDescription Structure Reference + + + + + + + + + + + +
    +
    +

    + Pomodoro Docs + (100% documented) +

    + +

    + + + View on GitHub + +

    + +
    +
    + +
    +
    +
    +
    +
    +

    PomodoroDescription

    +
    +
    +
    public struct PomodoroDescription
    +
    extension PomodoroDescription: CustomStringConvertible
    + +
    +
    +

    A data struct encapsulating a full description of a Pomodoro.

    + +
    +
    +
    +
    + + +
    + +

    Creating a pomodoro

    +

    +
    +
    +
      +
    • + +
      +
      +
      +
      +
      +

      Creates a new pomodoro.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public init(duration: TimeInterval, message: String?)
      + +
      +
      +
      +

      Parameters

      + + + + + + + + + + + +
      + + duration + + +
      +

      the duration of the pomodoro.

      +
      +
      + + message + + +
      +

      a message describing the intent of the pomodoro.

      +
      +
      +
      +
      +
      +
    • +
    • +
      + + + + description + +
      +
      +
      +
      +
      +
      +

      The description of the Pomodoro, as logged in the journal.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var description: String { get }
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    +
    +
    + + +
    + + + diff --git a/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/index.html b/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/index.html index 23ec175..ad9ffa2 100644 --- a/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/index.html +++ b/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/index.html @@ -56,19 +56,23 @@

    Usage

    pomodoro-cli usage example -
    ➜ pomodoro-cli --help
    -> Usage:
    +
    ➜ Usage: pomodoro-cli [options]
     
    -    $ pomodoro-cli
    +CLI pomodoro
     
     Options:
    ---duration [default: 25m] - The duration of the pomodoro in seconds (100) or in minutes (10m).
    +  -d, --duration <value>    The duration of the pomodoro in seconds (100) or in minutes (10m) (default to 25m)
    +  -h, --help                Show help information
    +  -m, --message <value>     The intent of the pomodoro (example: email zero)
     

    Hooks

    Pomodoro can optionnaly run shell scripts when a pomodoro starts and/or finished.

    Sample scripts can be found in the SampleHooks directory.

    +

    Journal

    + +

    A journal of pomodoros is created in ~/.pomodoro-cli/journal.yml.

    Installation

    To install from sources, Swift is required.

    @@ -105,6 +109,22 @@

    License

    + + diff --git a/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/search.json b/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/search.json index a5ca765..931ba22 100644 --- a/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/search.json +++ b/docs/docsets/Pomodoro.docset/Contents/Resources/Documents/search.json @@ -1 +1 @@ -{"Classes/TimerViewCLI.html#/s:8Pomodoro12TimerViewCLIC6outputACSo12NSFileHandleC_tcfc":{"name":"init(output:)","abstract":"

    Creates a new instance of a timer.

    ","parent_name":"TimerViewCLI"},"Classes/TimerViewCLI.html#/s:8Pomodoro12TimerViewCLIC5start16durationAsStringySS_tF":{"name":"start(durationAsString:)","abstract":"

    Starts the timer for a duration described as a time interval string.

    ","parent_name":"TimerViewCLI"},"Classes/TimerViewCLI.html#/s:8Pomodoro12TimerViewCLIC5start8durationySd_tF":{"name":"start(duration:)","abstract":"

    Starts the timer for the specified duration.

    ","parent_name":"TimerViewCLI"},"Classes/TimerViewCLI.html":{"name":"TimerViewCLI","abstract":"

    A command line interface showing a timer.

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "}} \ No newline at end of file +{"Structs/PomodoroDescription.html#/s:8Pomodoro0A11DescriptionV8duration7messageACSd_SSSgtcfc":{"name":"init(duration:message:)","abstract":"

    Creates a new pomodoro.

    ","parent_name":"PomodoroDescription"},"Structs/PomodoroDescription.html#/s:8Pomodoro0A11DescriptionV11descriptionSSvp":{"name":"description","abstract":"

    The description of the Pomodoro, as logged in the journal.

    ","parent_name":"PomodoroDescription"},"Structs/PomodoroDescription.html":{"name":"PomodoroDescription","abstract":"

    A data struct encapsulating a full description of a Pomodoro.

    "},"Extensions/TimeInterval.html#/s:Sd8PomodoroE23fromHumanReadableStringySdSSKFZ":{"name":"fromHumanReadableString(_:)","abstract":"

    Interprets a duration from a human readable string.

    ","parent_name":"TimeInterval"},"Extensions/TimeInterval.html":{"name":"TimeInterval"},"Classes/TimerViewCLI.html#/s:8Pomodoro12TimerViewCLIC6outputACSo12NSFileHandleC_tcfc":{"name":"init(output:)","abstract":"

    Creates a new instance of a timer.

    ","parent_name":"TimerViewCLI"},"Classes/TimerViewCLI.html#/s:8Pomodoro12TimerViewCLIC5start8pomodoroyAA0A11DescriptionV_tF":{"name":"start(pomodoro:)","abstract":"

    Starts the timer for the specified duration.

    ","parent_name":"TimerViewCLI"},"Classes/TimerViewCLI.html":{"name":"TimerViewCLI","abstract":"

    A command line interface showing a timer.

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

    "},"Structs.html":{"name":"Structures","abstract":"

    The following structures are available globally.

    "}} \ No newline at end of file diff --git a/docs/docsets/Pomodoro.docset/Contents/Resources/docSet.dsidx b/docs/docsets/Pomodoro.docset/Contents/Resources/docSet.dsidx index 9e9e8afea9dbdecd2f4053906b54d8bd6dece81f..0a70b253821831bc809ef5e0cfcd264b57a95679 100644 GIT binary patch literal 12288 zcmeI0O-|cD6oAJGc7Xh~-OvbCxQ!@Dp@e|=5lE%Mm=YCIhywyP$ixG&6x)$K;b()I zZSPSI(Vn2aKzodGgU&d1Fcm2a1nuHkvhzIi{GRiTz4)wbuIU7ehn8)qM4Up85XYgn zqKFWR(>+Xge+$u|$3LOJTp;ci#?kn~B`Xw4j-%u!dVmcG00AHX1b_e#00KY&2mk>f z00e-*e@|d96d6dRxfZXR8a`FcYR$48tlHIDkqv~UvRtUh;#R4+xh0Fm(z3iGwzI?! zB{7gGW=z${jSj;G z1b_e#00KY&2mk>f00e*l5O`PuFQPnpJ~*rpyICbo8#@ZF65TS}1I~Dj81>D2Mg+=N^&kA?>pE4qR0Z5^LTYeje3%gF^N+zXB) z0(zZl6&#}4B-5}AOS5ciKD&-d&Co-`*!Hh9IDkRBKu{b&|1~q|qdIYC6-dQIHfXKUq>%^g3QuO|6cleNsKF&hV7W zkj(D0XcBB6tMv}rPT;tB{CO7-=@F2WYKK-Yd|yeB7jLxOwPMP?;_C4`4c9D1$f0BHfI7qhQU*polzUI&k2mk>f00e*l5C8%|00;m9 zAb?Psr~1#eHK>dKM_A3p1FqQhi#*kT&eL))$2)Tq`X+d)|J*enXCDi? zihS>h!1SMcX#bCx0@Hu)f&5>X<*EL=TztRppzQ=V_&?tinErEJg#DiUzh{xB`p?~< f_w9%1Hlq&L1g8I7z}D}_|3l{j)BnDI<^R6{-~7UV delta 361 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

    UEO6Q+u()=V`T9YdoNKOl65P`s)khHCL} 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 literal 42608 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 diff --git a/docs/index.html b/docs/index.html index 23ec175..ad9ffa2 100644 --- a/docs/index.html +++ b/docs/index.html @@ -56,19 +56,23 @@

    Usage

    pomodoro-cli usage example -
    ➜ pomodoro-cli --help
    -> Usage:
    +
    ➜ Usage: pomodoro-cli [options]
     
    -    $ pomodoro-cli
    +CLI pomodoro
     
     Options:
    ---duration [default: 25m] - The duration of the pomodoro in seconds (100) or in minutes (10m).
    +  -d, --duration <value>    The duration of the pomodoro in seconds (100) or in minutes (10m) (default to 25m)
    +  -h, --help                Show help information
    +  -m, --message <value>     The intent of the pomodoro (example: email zero)
     

    Hooks

    Pomodoro can optionnaly run shell scripts when a pomodoro starts and/or finished.

    Sample scripts can be found in the SampleHooks directory.

    +

    Journal

    + +

    A journal of pomodoros is created in ~/.pomodoro-cli/journal.yml.

    Installation

    To install from sources, Swift is required.

    @@ -105,6 +109,22 @@

    License

    + + diff --git a/docs/search.json b/docs/search.json index a5ca765..931ba22 100644 --- a/docs/search.json +++ b/docs/search.json @@ -1 +1 @@ -{"Classes/TimerViewCLI.html#/s:8Pomodoro12TimerViewCLIC6outputACSo12NSFileHandleC_tcfc":{"name":"init(output:)","abstract":"

    Creates a new instance of a timer.

    ","parent_name":"TimerViewCLI"},"Classes/TimerViewCLI.html#/s:8Pomodoro12TimerViewCLIC5start16durationAsStringySS_tF":{"name":"start(durationAsString:)","abstract":"

    Starts the timer for a duration described as a time interval string.

    ","parent_name":"TimerViewCLI"},"Classes/TimerViewCLI.html#/s:8Pomodoro12TimerViewCLIC5start8durationySd_tF":{"name":"start(duration:)","abstract":"

    Starts the timer for the specified duration.

    ","parent_name":"TimerViewCLI"},"Classes/TimerViewCLI.html":{"name":"TimerViewCLI","abstract":"

    A command line interface showing a timer.

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "}} \ No newline at end of file +{"Structs/PomodoroDescription.html#/s:8Pomodoro0A11DescriptionV8duration7messageACSd_SSSgtcfc":{"name":"init(duration:message:)","abstract":"

    Creates a new pomodoro.

    ","parent_name":"PomodoroDescription"},"Structs/PomodoroDescription.html#/s:8Pomodoro0A11DescriptionV11descriptionSSvp":{"name":"description","abstract":"

    The description of the Pomodoro, as logged in the journal.

    ","parent_name":"PomodoroDescription"},"Structs/PomodoroDescription.html":{"name":"PomodoroDescription","abstract":"

    A data struct encapsulating a full description of a Pomodoro.

    "},"Extensions/TimeInterval.html#/s:Sd8PomodoroE23fromHumanReadableStringySdSSKFZ":{"name":"fromHumanReadableString(_:)","abstract":"

    Interprets a duration from a human readable string.

    ","parent_name":"TimeInterval"},"Extensions/TimeInterval.html":{"name":"TimeInterval"},"Classes/TimerViewCLI.html#/s:8Pomodoro12TimerViewCLIC6outputACSo12NSFileHandleC_tcfc":{"name":"init(output:)","abstract":"

    Creates a new instance of a timer.

    ","parent_name":"TimerViewCLI"},"Classes/TimerViewCLI.html#/s:8Pomodoro12TimerViewCLIC5start8pomodoroyAA0A11DescriptionV_tF":{"name":"start(pomodoro:)","abstract":"

    Starts the timer for the specified duration.

    ","parent_name":"TimerViewCLI"},"Classes/TimerViewCLI.html":{"name":"TimerViewCLI","abstract":"

    A command line interface showing a timer.

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

    "},"Structs.html":{"name":"Structures","abstract":"

    The following structures are available globally.

    "}} \ No newline at end of file