Latest 1.1.1
Homepage https://github.com/jeanpimentel/Honour
License MIT
Platforms ios 8.0, requires ARC
Authors

Language
License
Version

Validation library for iOS inspired by Respect/Validation.

Validator.mustBe(Uppercase()).andMust(StartsWith("F")).validate("FOOBAR")

:exclamation: If you want to use this library in Objective-C classes, check HonourBridge repo.

Usage

Single Validation

let username = "jeanpimentel"
Lowercase().validate(username) // true

Chained Validation

It is possible to use validators in a chain.

let v = Validator.addRule(Lowercase()).addRule(NoWhitespace()).addRule(Length(min: 3, max: 60))
v.validate("jeanpimentel") // true

Syntax sugar

It is possible to use some syntax tricks to be highly expressive.

let v = Validator.mustHave(Length(min: 3, max: 60)).and(NoWhitespace()).andMustBe(Lowercase())
v.validate("jeanpimentel") // true

Granularity control

We have 3 validation methods

  • validate() – returns true or false
  • assert() – returns a tuple with true/false and all errors, if any.
  • check() – returns a tuple with true/false and the first error, if any.

Validate

func validate(value: AnyObject) -> Bool
let validator = Validator().addRule(Uppercase()).addRule(StartsWith("J"))
validator.validate("JEAN") // true
validator.validate("PIMENTEL") // false

Assert

func assert(value: AnyObject) -> (isValid: Bool, invalidRules: Array<Rule>)
let validator = Validator().addRule(Uppercase()).addRule(StartsWith("J"))

let result = validator.assert("JEAN")
result.isValid      // true
result.invalidRules // [] (empty)

let result = validator.assert("Jean")
result.isValid      // false
result.invalidRules // [Uppercase()]

let result = validator.assert("Felipe")
result.isValid      // false
result.invalidRules // [Uppercase(), StartsWith("J")]

Check

func check(value: AnyObject) -> (isValid: Bool, invalidRule: Rule?)
let validator = Validator().addRule(Uppercase()).addRule(StartsWith("J"))

let result = validator.check("JEAN")
result.isValid     // true
result.invalidRule // nil

let result = validator.check("Felipe")
result.isValid     // false
result.invalidRule // Uppercase()

let result = validator.check("FELIPE")
result.isValid     // false
result.invalidRule // StartsWith("J")

Installation

Package is available on CocoaPods. See the "Using CocoaPods" guide for more information.

use_frameworks!
platform :ios, '7.0'
pod 'Honour', '~> 1.1.1'

Requirements

Honour Version Minimum iOS Target Notes
1.1.1 iOS 7 Swift 1.2 (Xcode 6.3) is required.

Contributing

  • If you found a bug, and can provide steps to reliably reproduce it, open an issue.

  • If you have a feature request, open an issue.

  • If you want to contribute, submit a pull request.
    1. Fork it!
    2. Create your feature branch: git checkout -b my-new-feature
    3. Commit your changes: git commit -am 'Add some feature'
    4. Push to the branch: git push origin my-new-feature
    5. Submit a pull request

Validators

Always a working in progress…

Available now:

Localized validators

  • Brazil (BR)

License

Honour is released under the MIT license. See LICENSE for details.

Latest podspec

{
    "name": "Honour",
    "version": "1.1.1",
    "summary": "iOS Validation Library",
    "description": "Validation library write in Swift for iOS projects.",
    "homepage": "https://github.com/jeanpimentel/Honour",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "Jean Pimentel": "[email protected]"
    },
    "platforms": {
        "ios": "8.0"
    },
    "source": {
        "git": "https://github.com/jeanpimentel/Honour.git",
        "tag": "1.1.1"
    },
    "source_files": "Honour/Library/**/*.swift",
    "requires_arc": true
}

Pin It on Pinterest

Share This