From edb5f61dda77ada6b926e39881fd454ba83d10cb Mon Sep 17 00:00:00 2001 From: Georg Fischer Date: Wed, 15 Apr 2015 17:23:28 +0200 Subject: [PATCH 1/4] add deregisterField method --- Validator/Validator.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Validator/Validator.swift b/Validator/Validator.swift index 66c6e8a..6daaba5 100644 --- a/Validator/Validator.swift +++ b/Validator/Validator.swift @@ -31,6 +31,10 @@ public class Validator { validations[textField] = ValidationRule(textField: textField, rules:rules, errorLabel:errorLabel) } + public func deregisterField(textField:UITextField) { + validations.removeValueForKey(textField) + } + public func validate(delegate:ValidationDelegate) { for field in validations.keys { From 3a68b97a8696bac4844a2cc0dcb7b8e4011d62f9 Mon Sep 17 00:00:00 2001 From: Georg Fischer Date: Wed, 15 Apr 2015 21:23:10 +0200 Subject: [PATCH 2/4] rename method to unregisterField --- Validator/Validator.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Validator/Validator.swift b/Validator/Validator.swift index 6daaba5..458a605 100644 --- a/Validator/Validator.swift +++ b/Validator/Validator.swift @@ -31,7 +31,7 @@ public class Validator { validations[textField] = ValidationRule(textField: textField, rules:rules, errorLabel:errorLabel) } - public func deregisterField(textField:UITextField) { + public func unregisterField(textField:UITextField) { validations.removeValueForKey(textField) } From 18af245f7833971d5da6567788fb38866cc6a6ab Mon Sep 17 00:00:00 2001 From: Georg Fischer Date: Wed, 15 Apr 2015 21:23:52 +0200 Subject: [PATCH 3/4] add tests for registerField and unregisterField --- ValidatorTests/ValidatorTests.swift | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/ValidatorTests/ValidatorTests.swift b/ValidatorTests/ValidatorTests.swift index 8fdeed3..854e191 100644 --- a/ValidatorTests/ValidatorTests.swift +++ b/ValidatorTests/ValidatorTests.swift @@ -31,6 +31,14 @@ class ValidatorTests: XCTestCase { let LEN_5 = "Howdy" let LEN_20 = "Paint the cat orange" + let REGISTER_TXT_FIELD = UITextField() + let REGISTER_VALIDATOR = Validator() + let REGISTER_RULES = [Rule]() + + let UNREGISTER_TXT_FIELD = UITextField() + let UNREGISTER_VALIDATOR = Validator() + let UNREGISTER_RULES = [Rule]() + override func setUp() { super.setUp() // Put setup code here. This method is called before the invocation of each test method in the class. @@ -144,4 +152,16 @@ class ValidatorTests: XCTestCase { XCTAssertFalse(FullNameRule().validate("Carl"), "Full Name should be invalid") } + // MARK: Register Field + + func testRegisterField(){ + REGISTER_VALIDATOR.registerField(REGISTER_TXT_FIELD, rules: REGISTER_RULES) + XCTAssert(REGISTER_VALIDATOR.validations[REGISTER_TXT_FIELD] != nil, "Textfield should register") + } + + func testUnregisterField(){ + UNREGISTER_VALIDATOR.registerField(UNREGISTER_TXT_FIELD, rules: UNREGISTER_RULES) + UNREGISTER_VALIDATOR.unregisterField(UNREGISTER_TXT_FIELD) + XCTAssert(UNREGISTER_VALIDATOR.validations[UNREGISTER_TXT_FIELD] == nil, "Textfield should unregister") + } } From 5fcd1d12e0c3fa2ba903b12ad33c7ada017025e6 Mon Sep 17 00:00:00 2001 From: Georg Fischer Date: Wed, 15 Apr 2015 21:24:46 +0200 Subject: [PATCH 4/4] add unregisterTextField example to readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 8884608..9d9afa2 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,8 @@ override func viewDidLoad() { validator.registerField(phoneNumberTextField, errorLabel: phoneNumberErrorLabel, rules: [RequiredRule(), MinLengthRule(length: 9)]) validator.registerField(zipcodeTextField, errorLabel: zipcodeErrorLabel, rules: [RequiredRule(), ZipCodeRule(regex = "\\d{5}")]) + // You can unregister a text field if you no longer want to validate it + validator.unregisterField(fullNameTextField) } ```