Swiftpack.co - Package - ArtSabintsev/Guitar

Guitar 🎸

A Cross-Platform String and Regular Expression Library written in Swift.

Swift Support

Documentation Platform

CocoaPods Carthage Compatible SwiftPM Compatible CocoaPods CocoaPods

About

This library seeks to add common string manipulation functions, including common regular expression capabilities, that are needed in both mobile and server-side development, but are missing in Swift's Standard Library.

The full documentation can be found at http://www.sabintsev.com/Guitar/.

Guitar is also part of Swift's Source Compatibility Suite.

Features

  • [x] Boolean Functions (isAlpha, isNumeric, isUppercase, etc.)
  • [x] Case Functions (camelCased, pascalCased, kebabCased, etc.)
  • [x] Latinization Functions (.latinized(), .withoutAccents())
  • [x] Padding Functions (padLeft, padRight, pad)
  • [x] Regular Expressions (with Common Patterns Built-in)

Sherlocked

A small set of functions offered by Guitar were removed in v0.3.0 of the library as Apple added many of these features to the Swift 4 language (aka, Sherlocking). The functions that were removed were: first, last, length, prefixed, suffixed, trimLeft, trimRight, truncated. The reversed function was renamed to reversedString as it acts slightly differently than Swift's built-in reversed function.

Installation Instructions

| Swift Version | Branch Name | Will Continue to Receive Updates? | ------------- | ------------- | ------------- | 4.1 | master | Yes | 3.2 | swift3.2 | No | 3.1 | swift3.1 | No

CocoaPods

For Swift 4 support:

pod 'Guitar'

For Swift 3.2 support:

pod 'Guitar', :git => 'https://github.com/ArtSabintsev/Guitar.git', :branch => 'swift3.2'

For Swift 3.1 support:

pod 'Guitar', :git => 'https://github.com/ArtSabintsev/Guitar.git', :branch => 'swift3.1'

Carthage

For Swift 3 support:

github "ArtSabintsev/Guitar"

For Swift 3.2 support:

github "ArtSabintsev/Guitar", "swift3.2"

For Swift 3.1 support:

github "ArtSabintsev/Guitar", "swift3.1"

Swift Package Manager

.Package(url: "https://github.com/ArtSabintsev/Guitar.git", majorVersion: 0)

Usage Examples

Regular Expression

  • Guitar makes it easier to use Regular Expressions to test and evaluate String objects.
  • Guitar.Chord enumerates common regular expressions and they are located in GuitarChord.swift.
  • GuitarCommon.swift contains a list of convenience methods for common regular expression evaluations and tests, such as checking the string to determine if it's a valid email address.

Initialization

Guitar(pattern: String) // A custom regular expression with which to initialize Guitar.

Guitar(chord: Guitar.Chord) // A common regular expression with which to initialize Guitar.

Methods

evaluateForRanges(::) returns an array of ranges, [Range<String.Index>], that match a specific regular expression.

Guitar(chord: .firstCharacter).evaluateForRanges(from: "Hello world") // [Range(Swift.String.CharacterView.Index(_base: Swift.String.UnicodeScalarView.Index(_position: 0), _countUTF16: 1)..<Swift.String.CharacterView.Index(_base: Swift.String.UnicodeScalarView.Index(_position: 1), _countUTF16: 1)), Range(Swift.String.CharacterView.Index(_base: Swift.String.UnicodeScalarView.Index(_position: 6), _countUTF16: 1)..<Swift.String.CharacterView.Index(_base: Swift.String.UnicodeScalarView.Index(_position: 7), _countUTF16: 1))]

evaluateForStrings(::) returns an array of strings, [String], that match a specific regular expression.

Guitar(chord: .firstCharacter).evaluateForStrings(from: "Hello world") // ["H", "w"]

test(::) evaluates a string with a specific regular expression. true is returned if matches are found in the string. Otherwise, false is returned.

Guitar(chord: .email).test(string: "hello@world.com") // `true`

String Extension

This library also adds dozens of methods via String extensions that are missing in the Swift Standard Library or not easily accessible on the String class. Examples of each new method can be found in the jazzy-powered documentation.

More specific examples can be found in the tests folder.

Inspiration

Created and maintained by

Arthur Ariel Sabintsev

Github

link
Stars: 574
Help us keep the lights on

Dependencies

Used By

Total: 0

Releases

0.4.0 - Mar 29, 2018

Minor changes in a few places to make the library Swift 4.1 compatible.

0.3.1 - Mar 15, 2018

  • Fixed .characters reference warning.
  • Updated Podspec file.
  • Removed .swift-version file, as it's been deprecated.

0.3.0 - Sep 14, 2017

Siren v0.3.0 adds support for Swift 4 / iOS 11 / Xcode 9.

A small set of functions offered by Guitar were removed in this version as Apple added many of these features to the Swift 4 language. The functions that were removed were: first, last, length, prefixed, suffixed, trimLeft, trimRight, truncated. The reversed function was renamed to reversedString as it acts slightly differently than Swift's built-in reversed function.

Moving forward, only support for the Swift 4 codebase (on master) will be maintained.

| Swift Version | Branch Name | Will Continue to Receive Updates? | ------------- | ------------- | ------------- | 4.0 | master | Yes | 3.2 | swift3.2 | No | 3.1 | swift3.1 | No

0.2.0 - Apr 25, 2017

#18

  • Tests moved to Tests/ folder in root directory
  • Added support for Linux Tests.
  • Invoked #availability and #if os() checks where necessary.

0.1.0 - Apr 15, 2017

As of v0.1.0, Guitar has transitioned from alpha to beta.

The existing API has stabilized and tests have been written for each public method and extension. Documentation has also been updated. To move from beta to a 1.0.0 release, more real-world testing is needed.

Please leave issues and PRs with any missing features or bugs!

Thanks!

Arthur