SourcererArchiver 0.1.0

SourcererArchiver 0.1.0

Héctor Marqués 维护。



 
依赖
习语>= 0
ShellInterface>= 0
 

  • Hèctor Marquès

Sourcerer

纯 Swift 元编程

Sourcery 上运行的纯 Swift 代码生成器,用于证明概念。

介绍

Sourcerer 由一系列 swift 模块组成,可以将其导入到您的 macOS 应用程序中,以加载 Sourcery 从 Swift 源中提取的信息,即 SourceryRuntime.Types 对象。

  • SourcererArchiver 使用 Sourcery 将 SourceryRuntime.Types 对象的存档写入磁盘。
  • SourcererUnarchiverSourceryRuntime.Types 对象解档为运行中的应用程序。
  • 解档器需要 SourcererRuntime 来加载存档信息。
  • SourcererTypesSourcererRenderer 包含一些对 SourceryRuntime.Types 的辅助程序和扩展。

要了解它的工作原理,请查看示例项目

$ git clone https://github.com/hectr/swift-sourcerer.git
$ cd swift-sourcerer
$ pod install
$ open sourcerer.xcworkspace

用法

开始使用 Sourcerer 的步骤:

  • 创建一个新的 macOS 项目(例如,示例

  • 设置依赖项(Podfile

target 'Example' do
  # archive
  pod 'SourcererArchiver', :git => 'https://github.com/hectr/swift-sourcerer.git'
  # unarchive
  pod 'SourcererUnarchiver', :git => 'https://github.com/hectr/swift-sourcerer.git'
  pod 'SourceryRuntime', :git => 'https://github.com/hectr/swift-sourcerer.git'
end
  • 下载 SourceryRuntime 源文件

./install_sourcery_runtime.sh

  • 实现初始代码(main.swift
import SourceryRuntime
import SourcererArchiver
import SourcererUnarchiver

let ignoreUnknownArguments = false
let archive = GenerateTypesArchive().execute
let unarchive = UnarchiveTypesFromPath().execute

let typesArchivePath = try archive(ignoreUnknownArguments)
let types = try unarchive(typesArchivePath)

print("- There are \(types.protocols.count) protocols.")
print("- There are \(types.structs.count) structs.")
print("- There are \(types.classes.count) classes.")
  • 当执行此示例时,您需要传入:(1)Sourcery 可执行文件的路径(--sourcery-path)和(2)源文件的路径(--sources

示例 --sourcery-path /path/to/sourcery --sources /path/to/sources/