Need help with InflectorKit?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

mattt
454 Stars 28 Forks MIT License 11 Commits 1 Opened issues

Description

Efficiently Singularize and Pluralize Strings

Services available

!
?

Need anything else?

Contributors list

# 293
Objecti...
Swift
Xcode
codable
10 commits
# 17,697
iOS
graphql...
apollog...
GraphQL
1 commit

InflectorKit

CI

InflectorKit is a port of the string inflection functionality from Rails ActiveSupport for Swift and Objective-C.

InflectorKit joins FormatterKit & TransformerKit in providing well-designed APIs for manipulating user-facing content.

Usage

Swift

import InflectorKit

for singular in ["person", "tomato", "matrix", "octopus", "fish"] { print("(singular) → (singular.pluralized)") } /* Prints: person → people tomato → tomatoes matrix → matrices octopus → octopi fish → fish */

// You can also add pluralization rules, // including irregular and uncountable words:

let inflector = StringInflector.default inflector.addPluralRule(#"^i(Pod|Pad)( Mini)?$"#, replacement: #"i$1s$2"#) inflector.addIrregular(singular: "lol", plural: "lolz") inflector.addUncountable("Herokai")

for singular in ["iPad Mini", "lol", "Herokai"] { print("(singular) → (singular.pluralized)") } /* Prints: iPad Mini → iPads Mini lol → lolz Herokai → Herokai */

Objective-C

#import "NSString+InflectorKit.h"

for (NSString *singular in @[@"person", @"tomato", @"matrix", @"octopus", @"fish"]) { NSLog(@"%@ → %@", singular, [singular pluralizedString]); }

/* Prints: person → people tomato → tomatoes matrix → matrices octopus → octopi fish → fish */

// You can also add pluralization rules, // including irregular and uncountable words:

TTTStringInflector *inflector = [TTTStringInflector defaultInflector]; [inflector addPluralRule:@"^i(Pod|Pad)( Mini)?$" withReplacement:@"i$1s$2"]; [inflector addIrregularWithSingular:@"lol" plural:@"lolz"]; [inflector addUncountable:@"Herokai"];

for (NSString *singular in @[@"iPad Mini", @"lol", @"Herokai"]) { NSLog(@"%@ → %@", singular, [singular pluralizedString]); }

/* Prints: iPad Mini → iPads Mini lol → lolz Herokai → Herokai */

Installation

Swift Package Manager

Add the InflectorKit package to your target dependencies in

Package.swift
:
import PackageDescription

let package = Package( name: "YourProject", dependencies: [ .package( url: "https://github.com/mattt/InflectorKit", from: "1.0.0" ), ] )

Then run the

swift build
command to build your project.

CocoaPods

You can install

InflectorKit
via CocoaPods, by adding the following line to your
Podfile
:
pod 'InflectorKit', '~> 1.0.0'

Run the

pod install
command to download the library and integrate it into your Xcode project.

License

MIT

Contact

Mattt (@mattt)

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.