BowEffectsGenerators 0.8.0

BowEffectsGenerators 0.8.0

TomásRuizLópez 维护。



 
依赖关系
Bow~> 0.8.0
BowGenerators~> 0.8.0
BowEffects~> 0.8.0
 

  • The Bow 作者

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

文档

所有文档和 API 参考都发布在我们的网站上 网站。一些链接到库的关键方面

模块

Bow 被拆分为多个模块,可以独立使用。这些模块包括:

  • Bow:核心库。包含高阶类型模拟、函数操作实用工具、Typeclasses、数据类型、Monad Transformers 和原始类型的实例。
  • BowOptics:用于工作不同光学模块。
  • BowRecursionSchemes:用于工作递归方案的模块。
  • BowFree:用于工作 Free Monads 的模块。
  • BowGeneric:用于工作通用数据类型的模块。
  • BowEffects:用于工作效果的模块。
  • BowRx:提供与 RxSwift 集成的模块。

还有一些用于测试的模块:

  • BowLaws:核心模块中类型类的定律。
  • BowOpticsLaws:光学定律。
  • BowEffectsLaws:效果定律。
  • BowGenerators:为核心模块中的数据类型生成基于属性的测试。
  • BowFreeGenerators:为 BowFree 中的数据类型生成基于属性的测试。
  • BowEffectsGenerators:为 BowEffects 中的数据类型生成基于属性的测试。
  • BowRxGenerators:为 BowRx 中的数据类型生成基于属性的测试。

Bow 可以通过 Swift Package Manager、CocoaPods 和 Carthage 获取。

SwiftPackageManager

从Xcode 11开始,您可以使用IDE中的集成功能将依赖项引入到您的项目中。您只需要提供仓库URL: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

您可以将每个Bow模块作为单独的pod进行消费。您可以在任何方便的时候将这些行的Podfile添加到您的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}

贡献

如果您想为这个库做出贡献,您可以查看问题来查看一些待办任务。

如何运行项目

在Xcode 11(或更高版本)中打开Bow.xcodeproj,就准备好开始了。Bow使用Swift Package Manager来处理其依赖项。

如何运行文档项目

  • 前往目录 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.