Skip to content

Commit

Permalink
Merge pull request #142 from tentena/main
Browse files Browse the repository at this point in the history
Fix typos
  • Loading branch information
mangerlahn authored Mar 30, 2022
2 parents fa6c3e6 + d41ec26 commit 92e947e
Show file tree
Hide file tree
Showing 22 changed files with 52 additions and 53 deletions.
2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
Expand Up @@ -172,4 +172,4 @@ d. Nothing in this Public License constitutes or may be interpreted as a limitat
Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at [creativecommons.org/policies](http://creativecommons.org/policies), Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses.
Creative Commons may be contacted at creativecommons.org
```
```
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ protocol ReleaseNotesContentProtocol {
/// The type of the viewController
associatedtype ReleaseNotesContentController: NSViewController

/// The identifier from which the object is instatiated
/// The identifier from which the object is instantiated
static var StoryboardIdentifier: String { get }

/// The method loading the storyboard
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,6 @@ fileprivate enum ReleaseNotesContent {
}
}


/**
This is a super rudimentary implementation of an release notes viewer.
It can open urls or display HTML strings right away.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ class UpdateTableViewController: NSViewController, NSMenuItemValidation, NSTable
/// The empty state label centered in the list view indicating that no updates are available
@IBOutlet weak var placeholderLabel: NSTextField!

/// The label indicating how many updates are vailable
/// The label indicating how many updates are available
@IBOutlet weak var updatesLabel: NSTextField!

/// The menu displayed on secondary clicks on cells in the list
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

import Cocoa

/// The tableView behinf the updates list
/// The tableView behind the updates list
class UpdateTableView: NSTableView {

/// Only the separator lines for populated rows will be drawn
Expand Down
6 changes: 3 additions & 3 deletions Latest/Interface/Utilities/DisplayLink.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,16 @@
import Foundation
import QuartzCore

/// Cross-plattform convenience for accessing a DisplayLink.
/// Cross-platform convenience for accessing a DisplayLink.
class DisplayLink: NSObject {

/// The amount of time the display link should be running. If set to `nil`, the display link runs indefinitly.
/// The amount of time the display link should be running. If set to `nil`, the display link runs indefinitely.
private(set) var duration : Double?

/// An optional completion handler called after the display link stopped animating.
var completionHandler : (() -> ())?

/// The current animation progess. Only useful if a duration has been set.
/// The current animation progress. Only useful if a duration has been set.
private(set) var progress : Double = 0

#if os(macOS)
Expand Down
2 changes: 0 additions & 2 deletions Latest/Interface/Views/UpdateButton.swift
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,6 @@ class UpdateButton: NSButton {

}


// MARK: - Error Handling

private extension UpdateButton {
Expand Down Expand Up @@ -272,7 +271,6 @@ private extension UpdateButton {

}


// MARK: - Animator Proxy
extension UpdateButton {
override func animation(forKey key: NSAnimatablePropertyKey) -> Any? {
Expand Down
2 changes: 1 addition & 1 deletion Latest/Interface/Views/UpdateButtonCell.swift
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ class UpdateButtonCell: NSButtonCell {
}
}

/// The progress to be rendered when `.progess` is set as the content type. Animates the transition.
/// The progress to be rendered when `.progress` is set as the content type. Animates the transition.
private var _oldUpdateProgress: Double = 0.0
var updateProgress: Double = 0.0 {
didSet {
Expand Down
2 changes: 1 addition & 1 deletion Latest/Model/App.swift
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ extension App {
return self.update?.isUpdating ?? false
}

/// Updates the app. This is a subclassing hook. The default implementation opens the app.
/// Updates the app. This is a sub-classing hook. The default implementation opens the app.
final func performUpdate() {
self.update?.perform()
}
Expand Down
4 changes: 2 additions & 2 deletions Latest/Model/AppDataStore.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ protocol AppProviding {
/// Adds the observer if it is not already registered.
func addObserver(_ observer: NSObject, handler: @escaping ObserverHandler)

/// Remvoes the observer.
/// Removes the observer.
func removeObserver(_ observer: NSObject)

/// Sets the ignored state for the given app.
Expand Down Expand Up @@ -168,7 +168,7 @@ class AppDataStore: AppProviding {

// MARK: - Observer Handling

/// A mapping of observers assotiated with apps.
/// A mapping of observers associated with apps.
private var observers = [NSObject: ObserverHandler]()

/// Adds the observer if it is not already registered.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,6 @@ extension MacAppStoreUpdateCheckerOperation {

}


// MARK: - Decoding

/// Object containing a list of App Store entries.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,6 @@ extension SparkleUpdateCheckerOperation: XMLParserDelegate {

}


// MARK: - Utilities

/// Simple container holding update information for a single entry in the update feed.
Expand All @@ -281,7 +280,7 @@ fileprivate class UpdateEntry {
/// The version number of the entry.
var versionNumber: String?

/// The build number of the entryl.
/// The build number of the entry.
var buildNumber: String?

/// The release date of the update entry.
Expand Down
2 changes: 1 addition & 1 deletion Latest/Model/Update.swift
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ extension App {

// MARK: - Actions

/// Updates the app. This is a subclassing hook. The default implementation opens the app.
/// Updates the app. This is a sub-classing hook. The default implementation opens the app.
final func perform() {
guard !self.isUpdating else {
fatalError("Attempt to perform update on app that is already updating.")
Expand Down
5 changes: 2 additions & 3 deletions Latest/Model/UpdateCheckCoordinator.swift
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ class UpdateCheckCoordinator {

// MARK: - Update Checking

/// Whether the checker is curently waiting for the initial update check.
/// Whether the checker is currently waiting for the initial update check.
private var waitForInitialCheck = true

/// The delegate for the progress of the entire update checking progress
Expand All @@ -79,7 +79,7 @@ class UpdateCheckCoordinator {
private let updateOperationQueue: OperationQueue = {
let operationQueue = OperationQueue()

// Allow 100 simultanious updates
// Allow 100 simultaneously updates
operationQueue.maxConcurrentOperationCount = 100

return operationQueue
Expand Down Expand Up @@ -140,7 +140,6 @@ class UpdateCheckCoordinator {

}


// MARK: - Update Checking Operations

extension UpdateCheckCoordinator {
Expand Down
1 change: 0 additions & 1 deletion Latest/Model/Updater/SparkleUpdateOperation.swift
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,6 @@ class SparkleUpdateOperation: UpdateOperation {

}


// MARK: - Driver Implementation
extension SparkleUpdateOperation: SPUUserDriver {

Expand Down
4 changes: 2 additions & 2 deletions Latest/Model/Updater/UpdateOperation.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class UpdateOperation: StatefulOperation {

/// Encapsulates different states that may be active during the update process.
enum ProgressState {
/// No update is ocurring at the moment.
/// No update is occurring at the moment.
case none

/// The update is currently waiting to be executed. This may happen due to external constraints like the Mac App Store update queue.
Expand Down Expand Up @@ -62,7 +62,7 @@ class UpdateOperation: StatefulOperation {
}


// MARK: - Operation subclassing
// MARK: - Operation sub-classing

override func execute() {
self.progressState = .initializing
Expand Down
4 changes: 2 additions & 2 deletions Latest/Model/Updater/UpdateQueue.swift
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ class UpdateQueue: OperationQueue {
/// Called whenever an app update completes.
typealias CompletionHandler = (_: App.Bundle.Identifier) -> Void

/// A mapping of observers assotiated with apps.
/// A mapping of observers associated with apps.
private var observers = [App.Bundle.Identifier : [NSObject: ObserverHandler]]()

/// The completion handler to be called when an operation completes.
Expand All @@ -98,7 +98,7 @@ class UpdateQueue: OperationQueue {
self.observers[identifier] = observers
}

/// Remvoes the observer.
/// Removes the observer.
func removeObserver(_ observer: NSObject, for identifier: App.Bundle.Identifier) {
self.observers[identifier]?.removeValue(forKey: observer)
}
Expand Down
2 changes: 1 addition & 1 deletion Latest/Model/Utilities/StatefulOperation.swift
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ class StatefulOperation: Operation {
/// A lock to guard reads and writes to the `_state` property
private let stateLock = NSLock()

/// The actial state of the operation
/// The actual state of the operation
private var state: State {
get {
return self.stateLock.withCriticalScope(block: {
Expand Down
2 changes: 0 additions & 2 deletions Latest/Model/Utilities/Version.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@

import Foundation



/**
A Version represents a single version of an app. It contains both the version number and the build number to uniquely
identify an app (in theory).
Expand Down
2 changes: 1 addition & 1 deletion Latest/View Model/ReleaseNotesProvider.swift
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ class ReleaseNotesProvider {
return .failure(error)
}

// Having only one line means that the text was no HTML but plain text. Therefore we reinstantiate the attributed string as plain text
// Having only one line means that the text was no HTML but plain text. Therefore we instantiate the attributed string as plain text again.
// The initialization with HTML enabled removes all new lines
// If anyone has a better idea for checking if the data is valid HTML or plain text, feel free to fix.
if string.string.split(separator: "\n").count == 1 {
Expand Down
53 changes: 31 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,62 +1,71 @@
# Latest
[![Build Status][image-1]][1] [![Translation status][image-2]][2]

[![Build Status][image-1]][1] [![Translation status][image-2]][2]

This is Latest, a small utility app for the Mac. Latest is a free and open-source app for macOS that checks if all your apps are up to date. Get a quick overview of which apps changed and what changed and update them right away. Latest currently supports apps downloaded from the Mac App Store and apps that use Sparkle for updates, which covers most of the apps on the market.

Latest is developed in my freetime, so occasional updates may happen. Take a look at the [Issues][3] section to see what's coming. If you have an idea for a new feature, or encounter any bugs, feel free to open a new issue.
Latest is developed in my free time, so occasional updates may happen. Take a look at the [Issues][3] section to see what's coming. If you have an idea for a new feature, or encounter any bugs, feel free to open a new issue.
I am thankful for contributions. Check out the section below for more information.

![][image-3]
![Latest][image-3]

## Installation

There are multiple ways to install the app.

### Download the App

The easiest way to install Latest is to [download][4] the latest release as an app. You unzip the download by double-clicking on it (if that does not happen automatically) and then move the `Latest.app` into the `Applications` folder.

If you would like to check out earlier versions, head over to the [Releases][5] page to browse the history of Latest.

### Homebrew Cask

Latest can also be installed via [Homebrew Cask][6]. If you have not installed Homebrew, follow the simple instructions [here][7].
After that, run `brew install --cask latest` to install the current version of Latest.

### Build from Source

**To build Latest, Xcode 11 and Swift 5 is required.**

You can build Latest directly on your machine. To do that, you have to download the source code by cloning the repository: `git clone --recurse-submodules git@github.com:mangerlahn/Latest.git`.

Then you can open the `Latest.xcodeproj` and hit *Build and Run*. Make sure that the `Latest` scheme is selected. Latest uses submodules to organize its dependencies. If the project is not building, make sure submodules are initialized correctly. To update them, call `git submodule update --init --recursive`.

## Contribution
I am thankful for all contributions to the project. You can contribute typo-fixes, translations, code and of course suggestions, wishes, and bug reports.

I am thankful for all contributions to the project. You can contribute typo-fixes, translations, code and of course suggestions, wishes, and bug reports.

### Translations
The text used in Latest is hosted by the kind people over at [Weblate][8]. If you would like to add a new language, or improve an existing one, [here][9] is your starting point.

The text used in Latest is hosted by the kind people over at [Weblate][8]. If you would like to add a new language, or improve an existing one, [here][9] is your starting point.

[![Translation status][image-4]][10]

### Code

Take a look at the [Issues][11] section to see what you can do. If you have your own idea, and it does not appear in the issues list, please add it first. I don't think that I would reject any pull request, but it is useful to know about your idea earlier. Imagine two people have the same idea at the same time and both put a lot of work into that just to find out that someone else has made the same when it's too late.

I would like to assign every issue to the person working on that particular thing, so if you would like to implement something, leave a small note in the issue. I will assign the issue to you and it's yours.

## Donation

As mentioned above, Latest is free for you to use. I work on the app in my spare time. If you would like to support the development by donating, you can do so [here][12].

[1]: https://travis-ci.org/mangerlahn/Latest
[2]: https://hosted.weblate.org/engage/latest/
[3]: https://github.com/mangerlahn/latest/issues
[4]: https://max.codes/latest/Latest.zip
[5]: https://github.com/mangerlahn/Latest/releases
[6]: https://github.com/Homebrew/homebrew-cask
[7]: https://brew.sh
[8]: https://weblate.org/
[9]: https://hosted.weblate.org/engage/latest/
[10]: https://hosted.weblate.org/engage/latest/
[11]: https://github.com/mangerlahn/latest/issues
[12]: https://max.codes/latest/donate

[image-1]: https://travis-ci.org/mangerlahn/Latest.svg?branch=master
[image-2]: https://hosted.weblate.org/widgets/latest/-/svg-badge.svg
[image-3]: ./latest.png
[image-4]: https://hosted.weblate.org/widgets/latest/-/multi-auto.svg
[1]: https://travis-ci.org/mangerlahn/Latest
[2]: https://hosted.weblate.org/engage/latest/
[3]: https://github.com/mangerlahn/latest/issues
[4]: https://max.codes/latest/Latest.zip
[5]: https://github.com/mangerlahn/Latest/releases
[6]: https://github.com/Homebrew/homebrew-cask
[7]: https://brew.sh
[8]: https://weblate.org/
[9]: https://hosted.weblate.org/engage/latest/
[10]: https://hosted.weblate.org/engage/latest/
[11]: https://github.com/mangerlahn/latest/issues
[12]: https://max.codes/latest/donate

[image-1]: https://travis-ci.org/mangerlahn/Latest.svg?branch=master
[image-2]: https://hosted.weblate.org/widgets/latest/-/svg-badge.svg
[image-3]: ./latest.png
[image-4]: https://hosted.weblate.org/widgets/latest/-/multi-auto.svg
1 change: 0 additions & 1 deletion Tests/VersionTest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,6 @@ class VersionTest: XCTestCase {
var v2 = Version("2.1.5", "216")
self.newer(v1, v2)


v1 = Version("2.3.6", "215")
v2 = Version("2.2.4", nil)
self.newer(v1, v2)
Expand Down

0 comments on commit 92e947e

Please sign in to comment.