BowFreeGenerators 0.8.0

BowFreeGenerators 0.8.0

TomásRuizLópez 维护。



 
依赖
Bow~> 0.8.0
BowGenerators~> 0.8.0
BowFree~> 0.8.0
 

  • The Bow 作者

Bow 是一个 Swift 中的类型化函数式编程的跨平台库。

文档

所有文档和 API 参考 published 在 我们的网站。包含对库关键方面的链接

模块

Bow 分割为多个模块,可以独立消费。这些模块包括

  • Bow:核心库。包含高阶类型模拟、函数操作实用程序、Typeclasses、数据类型、Monad Transformers 和原始类型的实例。
  • BowOptics:用于不同 optics 的模块。
  • BowRecursionSchemes:用于 recursion schemes 的模块。
  • BowFree:用于 Free Monads 的模块。
  • BowGeneric:用于通用数据类型的模块。
  • BowEffects:用于 effects 的模块。
  • BowRx:提供与 RxSwift 集成的模块。

还有一些用于测试的模块

  • BowLaws:核心模块中 type classes 的规则。
  • BowOpticsLaws:optics 的规则。
  • BowEffectsLaws:effects 的规则。
  • BowGenerators:对核心模块中的数据类型进行基于属性的测试的生成器。
  • BowFreeGenerators:对 BowFree 中的数据类型进行基于属性的测试的生成器。
  • BowEffectsGenerators:对 BowEffects 中的数据类型进行基于属性的测试的生成器。
  • BowRxGenerators:对 BowRx 中的数据类型进行基于属性的测试的生成器。

Bow 可以通过 Swift Package Manager、CocoaPods 和 Carthage 使用。

Swift 包管理器

从 Xcode 11 开始,您可以使用 IDE 中的 Swift 包管理器集成来将依赖项引入您的项目。您只需要仓库的 URL:[https://github.com/bow-swift/bow.git](https://github.com/bow-swift/bow.git)。对于更早版本的 Xcode,创建一个类似的 Package.swift 文件,并方便地使用依赖项。

// swift-tools-version:5.0

import PackageDescription

let package = Package(
    name: "BowTestProject",
    dependencies: [
        .package(url: "https://github.com/bow-swift/bow.git", from: "{version}")
    ],
    targets: [
        .target(name: "BowTestProject",
                dependencies: [
                    "Bow",
                    "BowOptics",
                    "BowRecursionSchemes",
                    "BowFree",
                    "BowGeneric",
                    "BowEffects",
                    "BowRx"]),
        .testTarget(name: "BowTestProjectTests",
                    dependencies: [
                        // Type class laws
                        "BowLaws",
                        "BowOpticsLaws",
                        "BowEffectsLaws",

                        // Generators for PBT with SwiftCheck
                        "BowGenerators",
                        "BowFreeGenerators",
                        "BowEffectsGenerators",
                        "BowRxGenerators"])
    ]
)

要构建它,只需运行

$ swift build

CocoaPods

您可以像处理单独的 pod 一样消费每个 Bow 模块。您可以随时将以下行添加到您的 Podfile 中

pod "Bow",                 "~> {version}"
pod "BowOptics",           "~> {version}"
pod "BowRecursionSchemes", "~> {version}"
pod "BowFree",             "~> {version}"
pod "BowGeneric",          "~> {version}"
pod "BowEffects",          "~> {version}"
pod "BowRx",               "~> {version}"

测试定律

pod "BowLaws",        "~> {version}"
pod "BowOpticsLaws",  "~> {version}"
pod "BowEffectsLaws", "~> {version}"

SwiftCheck 的基于属性的测试生成器

pod "BowGenerators",              "~> {version}"
pod "BowFreeGenerators",          "~> {version}"
pod "BowEffectsGenerators",       "~> {version}"
pod "BowRxGenerators",            "~> {version}"

Carthage

Carthage 将下载整个 Bow 项目,但它将编译用于每个模块的独立框架,您可以分别使用它们。将此行添加到您的 Cartfile 中

github "bow-swift/Bow" ~> {version}

贡献

如果您想为此库做出贡献,您可以通过查看 Issues 来了解一些待办任务。

如何运行项目

在 Xcode 11(或更高版本)中打开 Bow.xcodeproj,您就可以开始了。Bow 使用 Swift 包管理器来处理其依赖项。

如何运行文档项目

  • 前往目录 contents/Documentation
  • 运行 pod install 以获取所有依赖。
  • 打开 Documentation.xcworkspace 并运行项目。

有关更多信息,请参阅我们的贡献指南

如何创建新的发布版本

您可以通过运行 bundle exec fastlane release version_number: 来创建一个新的发布版本。例如,bundle exec fastlane release version_number: 0.7.0

以下步骤会被执行:

  • *.podspec 文件中更新 version
  • CHANGELOG 文件中添加带有信息的标签。
  • 部署 podspec 文件并使其公开可用。

版权

Copyright (C) 2018-2020 The Bow Authors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   https://apache.ac.cn/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.