Imagine the next scenario: You have an awesome app, probably you use a form for register users, or maybe you need check when one field is valid or not... I'm pretty sure that you use a simple way to check each textField, switch... V For Validation try to help you for do it possible with an easy way.
IMPORTANT TO KNOW:
Validate != Check
- Validate executes validation and validated block.
- Check only executes validation block.
VFV have 2 parts:
- VFValidationManager.h: Contains all validations and It's responsible to check and validate.
- VFValidation.h: Check what needs validate and what happens when did it.
- VFRegularExpression.h: Create a regular expression and validate if string was valid.
Drag and drop or copy Source Folder into your project.
##Pod
pod 'VForValidation'
##Getting started
- Import library
#import "VForValidation.h"
- Create Manager
///@interface
@property (nonatomic, strong) VFValidationManager *validationManager;
///-(void)viewDidLoad
self.validationManager = [[VFValidationManager alloc] init];
- Creates validation
VFValidation *validation = [[VFValidation alloc] initWithValidationBlock:^BOOL{
return 1 != 2;
} validatedBlock:^(NSString *key, BOOL validated) {
if (validated) NSLog(@"True");
else NSLog(@"False");
} key:@"key"];
```
or
```Objective-C
VFValidation *validation = [[VFValidation alloc] initWithValidationBlock:^BOOL{
VFRegularExpression *regex = [[VFRegularExpression alloc]
initWithRegularExpression:@"^[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}$"
stringToValidate:@"[email protected]"];
return [regex validate];
} validatedBlock:^(NSString *key, BOOL validated) {
if (validated) NSLog(@"True");
else NSLog(@"False");
} key:@"key"];
```
4. Add Validation
```Objective-C
[self.validationManager addValidation:validation];
- When you want, VALIDATE!
[self.validationManager validate];
##API
- VFValidationManager.h
///Constructors
-(instancetype)initWithValidations:(NSArray *)validations;
///Adders
-(void)addValidation:(VFValidation *)validation;
-(void)addValidations:(NSArray *)validations;
///Modifiers
-(void)updateValidation:(VFValidation *)validation;
///Getters
-(VFValidation *)validationByKey:(NSString *)key;
-(NSArray *)validations;
///Validate and Check
-(void)validateByKey:(NSString *)key;
-(void)checkIfAllWasValidWithCompletion:(ValidatedWithoutKey)validated;
-(void)validateAndCheckIfAllWasValidWithCompletion:(ValidatedWithoutKey)validated;
- VFValidation.h
///Constructors
-(instancetype)initWithValidationBlock:(ValidationBlock)validation
validatedBlock:(ValidatedBlock)validated;
-(instancetype)initWithValidationBlock:(ValidationBlock)validation
validatedBlock:(ValidatedBlock)validated
key:(NSString *)key;
///Setters
-(void)setValidationBlock:(ValidationBlock)validationBlock;
-(void)setValidatedBlock:(ValidatedBlock)validatedBlock;
-(void)setValidationBlock:(ValidationBlock)validationBlock
validatedBlock:(ValidatedBlock)validatedBlock;
-(void)setKey:(NSString *)key;
///Validate and Check
-(void)validate;
-(void)checkValidationWithCompletion:(ValidatedWithouKey)validated;
-(void)validateAndCheckWithCompletion:(ValidatedWithouKey)validated;
- VFRegularExpression.h
///Constructors
- (instancetype)initWithRegularExpression:(NSString *)regex
stringToValidate:(NSString *)stringToValidate;
///Public API
- (BOOL)validate;
- Fork it!
- Create your feature branch:
git checkout -b VFV-new-feature
- Commit your changes:
git commit -am 'Add new feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request ๐
- Joan Molinas (website)
VFV is available under the MIT license.