Semver.swift 1.2.0

Semver.swift 1.2.0

Nate Kim 维护。



  • Nate Kim

Swift CocoaPods Platform Build Status Codecov

语义化版本

Swift 中的语义化版本实现。 Semver 代表根据 语义化版本规范 的语义版本。

需求

  • Swift 5.1
  • iOS 8
  • macOS 10.11
  • tvOS 9.0
  • watchOS 2.0

安装

Semver 不包含任何外部依赖。目前支持以下选项

CocoaPods

# Podfile
user_framework!
target 'YOUR_TARGET_NAME' do
    pod 'Semver.swift'
end

替换 YOUR_TARGET_NAME,然后在 Podfile 目录中,输入以下内容

$ pod install

Swift 包管理器

创建一个 Package.swift 文件。

// swift-tools-version:5.1

import PackageDescription

let package = Package(
  name: "NAME",
  dependencies: [
    .package(url: "https://github.com/glwithu06/Semver.swift.git", from: "SEMVER_TAG")
  ],
  targets: [
    .target(name: "NAME", dependencies: ["Semver"])
  ]
)

替换 SEMVER_TAG 然后输入

$ swift build

使用方法

创建

可以通过直接使用 Semver 实例化

let version = Semver(major: 1, minor: 23, patch: 45, prereleaseIdentifiers: ["rc", "1"], buildMetadataIdentifiers: ["B001"])

minorpatch 参数是可选的,默认为 "0"。

prereleaseIdentifiersbuildMetadataIdentifiers 参数是可选的,默认为 []

解析

您可以从字符串创建 Semver

let version = try Semver(string: "1.23.45-rc.1+B001")

或从数值。

let version = try Semver(number: 1.23)
let version = try Semver(number: 10)

如果版本无效,将抛出 ParsingError

扩展

Semver 符合 ExpressibleByStringLiteral, ExpressibleByIntegerLiteral, ExpressibleByFloatLiteral

它可以将 String 转换为 Semver

let version: Semver = "1.23.45-rc.1+B001"

或将 Numeric 转换为 Semver

let version: Semver = 1
let version: Semver = 1.23

⚠️如果版本无效,Semver 表示 "0.0.0"。它不会抛出任何错误。

比较

实现了默认的比较运算符(< , <= , > ,>= ,== , !=)。

这将按照 语义版本规范 比较主要、次要、修复版和预发布标识符。

贡献

任何拉取请求和错误报告都受欢迎!

请随时创建一个拉取请求。