From 52614d600dafcc9cb66ce841b953c6edc0fcf138 Mon Sep 17 00:00:00 2001 From: Henrique Moody Date: Thu, 23 Aug 2018 01:38:24 +0200 Subject: [PATCH] Organize documentation for "Read the Docs" The current documentation is hosted via GitHub pages rendered by "Couscous". Every time we need a new version of the documentation published we need to manually execute the "couscous". This commit reorganize the documentation to be published to "Read the Docs" because it will also allow us to have documentations per version of the library most importantly provider a search field for the documentation. The documentation will be then published on: https://respect-validation.readthedocs.io/ Signed-off-by: Henrique Moody --- CHANGELOG.md | 4 +- CONTRIBUTING.md | 10 +- LICENSE.md | 4 +- README.md | 12 +- docs/VALIDATORS.md | 338 ---------------------- docs/{CONCRETE_API.md => concrete-api.md} | 0 docs/{README.md => feature-guide.md} | 11 +- docs/index.md | 16 + docs/{INSTALL.md => installation.md} | 8 - docs/license.md | 30 ++ docs/list-of-rules.md | 329 +++++++++++++++++++++ docs/{ => rules}/Age.md | 0 docs/{ => rules}/AllOf.md | 0 docs/{ => rules}/Alnum.md | 0 docs/{ => rules}/Alpha.md | 0 docs/{ => rules}/AlwaysInvalid.md | 0 docs/{ => rules}/AlwaysValid.md | 0 docs/{ => rules}/ArrayType.md | 0 docs/{ => rules}/ArrayVal.md | 0 docs/{ => rules}/Attribute.md | 0 docs/{ => rules}/Bank.md | 0 docs/{ => rules}/BankAccount.md | 0 docs/{ => rules}/Between.md | 0 docs/{ => rules}/Bic.md | 0 docs/{ => rules}/BoolType.md | 0 docs/{ => rules}/BoolVal.md | 0 docs/{ => rules}/Bsn.md | 0 docs/{ => rules}/Call.md | 0 docs/{ => rules}/CallableType.md | 0 docs/{ => rules}/Callback.md | 0 docs/{ => rules}/Charset.md | 0 docs/{ => rules}/Cnh.md | 0 docs/{ => rules}/Cnpj.md | 0 docs/{ => rules}/Cntrl.md | 0 docs/{ => rules}/Consonant.md | 0 docs/{ => rules}/Contains.md | 0 docs/{ => rules}/Countable.md | 0 docs/{ => rules}/CountryCode.md | 0 docs/{ => rules}/Cpf.md | 0 docs/{ => rules}/CreditCard.md | 0 docs/{ => rules}/CurrencyCode.md | 0 docs/{ => rules}/Date.md | 0 docs/{ => rules}/Digit.md | 0 docs/{ => rules}/Directory.md | 0 docs/{ => rules}/Domain.md | 0 docs/{ => rules}/Each.md | 0 docs/{ => rules}/Email.md | 0 docs/{ => rules}/EndsWith.md | 0 docs/{ => rules}/Equals.md | 0 docs/{ => rules}/Even.md | 0 docs/{ => rules}/Executable.md | 0 docs/{ => rules}/Exists.md | 0 docs/{ => rules}/Extension.md | 0 docs/{ => rules}/Factor.md | 0 docs/{ => rules}/FalseVal.md | 0 docs/{ => rules}/Fibonacci.md | 0 docs/{ => rules}/File.md | 0 docs/{ => rules}/FilterVar.md | 0 docs/{ => rules}/Finite.md | 0 docs/{ => rules}/FloatType.md | 0 docs/{ => rules}/FloatVal.md | 0 docs/{ => rules}/Graph.md | 0 docs/{ => rules}/HexRgbColor.md | 0 docs/{ => rules}/Identical.md | 0 docs/{ => rules}/IdentityCard.md | 0 docs/{ => rules}/Image.md | 0 docs/{ => rules}/Imei.md | 0 docs/{ => rules}/In.md | 0 docs/{ => rules}/Infinite.md | 0 docs/{ => rules}/Instance.md | 0 docs/{ => rules}/IntType.md | 0 docs/{ => rules}/IntVal.md | 0 docs/{ => rules}/Ip.md | 0 docs/{ => rules}/Iterable.md | 0 docs/{ => rules}/IterableType.md | 0 docs/{ => rules}/Json.md | 0 docs/{ => rules}/Key.md | 0 docs/{ => rules}/KeyNested.md | 0 docs/{ => rules}/KeySet.md | 0 docs/{ => rules}/KeyValue.md | 0 docs/{ => rules}/LanguageCode.md | 0 docs/{ => rules}/LeapDate.md | 0 docs/{ => rules}/LeapYear.md | 0 docs/{ => rules}/Length.md | 0 docs/{ => rules}/Lowercase.md | 0 docs/{ => rules}/MacAddress.md | 0 docs/{ => rules}/Max.md | 0 docs/{ => rules}/Mimetype.md | 0 docs/{ => rules}/Min.md | 0 docs/{ => rules}/MinimumAge.md | 0 docs/{ => rules}/Multiple.md | 0 docs/{ => rules}/Negative.md | 0 docs/{ => rules}/NfeAccessKey.md | 0 docs/{ => rules}/No.md | 0 docs/{ => rules}/NoWhitespace.md | 0 docs/{ => rules}/NoneOf.md | 0 docs/{ => rules}/Not.md | 0 docs/{ => rules}/NotBlank.md | 0 docs/{ => rules}/NotEmpty.md | 0 docs/{ => rules}/NotOptional.md | 0 docs/{ => rules}/NullType.md | 0 docs/{ => rules}/Numeric.md | 0 docs/{ => rules}/ObjectType.md | 0 docs/{ => rules}/Odd.md | 0 docs/{ => rules}/OneOf.md | 0 docs/{ => rules}/Optional.md | 0 docs/{ => rules}/PerfectSquare.md | 0 docs/{ => rules}/Pesel.md | 0 docs/{ => rules}/Phone.md | 0 docs/{ => rules}/PhpLabel.md | 0 docs/{ => rules}/Positive.md | 0 docs/{ => rules}/PostalCode.md | 0 docs/{ => rules}/PrimeNumber.md | 0 docs/{ => rules}/Prnt.md | 0 docs/{ => rules}/Punct.md | 0 docs/{ => rules}/Readable.md | 0 docs/{ => rules}/Regex.md | 0 docs/{ => rules}/ResourceType.md | 0 docs/{ => rules}/Roman.md | 0 docs/{ => rules}/ScalarVal.md | 0 docs/{ => rules}/Sf.md | 0 docs/{ => rules}/Size.md | 0 docs/{ => rules}/Slug.md | 0 docs/{ => rules}/Space.md | 0 docs/{ => rules}/StartsWith.md | 0 docs/{ => rules}/StringType.md | 0 docs/{ => rules}/SubdivisionCode.md | 0 docs/{ => rules}/SymbolicLink.md | 0 docs/{ => rules}/Tld.md | 0 docs/{ => rules}/TrueVal.md | 0 docs/{ => rules}/Type.md | 0 docs/{ => rules}/Uploaded.md | 0 docs/{ => rules}/Uppercase.md | 0 docs/{ => rules}/Url.md | 0 docs/{ => rules}/Version.md | 0 docs/{ => rules}/VideoUrl.md | 0 docs/{ => rules}/Vowel.md | 0 docs/{ => rules}/When.md | 0 docs/{ => rules}/Writable.md | 0 docs/{ => rules}/Xdigit.md | 0 docs/{ => rules}/Yes.md | 0 docs/{ => rules}/Zend.md | 0 142 files changed, 389 insertions(+), 373 deletions(-) delete mode 100644 docs/VALIDATORS.md rename docs/{CONCRETE_API.md => concrete-api.md} (100%) rename docs/{README.md => feature-guide.md} (97%) create mode 100644 docs/index.md rename docs/{INSTALL.md => installation.md} (67%) create mode 100644 docs/license.md create mode 100644 docs/list-of-rules.md rename docs/{ => rules}/Age.md (100%) rename docs/{ => rules}/AllOf.md (100%) rename docs/{ => rules}/Alnum.md (100%) rename docs/{ => rules}/Alpha.md (100%) rename docs/{ => rules}/AlwaysInvalid.md (100%) rename docs/{ => rules}/AlwaysValid.md (100%) rename docs/{ => rules}/ArrayType.md (100%) rename docs/{ => rules}/ArrayVal.md (100%) rename docs/{ => rules}/Attribute.md (100%) rename docs/{ => rules}/Bank.md (100%) rename docs/{ => rules}/BankAccount.md (100%) rename docs/{ => rules}/Between.md (100%) rename docs/{ => rules}/Bic.md (100%) rename docs/{ => rules}/BoolType.md (100%) rename docs/{ => rules}/BoolVal.md (100%) rename docs/{ => rules}/Bsn.md (100%) rename docs/{ => rules}/Call.md (100%) rename docs/{ => rules}/CallableType.md (100%) rename docs/{ => rules}/Callback.md (100%) rename docs/{ => rules}/Charset.md (100%) rename docs/{ => rules}/Cnh.md (100%) rename docs/{ => rules}/Cnpj.md (100%) rename docs/{ => rules}/Cntrl.md (100%) rename docs/{ => rules}/Consonant.md (100%) rename docs/{ => rules}/Contains.md (100%) rename docs/{ => rules}/Countable.md (100%) rename docs/{ => rules}/CountryCode.md (100%) rename docs/{ => rules}/Cpf.md (100%) rename docs/{ => rules}/CreditCard.md (100%) rename docs/{ => rules}/CurrencyCode.md (100%) rename docs/{ => rules}/Date.md (100%) rename docs/{ => rules}/Digit.md (100%) rename docs/{ => rules}/Directory.md (100%) rename docs/{ => rules}/Domain.md (100%) rename docs/{ => rules}/Each.md (100%) rename docs/{ => rules}/Email.md (100%) rename docs/{ => rules}/EndsWith.md (100%) rename docs/{ => rules}/Equals.md (100%) rename docs/{ => rules}/Even.md (100%) rename docs/{ => rules}/Executable.md (100%) rename docs/{ => rules}/Exists.md (100%) rename docs/{ => rules}/Extension.md (100%) rename docs/{ => rules}/Factor.md (100%) rename docs/{ => rules}/FalseVal.md (100%) rename docs/{ => rules}/Fibonacci.md (100%) rename docs/{ => rules}/File.md (100%) rename docs/{ => rules}/FilterVar.md (100%) rename docs/{ => rules}/Finite.md (100%) rename docs/{ => rules}/FloatType.md (100%) rename docs/{ => rules}/FloatVal.md (100%) rename docs/{ => rules}/Graph.md (100%) rename docs/{ => rules}/HexRgbColor.md (100%) rename docs/{ => rules}/Identical.md (100%) rename docs/{ => rules}/IdentityCard.md (100%) rename docs/{ => rules}/Image.md (100%) rename docs/{ => rules}/Imei.md (100%) rename docs/{ => rules}/In.md (100%) rename docs/{ => rules}/Infinite.md (100%) rename docs/{ => rules}/Instance.md (100%) rename docs/{ => rules}/IntType.md (100%) rename docs/{ => rules}/IntVal.md (100%) rename docs/{ => rules}/Ip.md (100%) rename docs/{ => rules}/Iterable.md (100%) rename docs/{ => rules}/IterableType.md (100%) rename docs/{ => rules}/Json.md (100%) rename docs/{ => rules}/Key.md (100%) rename docs/{ => rules}/KeyNested.md (100%) rename docs/{ => rules}/KeySet.md (100%) rename docs/{ => rules}/KeyValue.md (100%) rename docs/{ => rules}/LanguageCode.md (100%) rename docs/{ => rules}/LeapDate.md (100%) rename docs/{ => rules}/LeapYear.md (100%) rename docs/{ => rules}/Length.md (100%) rename docs/{ => rules}/Lowercase.md (100%) rename docs/{ => rules}/MacAddress.md (100%) rename docs/{ => rules}/Max.md (100%) rename docs/{ => rules}/Mimetype.md (100%) rename docs/{ => rules}/Min.md (100%) rename docs/{ => rules}/MinimumAge.md (100%) rename docs/{ => rules}/Multiple.md (100%) rename docs/{ => rules}/Negative.md (100%) rename docs/{ => rules}/NfeAccessKey.md (100%) rename docs/{ => rules}/No.md (100%) rename docs/{ => rules}/NoWhitespace.md (100%) rename docs/{ => rules}/NoneOf.md (100%) rename docs/{ => rules}/Not.md (100%) rename docs/{ => rules}/NotBlank.md (100%) rename docs/{ => rules}/NotEmpty.md (100%) rename docs/{ => rules}/NotOptional.md (100%) rename docs/{ => rules}/NullType.md (100%) rename docs/{ => rules}/Numeric.md (100%) rename docs/{ => rules}/ObjectType.md (100%) rename docs/{ => rules}/Odd.md (100%) rename docs/{ => rules}/OneOf.md (100%) rename docs/{ => rules}/Optional.md (100%) rename docs/{ => rules}/PerfectSquare.md (100%) rename docs/{ => rules}/Pesel.md (100%) rename docs/{ => rules}/Phone.md (100%) rename docs/{ => rules}/PhpLabel.md (100%) rename docs/{ => rules}/Positive.md (100%) rename docs/{ => rules}/PostalCode.md (100%) rename docs/{ => rules}/PrimeNumber.md (100%) rename docs/{ => rules}/Prnt.md (100%) rename docs/{ => rules}/Punct.md (100%) rename docs/{ => rules}/Readable.md (100%) rename docs/{ => rules}/Regex.md (100%) rename docs/{ => rules}/ResourceType.md (100%) rename docs/{ => rules}/Roman.md (100%) rename docs/{ => rules}/ScalarVal.md (100%) rename docs/{ => rules}/Sf.md (100%) rename docs/{ => rules}/Size.md (100%) rename docs/{ => rules}/Slug.md (100%) rename docs/{ => rules}/Space.md (100%) rename docs/{ => rules}/StartsWith.md (100%) rename docs/{ => rules}/StringType.md (100%) rename docs/{ => rules}/SubdivisionCode.md (100%) rename docs/{ => rules}/SymbolicLink.md (100%) rename docs/{ => rules}/Tld.md (100%) rename docs/{ => rules}/TrueVal.md (100%) rename docs/{ => rules}/Type.md (100%) rename docs/{ => rules}/Uploaded.md (100%) rename docs/{ => rules}/Uppercase.md (100%) rename docs/{ => rules}/Url.md (100%) rename docs/{ => rules}/Version.md (100%) rename docs/{ => rules}/VideoUrl.md (100%) rename docs/{ => rules}/Vowel.md (100%) rename docs/{ => rules}/When.md (100%) rename docs/{ => rules}/Writable.md (100%) rename docs/{ => rules}/Xdigit.md (100%) rename docs/{ => rules}/Yes.md (100%) rename docs/{ => rules}/Zend.md (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 941c1752..6354b815 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -101,8 +101,6 @@ All notable changes of the Respect\Validation releases are documented in this fi *** See also: +- [README](README.md) - [Contributing](CONTRIBUTING.md) -- [Feature Guide](docs/README.md) -- [Installation](docs/INSTALL.md) - [License](LICENSE.md) -- [Validators](docs/VALIDATORS.md) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ca3b1319..e36bf0f8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -179,8 +179,8 @@ As we already said, none of them are required but you will help us a lot. ## Documentation Our docs at http://respect.github.io/Validation are generated from our Markdown -files using [Couscous][]. Add your brand new rule there and everything will be -updated as soon as possible. +files using [Read the Docs][]. Add your brand new rule there and everything will +be updated automatically. ## Running Tests @@ -234,15 +234,13 @@ $ vendor/bin/php-cs-fixer fix *** See also: -- [Feature Guide](docs/README.md) -- [Installation](docs/INSTALL.md) +- [README](README.md) - [License](LICENSE.md) -- [Validators](docs/VALIDATORS.md) - [Changelog](CHANGELOG.md) [ArrayType]: https://github.com/Respect/Validation/commit/f08a1fa -[Couscous]: http://couscous.io/ "Couscous" +[Read the Docs]: https://readthedocs.org/ "Read the Docs" [data provider]: https://phpunit.de/manual/current/en/writing-tests-for-phpunit.html#writing-tests-for-phpunit.data-providers "PHPUnit Data Providers" [open an issue]: http://github.com/Respect/Validation/issues [php-cs-fixer]: https://github.com/FriendsOfPHP/PHP-CS-Fixer "PHP Coding Standard Fixer" diff --git a/LICENSE.md b/LICENSE.md index fc1d6e8b..615cfd2e 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -32,8 +32,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *** See also: +- [README](README.md) - [Contributing](CONTRIBUTING.md) -- [Feature Guide](docs/README.md) -- [Installation](docs/INSTALL.md) -- [Validators](docs/VALIDATORS.md) - [Changelog](CHANGELOG.md) diff --git a/README.md b/README.md index dbf83e7f..6e026234 100644 --- a/README.md +++ b/README.md @@ -10,16 +10,18 @@ [The most awesome validation engine ever created for PHP.](http://bit.ly/1a1oeQv) - Complex rules made simple: `v::numeric()->positive()->between(1, 255)->validate($input)`. -- [Granularity control](docs/README.md#validation-methods) for advanced reporting. +- Granularity control for advanced reporting. - More than 100 (fully tested) validators. -- [A concrete API](docs/CONCRETE_API.md) for non fluent usage. +- A concrete API for non fluent usage. - Works on PHP 5.4+ or HHVM 3.3+ +## Documentation + +Documentation can be found in https://respect-validation.readthedocs.io +and also in the [docs/](docs/index.md) folder. + ## Table of contents - [Contributing](CONTRIBUTING.md) -- [Feature Guide](docs/README.md) -- [Installation](docs/INSTALL.md) - [License](LICENSE.md) -- [Validators](docs/VALIDATORS.md) - [Changelog](CHANGELOG.md) diff --git a/docs/VALIDATORS.md b/docs/VALIDATORS.md deleted file mode 100644 index 4804cbee..00000000 --- a/docs/VALIDATORS.md +++ /dev/null @@ -1,338 +0,0 @@ -# Validators - -## Types - - * [ArrayVal](ArrayVal.md) - * [ArrayType](ArrayType.md) - * [BoolVal](BoolVal.md) - * [BoolType](BoolType.md) - * [CallableType](CallableType.md) - * [Countable](Countable.md) - * [Date](Date.md) - * [FalseVal](FalseVal.md) - * [FloatVal](FloatVal.md) - * [FloatType](FloatType.md) - * [Instance](Instance.md) - * [IntVal](IntVal.md) - * [IntType](IntType.md) - * [IterableType](IterableType.md) - * [NullType](NullType.md) - * [Numeric](Numeric.md) - * [ObjectType](ObjectType.md) - * [ResourceType](ResourceType.md) - * [ScalarVal](ScalarVal.md) - * [StringType](StringType.md) - * [TrueVal](TrueVal.md) - * [Type](Type.md) - * [Xdigit](Xdigit.md) - -## Generics - - * [AlwaysInvalid](AlwaysInvalid.md) - * [AlwaysValid](AlwaysValid.md) - * [Call](Call.md) - * [Callback](Callback.md) - * [FilterVar](FilterVar.md) - * [Not](Not.md) - * [Optional](Optional.md) - * [Type](Type.md) - * [When](When.md) - -## Comparing Values - - * [Age](Age.md) - * [Between](Between.md) - * [Equals](Equals.md) - * [Identical](Identical.md) - * [Max](Max.md) - * [Min](Min.md) - -## Numeric - - * [Between](Between.md) - * [BoolType](BoolType.md) - * [Even](Even.md) - * [Factor](Factor.md) - * [Fibonacci](Fibonacci.md) - * [Finite](Finite.md) - * [FloatVal](FloatVal.md) - * [FloatType](FloatType.md) - * [Infinite](Infinite.md) - * [IntVal](IntVal.md) - * [IntType](IntType.md) - * [Multiple](Multiple.md) - * [Negative](Negative.md) - * [NotEmpty](NotEmpty.md) - * [Numeric](Numeric.md) - * [Odd](Odd.md) - * [PerfectSquare](PerfectSquare.md) - * [Positive](Positive.md) - * [PrimeNumber](PrimeNumber.md) - * [Roman](Roman.md) - * [Xdigit](Xdigit.md) - -## String - - * [Alnum](Alnum.md) - * [Alpha](Alpha.md) - * [Between](Between.md) - * [Charset](Charset.md) - * [Cntrl](Cntrl.md) - * [Consonant](Consonant.md) - * [Contains](Contains.md) - * [Digit](Digit.md) - * [EndsWith](EndsWith.md) - * [Graph](Graph.md) - * [In](In.md) - * [Length](Length.md) - * [Lowercase](Lowercase.md) - * [NotEmpty](NotEmpty.md) - * [NoWhitespace](NoWhitespace.md) - * [PhpLabel](PhpLabel.md) - * [Prnt](Prnt.md) - * [Punct](Punct.md) - * [Regex](Regex.md) - * [ResourceType](ResourceType.md) - * [Slug](Slug.md) - * [Space](Space.md) - * [StartsWith](StartsWith.md) - * [Uppercase](Uppercase.md) - * [Version](Version.md) - * [Vowel](Vowel.md) - * [Xdigit](Xdigit.md) - -## Arrays - - * [ArrayVal](ArrayVal.md) - * [ArrayType](ArrayType.md) - * [Contains](Contains.md) - * [Each](Each.md) - * [EndsWith](EndsWith.md) - * [In](In.md) - * [Key](Key.md) - * [KeyNested](KeyNested.md) - * [KeySet](KeySet.md) - * [KeyValue](KeyValue.md) - * [Length](Length.md) - * [NotEmpty](NotEmpty.md) - * [StartsWith](StartsWith.md) - -## Objects - - * [Attribute](Attribute.md) - * [Instance](Instance.md) - * [Length](Length.md) - -## Date and Time - - * [Age](Age.md) - * [Between](Between.md) - * [Date](Date.md) - * [LeapDate](LeapDate.md) - * [LeapYear](LeapYear.md) - * [MinimumAge](MinimumAge.md) - -## Group Validators - - * [AllOf](AllOf.md) - * [NoneOf](NoneOf.md) - * [OneOf](OneOf.md) - -## Regional - - * [CountryCode](CountryCode.md) - * [CurrencyCode](CurrencyCode.md) - * [IdentityCard](IdentityCard.md) - * [LanguageCode](LanguageCode.md) - * [PostalCode](PostalCode.md) - * [SubdivisionCode](SubdivisionCode.md) - * [Tld](Tld.md) - -## Files - - * [Directory](Directory.md) - * [Executable](Executable.md) - * [Exists](Exists.md) - * [Extension](Extension.md) - * [File](File.md) - * [Image](Image.md) - * [Mimetype](Mimetype.md) - * [Readable](Readable.md) - * [Size](Size.md) - * [SymbolicLink](SymbolicLink.md) - * [Uploaded](Uploaded.md) - * [Writable](Writable.md) - -## Banking - - * [Bank](Bank.md) - * [BankAccount](BankAccount.md) - * [Bic](Bic.md) - -## Other - - * [Bsn](Bsn.md) - * [Cnh](Cnh.md) - * [Cnpj](Cnpj.md) - * [Cpf](Cpf.md) - * [Domain](Domain.md) - * [Email](Email.md) - * [HexRgbColor](HexRgbColor.md) - * [Imei](Imei.md) - * [Ip](Ip.md) - * [Json](Json.md) - * [MacAddress](MacAddress.md) - * [NfeAccessKey](NfeAccessKey.md) - * [NotBlank](NotBlank.md) - * [NotOptional](NotOptional.md) - * [Pesel](Pesel.md) - * [Phone](Phone.md) - * [Sf](Sf.md) - * [Url](Url.md) - * [VideoUrl](VideoUrl.md) - * [Zend](Zend.md) - -## Yes/No - - * [No](No.md) - * [Yes](Yes.md) - -## Alphabetically - - * [Age](Age.md) - * [AllOf](AllOf.md) - * [Alnum](Alnum.md) - * [Alpha](Alpha.md) - * [AlwaysInvalid](AlwaysInvalid.md) - * [AlwaysValid](AlwaysValid.md) - * [ArrayVal](ArrayVal.md) - * [ArrayType](ArrayType.md) - * [Attribute](Attribute.md) - * [Bank](Bank.md) - * [BankAccount](BankAccount.md) - * [Between](Between.md) - * [Bic](Bic.md) - * [BoolType](BoolType.md) - * [Bsn](Bsn.md) - * [Call](Call.md) - * [CallableType](CallableType.md) - * [Callback](Callback.md) - * [Charset](Charset.md) - * [Cnh](Cnh.md) - * [Cnpj](Cnpj.md) - * [Cntrl](Cntrl.md) - * [Consonant](Consonant.md) - * [Contains](Contains.md) - * [Countable](Countable.md) - * [CountryCode](CountryCode.md) - * [Cpf](Cpf.md) - * [CreditCard](CreditCard.md) - * [Date](Date.md) - * [Digit](Digit.md) - * [Directory](Directory.md) - * [Domain](Domain.md) - * [Each](Each.md) - * [Email](Email.md) - * [EndsWith](EndsWith.md) - * [Equals](Equals.md) - * [Even](Even.md) - * [Executable](Executable.md) - * [Exists](Exists.md) - * [Extension](Extension.md) - * [Factor](Factor.md) - * [FalseVal](FalseVal.md) - * [Fibonacci](Fibonacci.md) - * [File](File.md) - * [FilterVar](FilterVar.md) - * [Finite](Finite.md) - * [FloatVal](FloatVal.md) - * [FloatType](FloatType.md) - * [Graph](Graph.md) - * [HexRgbColor](HexRgbColor.md) - * [Identical](Identical.md) - * [IdentityCard](IdentityCard.md) - * [Image](Image.md) - * [Imei](Imei.md) - * [In](In.md) - * [Infinite](Infinite.md) - * [Instance](Instance.md) - * [IntVal](IntVal.md) - * [IntType](IntType.md) - * [Ip](Ip.md) - * [IterableType](IterableType.md) - * [Json](Json.md) - * [Key](Key.md) - * [KeyNested](KeyNested.md) - * [KeySet](KeySet.md) - * [KeyValue](KeyValue.md) - * [LanguageCode](LanguageCode.md) - * [LeapDate](LeapDate.md) - * [LeapYear](LeapYear.md) - * [Length](Length.md) - * [Lowercase](Lowercase.md) - * [MacAddress](MacAddress.md) - * [Max](Max.md) - * [Mimetype](Mimetype.md) - * [Min](Min.md) - * [MinimumAge](MinimumAge.md) - * [Multiple](Multiple.md) - * [Negative](Negative.md) - * [NfeAccessKey](NfeAccessKey.md) - * [No](No.md) - * [NoWhitespace](NoWhitespace.md) - * [NoneOf](NoneOf.md) - * [Not](Not.md) - * [NotBlank](NotBlank.md) - * [NotEmpty](NotEmpty.md) - * [NotOptional](NotOptional.md) - * [NullType](NullType.md) - * [Numeric](Numeric.md) - * [ObjectType](ObjectType.md) - * [Odd](Odd.md) - * [OneOf](OneOf.md) - * [Optional](Optional.md) - * [PerfectSquare](PerfectSquare.md) - * [Pesel](Pesel.md) - * [Phone](Phone.md) - * [PhpLabel](PhpLabel.md) - * [Positive](Positive.md) - * [PostalCode](PostalCode.md) - * [PrimeNumber](PrimeNumber.md) - * [Prnt](Prnt.md) - * [Punct](Punct.md) - * [Readable](Readable.md) - * [Regex](Regex.md) - * [ResourceType](ResourceType.md) - * [Roman](Roman.md) - * [ScalarVal](ScalarVal.md) - * [Sf](Sf.md) - * [Size](Size.md) - * [Slug](Slug.md) - * [Space](Space.md) - * [StartsWith](StartsWith.md) - * [StringType](StringType.md) - * [SubdivisionCode](SubdivisionCode.md) - * [SymbolicLink](SymbolicLink.md) - * [Tld](Tld.md) - * [TrueVal](TrueVal.md) - * [Type](Type.md) - * [Uploaded](Uploaded.md) - * [Uppercase](Uppercase.md) - * [Url](Url.md) - * [Version](Version.md) - * [VideoUrl](VideoUrl.md) - * [Vowel](Vowel.md) - * [When](When.md) - * [Writable](Writable.md) - * [Xdigit](Xdigit.md) - * [Yes](Yes.md) - * [Zend](Zend.md) - -*** -See also: - -- [Contributing](../CONTRIBUTING.md) -- [Feature Guide](README.md) -- [Installation](INSTALL.md) -- [License](../LICENSE.md) -- [Changelog](../CHANGELOG.md) diff --git a/docs/CONCRETE_API.md b/docs/concrete-api.md similarity index 100% rename from docs/CONCRETE_API.md rename to docs/concrete-api.md diff --git a/docs/README.md b/docs/feature-guide.md similarity index 97% rename from docs/README.md rename to docs/feature-guide.md index abd573aa..5d96e007 100644 --- a/docs/README.md +++ b/docs/feature-guide.md @@ -74,7 +74,7 @@ v::optional(v::alpha())->validate(null); // true By _optional_ we consider `null` or an empty string (`''`). -See more on [Optional](Optional.md). +See more on [Optional](rules/Optional.md). ## Negating rules @@ -299,12 +299,3 @@ Message: ```no-highlight "really messed up screen#name" must contain only letters (a-z) and digits (0-9) ``` - -*** -See also: - -- [Contributing](../CONTRIBUTING.md) -- [Installation](INSTALL.md) -- [License](../LICENSE.md) -- [Validators](VALIDATORS.md) -- [Changelog](../CHANGELOG.md) diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000..433d4337 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,16 @@ +# Overview + +[![Build Status](https://img.shields.io/travis/Respect/Validation/master.svg?style=flat-square)](http://travis-ci.org/Respect/Validation) +[![Scrutinizer Code Quality](https://img.shields.io/scrutinizer/g/Respect/Validation/master.svg?style=flat-square)](https://scrutinizer-ci.com/g/Respect/Validation/?branch=master) +[![Code Coverage](https://img.shields.io/scrutinizer/coverage/g/Respect/Validation/master.svg?style=flat-square)](https://scrutinizer-ci.com/g/Respect/Validation/?branch=master) +[![Latest Stable Version](https://img.shields.io/packagist/v/respect/validation.svg?style=flat-square)](https://packagist.org/packages/respect/validation) +[![Total Downloads](https://img.shields.io/packagist/dt/respect/validation.svg?style=flat-square)](https://packagist.org/packages/respect/validation) +[![License](https://img.shields.io/packagist/l/respect/validation.svg?style=flat-square)](https://packagist.org/packages/respect/validation) + +[The most awesome validation engine ever created for PHP.](http://bit.ly/1a1oeQv) + +- Complex rules made simple: `v::numeric()->positive()->between(1, 255)->validate($input)`. +- [Granularity control](feature-guide.md#validation-methods) for advanced reporting. +- More than 100 (fully tested) validators. +- [A concrete API](concrete-api.md) for non fluent usage. +- Works on PHP 5.4+ or HHVM 3.3+ diff --git a/docs/INSTALL.md b/docs/installation.md similarity index 67% rename from docs/INSTALL.md rename to docs/installation.md index 9cf5efb0..9c74c657 100644 --- a/docs/INSTALL.md +++ b/docs/installation.md @@ -8,11 +8,3 @@ composer require respect/validation ``` [PHP](https://php.net) 5.4+ or [HHVM](http://hhvm.com) 3.3+ are required. - -*** -See also: - -- [Contributing](../CONTRIBUTING.md) -- [Feature Guide](README.md) -- [License](../LICENSE.md) -- [Validators](VALIDATORS.md) diff --git a/docs/license.md b/docs/license.md new file mode 100644 index 00000000..ee76d0a3 --- /dev/null +++ b/docs/license.md @@ -0,0 +1,30 @@ +# License + +Copyright (c) 2009-2015, [Alexandre Gomes Gaigalas](http://github.com/alganet). + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of Alexandre Gomes Gaigalas nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/docs/list-of-rules.md b/docs/list-of-rules.md new file mode 100644 index 00000000..057be7bf --- /dev/null +++ b/docs/list-of-rules.md @@ -0,0 +1,329 @@ +# List of rules + +## Types + + * [ArrayVal](rules/ArrayVal.md) + * [ArrayType](rules/ArrayType.md) + * [BoolVal](rules/BoolVal.md) + * [BoolType](rules/BoolType.md) + * [CallableType](rules/CallableType.md) + * [Countable](rules/Countable.md) + * [Date](rules/Date.md) + * [FalseVal](rules/FalseVal.md) + * [FloatVal](rules/FloatVal.md) + * [FloatType](rules/FloatType.md) + * [Instance](rules/Instance.md) + * [IntVal](rules/IntVal.md) + * [IntType](rules/IntType.md) + * [IterableType](rules/IterableType.md) + * [NullType](rules/NullType.md) + * [Numeric](rules/Numeric.md) + * [ObjectType](rules/ObjectType.md) + * [ResourceType](rules/ResourceType.md) + * [ScalarVal](rules/ScalarVal.md) + * [StringType](rules/StringType.md) + * [TrueVal](rules/TrueVal.md) + * [Type](rules/Type.md) + * [Xdigit](rules/Xdigit.md) + +## Generics + + * [AlwaysInvalid](rules/AlwaysInvalid.md) + * [AlwaysValid](rules/AlwaysValid.md) + * [Call](rules/Call.md) + * [Callback](rules/Callback.md) + * [FilterVar](rules/FilterVar.md) + * [Not](rules/Not.md) + * [Optional](rules/Optional.md) + * [Type](rules/Type.md) + * [When](rules/When.md) + +## Comparing Values + + * [Age](rules/Age.md) + * [Between](rules/Between.md) + * [Equals](rules/Equals.md) + * [Identical](rules/Identical.md) + * [Max](rules/Max.md) + * [Min](rules/Min.md) + +## Numeric + + * [Between](rules/Between.md) + * [BoolType](rules/BoolType.md) + * [Even](rules/Even.md) + * [Factor](rules/Factor.md) + * [Fibonacci](rules/Fibonacci.md) + * [Finite](rules/Finite.md) + * [FloatVal](rules/FloatVal.md) + * [FloatType](rules/FloatType.md) + * [Infinite](rules/Infinite.md) + * [IntVal](rules/IntVal.md) + * [IntType](rules/IntType.md) + * [Multiple](rules/Multiple.md) + * [Negative](rules/Negative.md) + * [NotEmpty](rules/NotEmpty.md) + * [Numeric](rules/Numeric.md) + * [Odd](rules/Odd.md) + * [PerfectSquare](rules/PerfectSquare.md) + * [Positive](rules/Positive.md) + * [PrimeNumber](rules/PrimeNumber.md) + * [Roman](rules/Roman.md) + * [Xdigit](rules/Xdigit.md) + +## String + + * [Alnum](rules/Alnum.md) + * [Alpha](rules/Alpha.md) + * [Between](rules/Between.md) + * [Charset](rules/Charset.md) + * [Cntrl](rules/Cntrl.md) + * [Consonant](rules/Consonant.md) + * [Contains](rules/Contains.md) + * [Digit](rules/Digit.md) + * [EndsWith](rules/EndsWith.md) + * [Graph](rules/Graph.md) + * [In](rules/In.md) + * [Length](rules/Length.md) + * [Lowercase](rules/Lowercase.md) + * [NotEmpty](rules/NotEmpty.md) + * [NoWhitespace](rules/NoWhitespace.md) + * [PhpLabel](rules/PhpLabel.md) + * [Prnt](rules/Prnt.md) + * [Punct](rules/Punct.md) + * [Regex](rules/Regex.md) + * [ResourceType](rules/ResourceType.md) + * [Slug](rules/Slug.md) + * [Space](rules/Space.md) + * [StartsWith](rules/StartsWith.md) + * [Uppercase](rules/Uppercase.md) + * [Version](rules/Version.md) + * [Vowel](rules/Vowel.md) + * [Xdigit](rules/Xdigit.md) + +## Arrays + + * [ArrayVal](rules/ArrayVal.md) + * [ArrayType](rules/ArrayType.md) + * [Contains](rules/Contains.md) + * [Each](rules/Each.md) + * [EndsWith](rules/EndsWith.md) + * [In](rules/In.md) + * [Key](rules/Key.md) + * [KeyNested](rules/KeyNested.md) + * [KeySet](rules/KeySet.md) + * [KeyValue](rules/KeyValue.md) + * [Length](rules/Length.md) + * [NotEmpty](rules/NotEmpty.md) + * [StartsWith](rules/StartsWith.md) + +## Objects + + * [Attribute](rules/Attribute.md) + * [Instance](rules/Instance.md) + * [Length](rules/Length.md) + +## Date and Time + + * [Age](rules/Age.md) + * [Between](rules/Between.md) + * [Date](rules/Date.md) + * [LeapDate](rules/LeapDate.md) + * [LeapYear](rules/LeapYear.md) + * [MinimumAge](rules/MinimumAge.md) + +## Group Validators + + * [AllOf](rules/AllOf.md) + * [NoneOf](rules/NoneOf.md) + * [OneOf](rules/OneOf.md) + +## Regional + + * [CountryCode](rules/CountryCode.md) + * [CurrencyCode](rules/CurrencyCode.md) + * [IdentityCard](rules/IdentityCard.md) + * [LanguageCode](rules/LanguageCode.md) + * [PostalCode](rules/PostalCode.md) + * [SubdivisionCode](rules/SubdivisionCode.md) + * [Tld](rules/Tld.md) + +## Files + + * [Directory](rules/Directory.md) + * [Executable](rules/Executable.md) + * [Exists](rules/Exists.md) + * [Extension](rules/Extension.md) + * [File](rules/File.md) + * [Image](rules/Image.md) + * [Mimetype](rules/Mimetype.md) + * [Readable](rules/Readable.md) + * [Size](rules/Size.md) + * [SymbolicLink](rules/SymbolicLink.md) + * [Uploaded](rules/Uploaded.md) + * [Writable](rules/Writable.md) + +## Banking + + * [Bank](rules/Bank.md) + * [BankAccount](rules/BankAccount.md) + * [Bic](rules/Bic.md) + +## Other + + * [Bsn](rules/Bsn.md) + * [Cnh](rules/Cnh.md) + * [Cnpj](rules/Cnpj.md) + * [Cpf](rules/Cpf.md) + * [Domain](rules/Domain.md) + * [Email](rules/Email.md) + * [HexRgbColor](rules/HexRgbColor.md) + * [Imei](rules/Imei.md) + * [Ip](rules/Ip.md) + * [Json](rules/Json.md) + * [MacAddress](rules/MacAddress.md) + * [NfeAccessKey](rules/NfeAccessKey.md) + * [NotBlank](rules/NotBlank.md) + * [NotOptional](rules/NotOptional.md) + * [Pesel](rules/Pesel.md) + * [Phone](rules/Phone.md) + * [Sf](rules/Sf.md) + * [Url](rules/Url.md) + * [VideoUrl](rules/VideoUrl.md) + * [Zend](rules/Zend.md) + +## Yes/No + + * [No](rules/No.md) + * [Yes](rules/Yes.md) + +## Alphabetically + + * [Age](rules/Age.md) + * [AllOf](rules/AllOf.md) + * [Alnum](rules/Alnum.md) + * [Alpha](rules/Alpha.md) + * [AlwaysInvalid](rules/AlwaysInvalid.md) + * [AlwaysValid](rules/AlwaysValid.md) + * [ArrayVal](rules/ArrayVal.md) + * [ArrayType](rules/ArrayType.md) + * [Attribute](rules/Attribute.md) + * [Bank](rules/Bank.md) + * [BankAccount](rules/BankAccount.md) + * [Between](rules/Between.md) + * [Bic](rules/Bic.md) + * [BoolType](rules/BoolType.md) + * [Bsn](rules/Bsn.md) + * [Call](rules/Call.md) + * [CallableType](rules/CallableType.md) + * [Callback](rules/Callback.md) + * [Charset](rules/Charset.md) + * [Cnh](rules/Cnh.md) + * [Cnpj](rules/Cnpj.md) + * [Cntrl](rules/Cntrl.md) + * [Consonant](rules/Consonant.md) + * [Contains](rules/Contains.md) + * [Countable](rules/Countable.md) + * [CountryCode](rules/CountryCode.md) + * [Cpf](rules/Cpf.md) + * [CreditCard](rules/CreditCard.md) + * [Date](rules/Date.md) + * [Digit](rules/Digit.md) + * [Directory](rules/Directory.md) + * [Domain](rules/Domain.md) + * [Each](rules/Each.md) + * [Email](rules/Email.md) + * [EndsWith](rules/EndsWith.md) + * [Equals](rules/Equals.md) + * [Even](rules/Even.md) + * [Executable](rules/Executable.md) + * [Exists](rules/Exists.md) + * [Extension](rules/Extension.md) + * [Factor](rules/Factor.md) + * [FalseVal](rules/FalseVal.md) + * [Fibonacci](rules/Fibonacci.md) + * [File](rules/File.md) + * [FilterVar](rules/FilterVar.md) + * [Finite](rules/Finite.md) + * [FloatVal](rules/FloatVal.md) + * [FloatType](rules/FloatType.md) + * [Graph](rules/Graph.md) + * [HexRgbColor](rules/HexRgbColor.md) + * [Identical](rules/Identical.md) + * [IdentityCard](rules/IdentityCard.md) + * [Image](rules/Image.md) + * [Imei](rules/Imei.md) + * [In](rules/In.md) + * [Infinite](rules/Infinite.md) + * [Instance](rules/Instance.md) + * [IntVal](rules/IntVal.md) + * [IntType](rules/IntType.md) + * [Ip](rules/Ip.md) + * [IterableType](rules/IterableType.md) + * [Json](rules/Json.md) + * [Key](rules/Key.md) + * [KeyNested](rules/KeyNested.md) + * [KeySet](rules/KeySet.md) + * [KeyValue](rules/KeyValue.md) + * [LanguageCode](rules/LanguageCode.md) + * [LeapDate](rules/LeapDate.md) + * [LeapYear](rules/LeapYear.md) + * [Length](rules/Length.md) + * [Lowercase](rules/Lowercase.md) + * [MacAddress](rules/MacAddress.md) + * [Max](rules/Max.md) + * [Mimetype](rules/Mimetype.md) + * [Min](rules/Min.md) + * [MinimumAge](rules/MinimumAge.md) + * [Multiple](rules/Multiple.md) + * [Negative](rules/Negative.md) + * [NfeAccessKey](rules/NfeAccessKey.md) + * [No](rules/No.md) + * [NoWhitespace](rules/NoWhitespace.md) + * [NoneOf](rules/NoneOf.md) + * [Not](rules/Not.md) + * [NotBlank](rules/NotBlank.md) + * [NotEmpty](rules/NotEmpty.md) + * [NotOptional](rules/NotOptional.md) + * [NullType](rules/NullType.md) + * [Numeric](rules/Numeric.md) + * [ObjectType](rules/ObjectType.md) + * [Odd](rules/Odd.md) + * [OneOf](rules/OneOf.md) + * [Optional](rules/Optional.md) + * [PerfectSquare](rules/PerfectSquare.md) + * [Pesel](rules/Pesel.md) + * [Phone](rules/Phone.md) + * [PhpLabel](rules/PhpLabel.md) + * [Positive](rules/Positive.md) + * [PostalCode](rules/PostalCode.md) + * [PrimeNumber](rules/PrimeNumber.md) + * [Prnt](rules/Prnt.md) + * [Punct](rules/Punct.md) + * [Readable](rules/Readable.md) + * [Regex](rules/Regex.md) + * [ResourceType](rules/ResourceType.md) + * [Roman](rules/Roman.md) + * [ScalarVal](rules/ScalarVal.md) + * [Sf](rules/Sf.md) + * [Size](rules/Size.md) + * [Slug](rules/Slug.md) + * [Space](rules/Space.md) + * [StartsWith](rules/StartsWith.md) + * [StringType](rules/StringType.md) + * [SubdivisionCode](rules/SubdivisionCode.md) + * [SymbolicLink](rules/SymbolicLink.md) + * [Tld](rules/Tld.md) + * [TrueVal](rules/TrueVal.md) + * [Type](rules/Type.md) + * [Uploaded](rules/Uploaded.md) + * [Uppercase](rules/Uppercase.md) + * [Url](rules/Url.md) + * [Version](rules/Version.md) + * [VideoUrl](rules/VideoUrl.md) + * [Vowel](rules/Vowel.md) + * [When](rules/When.md) + * [Writable](rules/Writable.md) + * [Xdigit](rules/Xdigit.md) + * [Yes](rules/Yes.md) + * [Zend](rules/Zend.md) diff --git a/docs/Age.md b/docs/rules/Age.md similarity index 100% rename from docs/Age.md rename to docs/rules/Age.md diff --git a/docs/AllOf.md b/docs/rules/AllOf.md similarity index 100% rename from docs/AllOf.md rename to docs/rules/AllOf.md diff --git a/docs/Alnum.md b/docs/rules/Alnum.md similarity index 100% rename from docs/Alnum.md rename to docs/rules/Alnum.md diff --git a/docs/Alpha.md b/docs/rules/Alpha.md similarity index 100% rename from docs/Alpha.md rename to docs/rules/Alpha.md diff --git a/docs/AlwaysInvalid.md b/docs/rules/AlwaysInvalid.md similarity index 100% rename from docs/AlwaysInvalid.md rename to docs/rules/AlwaysInvalid.md diff --git a/docs/AlwaysValid.md b/docs/rules/AlwaysValid.md similarity index 100% rename from docs/AlwaysValid.md rename to docs/rules/AlwaysValid.md diff --git a/docs/ArrayType.md b/docs/rules/ArrayType.md similarity index 100% rename from docs/ArrayType.md rename to docs/rules/ArrayType.md diff --git a/docs/ArrayVal.md b/docs/rules/ArrayVal.md similarity index 100% rename from docs/ArrayVal.md rename to docs/rules/ArrayVal.md diff --git a/docs/Attribute.md b/docs/rules/Attribute.md similarity index 100% rename from docs/Attribute.md rename to docs/rules/Attribute.md diff --git a/docs/Bank.md b/docs/rules/Bank.md similarity index 100% rename from docs/Bank.md rename to docs/rules/Bank.md diff --git a/docs/BankAccount.md b/docs/rules/BankAccount.md similarity index 100% rename from docs/BankAccount.md rename to docs/rules/BankAccount.md diff --git a/docs/Between.md b/docs/rules/Between.md similarity index 100% rename from docs/Between.md rename to docs/rules/Between.md diff --git a/docs/Bic.md b/docs/rules/Bic.md similarity index 100% rename from docs/Bic.md rename to docs/rules/Bic.md diff --git a/docs/BoolType.md b/docs/rules/BoolType.md similarity index 100% rename from docs/BoolType.md rename to docs/rules/BoolType.md diff --git a/docs/BoolVal.md b/docs/rules/BoolVal.md similarity index 100% rename from docs/BoolVal.md rename to docs/rules/BoolVal.md diff --git a/docs/Bsn.md b/docs/rules/Bsn.md similarity index 100% rename from docs/Bsn.md rename to docs/rules/Bsn.md diff --git a/docs/Call.md b/docs/rules/Call.md similarity index 100% rename from docs/Call.md rename to docs/rules/Call.md diff --git a/docs/CallableType.md b/docs/rules/CallableType.md similarity index 100% rename from docs/CallableType.md rename to docs/rules/CallableType.md diff --git a/docs/Callback.md b/docs/rules/Callback.md similarity index 100% rename from docs/Callback.md rename to docs/rules/Callback.md diff --git a/docs/Charset.md b/docs/rules/Charset.md similarity index 100% rename from docs/Charset.md rename to docs/rules/Charset.md diff --git a/docs/Cnh.md b/docs/rules/Cnh.md similarity index 100% rename from docs/Cnh.md rename to docs/rules/Cnh.md diff --git a/docs/Cnpj.md b/docs/rules/Cnpj.md similarity index 100% rename from docs/Cnpj.md rename to docs/rules/Cnpj.md diff --git a/docs/Cntrl.md b/docs/rules/Cntrl.md similarity index 100% rename from docs/Cntrl.md rename to docs/rules/Cntrl.md diff --git a/docs/Consonant.md b/docs/rules/Consonant.md similarity index 100% rename from docs/Consonant.md rename to docs/rules/Consonant.md diff --git a/docs/Contains.md b/docs/rules/Contains.md similarity index 100% rename from docs/Contains.md rename to docs/rules/Contains.md diff --git a/docs/Countable.md b/docs/rules/Countable.md similarity index 100% rename from docs/Countable.md rename to docs/rules/Countable.md diff --git a/docs/CountryCode.md b/docs/rules/CountryCode.md similarity index 100% rename from docs/CountryCode.md rename to docs/rules/CountryCode.md diff --git a/docs/Cpf.md b/docs/rules/Cpf.md similarity index 100% rename from docs/Cpf.md rename to docs/rules/Cpf.md diff --git a/docs/CreditCard.md b/docs/rules/CreditCard.md similarity index 100% rename from docs/CreditCard.md rename to docs/rules/CreditCard.md diff --git a/docs/CurrencyCode.md b/docs/rules/CurrencyCode.md similarity index 100% rename from docs/CurrencyCode.md rename to docs/rules/CurrencyCode.md diff --git a/docs/Date.md b/docs/rules/Date.md similarity index 100% rename from docs/Date.md rename to docs/rules/Date.md diff --git a/docs/Digit.md b/docs/rules/Digit.md similarity index 100% rename from docs/Digit.md rename to docs/rules/Digit.md diff --git a/docs/Directory.md b/docs/rules/Directory.md similarity index 100% rename from docs/Directory.md rename to docs/rules/Directory.md diff --git a/docs/Domain.md b/docs/rules/Domain.md similarity index 100% rename from docs/Domain.md rename to docs/rules/Domain.md diff --git a/docs/Each.md b/docs/rules/Each.md similarity index 100% rename from docs/Each.md rename to docs/rules/Each.md diff --git a/docs/Email.md b/docs/rules/Email.md similarity index 100% rename from docs/Email.md rename to docs/rules/Email.md diff --git a/docs/EndsWith.md b/docs/rules/EndsWith.md similarity index 100% rename from docs/EndsWith.md rename to docs/rules/EndsWith.md diff --git a/docs/Equals.md b/docs/rules/Equals.md similarity index 100% rename from docs/Equals.md rename to docs/rules/Equals.md diff --git a/docs/Even.md b/docs/rules/Even.md similarity index 100% rename from docs/Even.md rename to docs/rules/Even.md diff --git a/docs/Executable.md b/docs/rules/Executable.md similarity index 100% rename from docs/Executable.md rename to docs/rules/Executable.md diff --git a/docs/Exists.md b/docs/rules/Exists.md similarity index 100% rename from docs/Exists.md rename to docs/rules/Exists.md diff --git a/docs/Extension.md b/docs/rules/Extension.md similarity index 100% rename from docs/Extension.md rename to docs/rules/Extension.md diff --git a/docs/Factor.md b/docs/rules/Factor.md similarity index 100% rename from docs/Factor.md rename to docs/rules/Factor.md diff --git a/docs/FalseVal.md b/docs/rules/FalseVal.md similarity index 100% rename from docs/FalseVal.md rename to docs/rules/FalseVal.md diff --git a/docs/Fibonacci.md b/docs/rules/Fibonacci.md similarity index 100% rename from docs/Fibonacci.md rename to docs/rules/Fibonacci.md diff --git a/docs/File.md b/docs/rules/File.md similarity index 100% rename from docs/File.md rename to docs/rules/File.md diff --git a/docs/FilterVar.md b/docs/rules/FilterVar.md similarity index 100% rename from docs/FilterVar.md rename to docs/rules/FilterVar.md diff --git a/docs/Finite.md b/docs/rules/Finite.md similarity index 100% rename from docs/Finite.md rename to docs/rules/Finite.md diff --git a/docs/FloatType.md b/docs/rules/FloatType.md similarity index 100% rename from docs/FloatType.md rename to docs/rules/FloatType.md diff --git a/docs/FloatVal.md b/docs/rules/FloatVal.md similarity index 100% rename from docs/FloatVal.md rename to docs/rules/FloatVal.md diff --git a/docs/Graph.md b/docs/rules/Graph.md similarity index 100% rename from docs/Graph.md rename to docs/rules/Graph.md diff --git a/docs/HexRgbColor.md b/docs/rules/HexRgbColor.md similarity index 100% rename from docs/HexRgbColor.md rename to docs/rules/HexRgbColor.md diff --git a/docs/Identical.md b/docs/rules/Identical.md similarity index 100% rename from docs/Identical.md rename to docs/rules/Identical.md diff --git a/docs/IdentityCard.md b/docs/rules/IdentityCard.md similarity index 100% rename from docs/IdentityCard.md rename to docs/rules/IdentityCard.md diff --git a/docs/Image.md b/docs/rules/Image.md similarity index 100% rename from docs/Image.md rename to docs/rules/Image.md diff --git a/docs/Imei.md b/docs/rules/Imei.md similarity index 100% rename from docs/Imei.md rename to docs/rules/Imei.md diff --git a/docs/In.md b/docs/rules/In.md similarity index 100% rename from docs/In.md rename to docs/rules/In.md diff --git a/docs/Infinite.md b/docs/rules/Infinite.md similarity index 100% rename from docs/Infinite.md rename to docs/rules/Infinite.md diff --git a/docs/Instance.md b/docs/rules/Instance.md similarity index 100% rename from docs/Instance.md rename to docs/rules/Instance.md diff --git a/docs/IntType.md b/docs/rules/IntType.md similarity index 100% rename from docs/IntType.md rename to docs/rules/IntType.md diff --git a/docs/IntVal.md b/docs/rules/IntVal.md similarity index 100% rename from docs/IntVal.md rename to docs/rules/IntVal.md diff --git a/docs/Ip.md b/docs/rules/Ip.md similarity index 100% rename from docs/Ip.md rename to docs/rules/Ip.md diff --git a/docs/Iterable.md b/docs/rules/Iterable.md similarity index 100% rename from docs/Iterable.md rename to docs/rules/Iterable.md diff --git a/docs/IterableType.md b/docs/rules/IterableType.md similarity index 100% rename from docs/IterableType.md rename to docs/rules/IterableType.md diff --git a/docs/Json.md b/docs/rules/Json.md similarity index 100% rename from docs/Json.md rename to docs/rules/Json.md diff --git a/docs/Key.md b/docs/rules/Key.md similarity index 100% rename from docs/Key.md rename to docs/rules/Key.md diff --git a/docs/KeyNested.md b/docs/rules/KeyNested.md similarity index 100% rename from docs/KeyNested.md rename to docs/rules/KeyNested.md diff --git a/docs/KeySet.md b/docs/rules/KeySet.md similarity index 100% rename from docs/KeySet.md rename to docs/rules/KeySet.md diff --git a/docs/KeyValue.md b/docs/rules/KeyValue.md similarity index 100% rename from docs/KeyValue.md rename to docs/rules/KeyValue.md diff --git a/docs/LanguageCode.md b/docs/rules/LanguageCode.md similarity index 100% rename from docs/LanguageCode.md rename to docs/rules/LanguageCode.md diff --git a/docs/LeapDate.md b/docs/rules/LeapDate.md similarity index 100% rename from docs/LeapDate.md rename to docs/rules/LeapDate.md diff --git a/docs/LeapYear.md b/docs/rules/LeapYear.md similarity index 100% rename from docs/LeapYear.md rename to docs/rules/LeapYear.md diff --git a/docs/Length.md b/docs/rules/Length.md similarity index 100% rename from docs/Length.md rename to docs/rules/Length.md diff --git a/docs/Lowercase.md b/docs/rules/Lowercase.md similarity index 100% rename from docs/Lowercase.md rename to docs/rules/Lowercase.md diff --git a/docs/MacAddress.md b/docs/rules/MacAddress.md similarity index 100% rename from docs/MacAddress.md rename to docs/rules/MacAddress.md diff --git a/docs/Max.md b/docs/rules/Max.md similarity index 100% rename from docs/Max.md rename to docs/rules/Max.md diff --git a/docs/Mimetype.md b/docs/rules/Mimetype.md similarity index 100% rename from docs/Mimetype.md rename to docs/rules/Mimetype.md diff --git a/docs/Min.md b/docs/rules/Min.md similarity index 100% rename from docs/Min.md rename to docs/rules/Min.md diff --git a/docs/MinimumAge.md b/docs/rules/MinimumAge.md similarity index 100% rename from docs/MinimumAge.md rename to docs/rules/MinimumAge.md diff --git a/docs/Multiple.md b/docs/rules/Multiple.md similarity index 100% rename from docs/Multiple.md rename to docs/rules/Multiple.md diff --git a/docs/Negative.md b/docs/rules/Negative.md similarity index 100% rename from docs/Negative.md rename to docs/rules/Negative.md diff --git a/docs/NfeAccessKey.md b/docs/rules/NfeAccessKey.md similarity index 100% rename from docs/NfeAccessKey.md rename to docs/rules/NfeAccessKey.md diff --git a/docs/No.md b/docs/rules/No.md similarity index 100% rename from docs/No.md rename to docs/rules/No.md diff --git a/docs/NoWhitespace.md b/docs/rules/NoWhitespace.md similarity index 100% rename from docs/NoWhitespace.md rename to docs/rules/NoWhitespace.md diff --git a/docs/NoneOf.md b/docs/rules/NoneOf.md similarity index 100% rename from docs/NoneOf.md rename to docs/rules/NoneOf.md diff --git a/docs/Not.md b/docs/rules/Not.md similarity index 100% rename from docs/Not.md rename to docs/rules/Not.md diff --git a/docs/NotBlank.md b/docs/rules/NotBlank.md similarity index 100% rename from docs/NotBlank.md rename to docs/rules/NotBlank.md diff --git a/docs/NotEmpty.md b/docs/rules/NotEmpty.md similarity index 100% rename from docs/NotEmpty.md rename to docs/rules/NotEmpty.md diff --git a/docs/NotOptional.md b/docs/rules/NotOptional.md similarity index 100% rename from docs/NotOptional.md rename to docs/rules/NotOptional.md diff --git a/docs/NullType.md b/docs/rules/NullType.md similarity index 100% rename from docs/NullType.md rename to docs/rules/NullType.md diff --git a/docs/Numeric.md b/docs/rules/Numeric.md similarity index 100% rename from docs/Numeric.md rename to docs/rules/Numeric.md diff --git a/docs/ObjectType.md b/docs/rules/ObjectType.md similarity index 100% rename from docs/ObjectType.md rename to docs/rules/ObjectType.md diff --git a/docs/Odd.md b/docs/rules/Odd.md similarity index 100% rename from docs/Odd.md rename to docs/rules/Odd.md diff --git a/docs/OneOf.md b/docs/rules/OneOf.md similarity index 100% rename from docs/OneOf.md rename to docs/rules/OneOf.md diff --git a/docs/Optional.md b/docs/rules/Optional.md similarity index 100% rename from docs/Optional.md rename to docs/rules/Optional.md diff --git a/docs/PerfectSquare.md b/docs/rules/PerfectSquare.md similarity index 100% rename from docs/PerfectSquare.md rename to docs/rules/PerfectSquare.md diff --git a/docs/Pesel.md b/docs/rules/Pesel.md similarity index 100% rename from docs/Pesel.md rename to docs/rules/Pesel.md diff --git a/docs/Phone.md b/docs/rules/Phone.md similarity index 100% rename from docs/Phone.md rename to docs/rules/Phone.md diff --git a/docs/PhpLabel.md b/docs/rules/PhpLabel.md similarity index 100% rename from docs/PhpLabel.md rename to docs/rules/PhpLabel.md diff --git a/docs/Positive.md b/docs/rules/Positive.md similarity index 100% rename from docs/Positive.md rename to docs/rules/Positive.md diff --git a/docs/PostalCode.md b/docs/rules/PostalCode.md similarity index 100% rename from docs/PostalCode.md rename to docs/rules/PostalCode.md diff --git a/docs/PrimeNumber.md b/docs/rules/PrimeNumber.md similarity index 100% rename from docs/PrimeNumber.md rename to docs/rules/PrimeNumber.md diff --git a/docs/Prnt.md b/docs/rules/Prnt.md similarity index 100% rename from docs/Prnt.md rename to docs/rules/Prnt.md diff --git a/docs/Punct.md b/docs/rules/Punct.md similarity index 100% rename from docs/Punct.md rename to docs/rules/Punct.md diff --git a/docs/Readable.md b/docs/rules/Readable.md similarity index 100% rename from docs/Readable.md rename to docs/rules/Readable.md diff --git a/docs/Regex.md b/docs/rules/Regex.md similarity index 100% rename from docs/Regex.md rename to docs/rules/Regex.md diff --git a/docs/ResourceType.md b/docs/rules/ResourceType.md similarity index 100% rename from docs/ResourceType.md rename to docs/rules/ResourceType.md diff --git a/docs/Roman.md b/docs/rules/Roman.md similarity index 100% rename from docs/Roman.md rename to docs/rules/Roman.md diff --git a/docs/ScalarVal.md b/docs/rules/ScalarVal.md similarity index 100% rename from docs/ScalarVal.md rename to docs/rules/ScalarVal.md diff --git a/docs/Sf.md b/docs/rules/Sf.md similarity index 100% rename from docs/Sf.md rename to docs/rules/Sf.md diff --git a/docs/Size.md b/docs/rules/Size.md similarity index 100% rename from docs/Size.md rename to docs/rules/Size.md diff --git a/docs/Slug.md b/docs/rules/Slug.md similarity index 100% rename from docs/Slug.md rename to docs/rules/Slug.md diff --git a/docs/Space.md b/docs/rules/Space.md similarity index 100% rename from docs/Space.md rename to docs/rules/Space.md diff --git a/docs/StartsWith.md b/docs/rules/StartsWith.md similarity index 100% rename from docs/StartsWith.md rename to docs/rules/StartsWith.md diff --git a/docs/StringType.md b/docs/rules/StringType.md similarity index 100% rename from docs/StringType.md rename to docs/rules/StringType.md diff --git a/docs/SubdivisionCode.md b/docs/rules/SubdivisionCode.md similarity index 100% rename from docs/SubdivisionCode.md rename to docs/rules/SubdivisionCode.md diff --git a/docs/SymbolicLink.md b/docs/rules/SymbolicLink.md similarity index 100% rename from docs/SymbolicLink.md rename to docs/rules/SymbolicLink.md diff --git a/docs/Tld.md b/docs/rules/Tld.md similarity index 100% rename from docs/Tld.md rename to docs/rules/Tld.md diff --git a/docs/TrueVal.md b/docs/rules/TrueVal.md similarity index 100% rename from docs/TrueVal.md rename to docs/rules/TrueVal.md diff --git a/docs/Type.md b/docs/rules/Type.md similarity index 100% rename from docs/Type.md rename to docs/rules/Type.md diff --git a/docs/Uploaded.md b/docs/rules/Uploaded.md similarity index 100% rename from docs/Uploaded.md rename to docs/rules/Uploaded.md diff --git a/docs/Uppercase.md b/docs/rules/Uppercase.md similarity index 100% rename from docs/Uppercase.md rename to docs/rules/Uppercase.md diff --git a/docs/Url.md b/docs/rules/Url.md similarity index 100% rename from docs/Url.md rename to docs/rules/Url.md diff --git a/docs/Version.md b/docs/rules/Version.md similarity index 100% rename from docs/Version.md rename to docs/rules/Version.md diff --git a/docs/VideoUrl.md b/docs/rules/VideoUrl.md similarity index 100% rename from docs/VideoUrl.md rename to docs/rules/VideoUrl.md diff --git a/docs/Vowel.md b/docs/rules/Vowel.md similarity index 100% rename from docs/Vowel.md rename to docs/rules/Vowel.md diff --git a/docs/When.md b/docs/rules/When.md similarity index 100% rename from docs/When.md rename to docs/rules/When.md diff --git a/docs/Writable.md b/docs/rules/Writable.md similarity index 100% rename from docs/Writable.md rename to docs/rules/Writable.md diff --git a/docs/Xdigit.md b/docs/rules/Xdigit.md similarity index 100% rename from docs/Xdigit.md rename to docs/rules/Xdigit.md diff --git a/docs/Yes.md b/docs/rules/Yes.md similarity index 100% rename from docs/Yes.md rename to docs/rules/Yes.md diff --git a/docs/Zend.md b/docs/rules/Zend.md similarity index 100% rename from docs/Zend.md rename to docs/rules/Zend.md