LetterCase 1.6.0

LetterCase 1.6.0

维护者:Ross Butler



LetterCase

CI Status Version Carthage compatible License Twitter

使用 Swift 编写的轻量级库,用于转换 String 的字母大小写。更多信息请参阅以下博客文章或下面的目录

特性

  • 可以将字符串转换为多种支持的大小写,包括:大写、短横线命名、小写、小驼峰命名、大驼峰命名、蛇形命名、大写和小驼峰命名。
  • 提供任何字母大小写到另一大小写的转换,例如:"the-quick-brown-fox-jumped-over-the-lazy-dog".convert(from: .kebab, to: .macro) 打印 THE_QUICK_BROWN_FOX_JUMPED_OVER_THE_LAZY_DOG
  • 实现了 JSONDecoder.KeyDecodingStrategyJSONEncoder.KeyEncodingStrategy 以便使用 Codable 键对 JSON 进行解码/编码,几乎适用于任何字母大小写。
  • 为每个支持的大小写提供了便捷的 String 方法,例如:"The Quick Brown Fox".kebabCased() 输出 "the-quick-brown-fox"。

安装

CocoaPods

CocoaPods 是一个依赖项管理器,它将依赖项整合到您的 Xcode 工作区。要使用 Ruby gems 安装它,请运行

gem install cocoapods

使用 CocoaPods 安装 LetterCase,只需将以下行添加到您的 Podfile 中:

pod "LetterCase"

然后运行命令

pod install

更多信息请参阅 此处

Carthage

Carthage 是一个依赖管理器,它为您的项目生成用于手动集成的二进制文件。您可以通过 Homebrew 使用以下命令安装它。

brew update
brew install carthage

为了通过 Carthage 将 LetterCase 集成到您的项目中,请在您的项目的 Cartfile 中添加以下行

github "rwbutler/LetterCase"

从 macOS 终端运行 carthage update --platform iOS 以构建框架,然后拖动 LetterCase.framework 至您的 Xcode 项目中。

有关更多信息,请参阅这里

Swift 包管理器

Xcode 11 包含了对 Swift 包管理器 的支持。要在 Xcode 11 中将 LetterCase 添加到您的项目,从 文件 菜单选择 Swift 包,然后选择 添加包依赖

将提示您输入包仓库的 URL,该 URL 为

https://github.com/rwbutler/LetterCase

验证 URL 后,Xcode 将提示您选择是否将特定的分支、提交或版本发布拉入您的项目。

Xcode 11 Package Options

进行下一步,您将被要求选择要集成到目标中的包产品。将有一个名为 LetterCase 的单个包产品,应该已预先选中。确保在对话框最右侧列中选择您的应用程序目标,然后单击“完成”以完成集成。

Xcode 11 Add Package

Letter Cases

case regular                     // No transformation applied.
case capitalized                 // e.g. Capitalized Case
case kebab                       // e.g. kebab-case
case lower                       // e.g. lower case
case lowerCamel                  // e.g. lowerCamelCase
case macro                       // e.g. MACRO_CASE
case snake                       // e.g. snakecase
case upper                       // e.g. UPPER CASE
case upperCamel                  // e.g. UpperCamelCase

使用方法

要使用 LetterCase,请首先使用以下方式导入它:import LetterCase。然后按照以下方式调用 String 上的便利方法之一的示例

let exampleString = "The quick brown fox jumped over the lazy dog."
let result = exampleString.letterCase(.kebab)
print(result)

结果将输出以下内容

the-quick-brown-fox-jumped-over-the-lazy-dog

或者

let exampleString = "The quick brown fox jumped over the lazy dog."
let result = exampleString.kebabCased()
print(result)

字母大小写转换

使用convert函数将字母大小写从一种转换为另一种,如下所示

let input = "the-quick-brown-fox-jumped-over-the-lazy-dog"
let result = input.convert(from: .kebab, to: .capitalized)
print(result) // Prints "The Quick Brown Fox Jumped Over The Lazy Dog"

JSON解码

要解码具有kebab case键的JSON,例如

{
    "vehicles": [{
        "name": "car",
        "travels-on": "road",
        "number-of-wheels": 4
    }, {
        "name": "boat",
        "travels-on": "water",
        "number-of-wheels": 0
    }, {
        "name": "train",
        "travels-on": "rail",
        "number-of-wheels": 80
    }, {
        "name": "plane",
        "travels-on": "air",
        "number-of-wheels": 18
    }]
}

指定keyDecodingStrategy如下

let jsonData = try Data(contentsOf: jsonResourceURL)
let decoder = JSONDecoder()
decoder.keyDecodingStrategy = .convertFromKebabCase
let vehicles try decoder.decode(Vehicles.self, from: jsonData)

可用的策略包括

  • convertFromCapitalized
  • convertFromDashCase
  • convertFromKebabCase
  • convertFromLispCase
  • convertFromLowerCase
  • convertFromLowerCamelCase
  • convertFromMacroCase
  • convertFromScreamingSnakeCase
  • convertFromTrainCase
  • convertFromUpperCase
  • convertFromUpperCamelCase

JSON编码

要将Swift结构编码为具有kebab case键的JSON,指定keyEncodingStrategy如下

let encoder = JSONEncoder()
encoder.keyEncodingStrategy = .convertToKebabCase
let jsonData = try encoder.encode(vehicles)

可用的策略包括

  • convertToCapitalized
  • convertToDashCase
  • convertToKebabCase
  • convertToLispCase
  • convertToLowerCase
  • convertToLowerCamelCase
  • convertToMacroCase
  • convertToScreamingSnakeCase
  • convertToTrainCase
  • convertToUpperCase
  • convertToUpperCamelCase

作者

Ross Butler

许可证

LetterCase遵循MIT许可证。有关更多信息,请参阅LICENSE文件

额外软件

控制

AnimatedGradientView
AnimatedGradientView

框架

  • Cheats - 当代 iOS 应用的复古作弊码。
  • Connectivity - 通过改善 Reachability 来确定你的 iOS 应用程序中的互联网连接性。
  • FeatureFlags - 允许开发者配置特性标志,通过捆绑/远程托管的 JSON 配置文件运行多个 A/B 或 MVT 测试。
  • FlexibleRowHeightGridLayout - 一种 UICollectionView 网格布局,旨在通过允许每行的尺寸适应内容来支持动态类型。
  • LetterCase - 用 Swift 编写的轻量级库,用于转换 String 的字母大小写。
  • Skylark - 完全用 Swift 编写的 BDD 测试框架,用于使用 Gherkin 语法编写 Cucumber 场景。
  • TailorSwift - Swift 核心库/框架扩展的集合。
  • TypographyKit - 支持动态类型的 iOS 上的一致性 & 可访问视觉样式。
  • Updates - 自动检测应用程序更新,并温柔地提示用户更新。
Cheats Connectivity FeatureFlags Skylark TypographyKit Updates
Cheats Connectivity FeatureFlags Skylark TypographyKit Updates

工具

  • Clear DerivedData - 通过在终端中键入 cdd 快速清除你的 DerivedData 目录的实用工具。
  • Config Validator - Config Validator 验证 & 上传你的配置文件,并在你的 CI 流程中清除你的 CDN 缓存。
  • IPA Uploader - 上传你的应用程序到 TestFlight & App Store。
  • 调色板 - 使你的 TypographyKit 颜色调色板在 Xcode 界面构建器中可用。
配置验证器 IPA 上传器 调色板
Config Validator IPA Uploader Palette