aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 578cd119787c661b7b946c0c3c25c8e2cbcf52e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
## Valua - Validation for Lua

[![Build Status](https://travis-ci.org/sailorproject/valua.svg?branch=master)](https://travis-ci.org/sailorproject/valua)
[![Coverage Status](https://coveralls.io/repos/github/sailorproject/valua/badge.svg?branch=master)](https://coveralls.io/github/sailorproject/valua?branch=master)

A module for making chained validations. Create your objects, append your tests, use and reuse it!

Originally bundled with Sailor MVC Web Framework, now released as a separated module.
  https://github.com/Etiene/sailor

This module provides tools for validating values, very useful in forms, but also usable elsewhere. It works in appended chains. Create a new validation object and start chaining your test functions. If your value fails a test, it breaks the chain and does not evaluate the rest of it. It returns a boolean and an error string (nil when tests succeeded).

Valua is also available through luarocks
````
luarocks install valua
````

#### Usage
Example 1 - Just create, chain and use:
```lua
valua:new().type("string").len(3,5)("test string!") -- false, "should have 3-5 characters"
```
Example 2 - Create, chain and later use it multiple times:
```lua
local reusable_validation = valua:new().type("string").len(3,5)
reusable_validation("test string!") -- false, "should have 3-5 characters"
reusable_validation("test!") -- true
```

#### Current validation functions

  * alnum() -
Checks if string is alphanumeric.
  * boolean() -
Checks if value is a boolean.
  * compare(another_value) -
Checks if value is equal to another value.
  * contains(substr) -
Checks if a string contains a substring.
  * date() or date(format) -
Checks if a string is a valid date. Default format is UK (dd/mm/yyyy). Also checks for US and ISO formats.
  * email() -
Checks if a string is a valid email address.
  * empty() -
Checks if a value is empty.
  * integer() -
Checks if a number is an integer;
  * in_list(list) -
Checks if a value is inside an array.
  * len(min,max) -
Checks if a string's length is between min and max.
  * match(pattern) -
Checks if a string matches a given pattern.
  * max(n) -
Checks if a number is equal or less than n.
  * min(n) -
Checks if a number is equal or greater than n.
  * not_empty() -
Checks if a value is not empty.
  * no_white() -
Checks if a string contains no white spaces.
  * number() -
Checks if a value is a number.
  * string() -
Checks if a value is a string.
  * type(t) -
Checks if a value is of type t.
  * optional(t) -
If value is `nil` it would be accepted. If it's not `nil` it would be processed with other chained validation functions as usually done.


Copyright (c) 2014 Etiene Dalcol

http://etiene.net

http://twitter.com/etiene_d

License: MIT



Inspired by Respect Validation for PHP

https://github.com/Respect/Validation