livr 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.travis.yml +6 -0
- data/Gemfile +2 -0
- data/README.md +240 -0
- data/Rakefile +9 -0
- data/lib/LIVR.rb +221 -0
- data/lib/LIVR/Rules/Common.rb +21 -0
- data/lib/LIVR/Rules/Filters.rb +43 -0
- data/lib/LIVR/Rules/Helpers.rb +126 -0
- data/lib/LIVR/Rules/Numerics.rb +63 -0
- data/lib/LIVR/Rules/Special.rb +55 -0
- data/lib/LIVR/Rules/Strings.rb +71 -0
- data/lib/LIVR/Util.rb +6 -0
- data/livr.gemspec +29 -0
- data/test/01-test_suite.rb +77 -0
- data/test/02-test_auto_trim.rb +55 -0
- data/test/03-test_rules_registration.rb +63 -0
- data/test/04-test_custom_filters.rb +44 -0
- data/test/test_helper.rb +6 -0
- data/test/test_suite/aliases_negative/01-adult_age/aliases.json +12 -0
- data/test/test_suite/aliases_negative/01-adult_age/errors.json +6 -0
- data/test/test_suite/aliases_negative/01-adult_age/input.json +11 -0
- data/test/test_suite/aliases_negative/01-adult_age/rules.json +10 -0
- data/test/test_suite/aliases_negative/02-address/aliases.json +20 -0
- data/test/test_suite/aliases_negative/02-address/errors.json +8 -0
- data/test/test_suite/aliases_negative/02-address/input.json +13 -0
- data/test/test_suite/aliases_negative/02-address/rules.json +4 -0
- data/test/test_suite/aliases_negative/03-adult_age_in_user/aliases.json +31 -0
- data/test/test_suite/aliases_negative/03-adult_age_in_user/errors.json +8 -0
- data/test/test_suite/aliases_negative/03-adult_age_in_user/input.json +14 -0
- data/test/test_suite/aliases_negative/03-adult_age_in_user/rules.json +4 -0
- data/test/test_suite/aliases_positive/01-adult_age/aliases.json +12 -0
- data/test/test_suite/aliases_positive/01-adult_age/input.json +11 -0
- data/test/test_suite/aliases_positive/01-adult_age/output.json +10 -0
- data/test/test_suite/aliases_positive/01-adult_age/rules.json +10 -0
- data/test/test_suite/aliases_positive/02-address/aliases.json +20 -0
- data/test/test_suite/aliases_positive/02-address/input.json +13 -0
- data/test/test_suite/aliases_positive/02-address/output.json +12 -0
- data/test/test_suite/aliases_positive/02-address/rules.json +4 -0
- data/test/test_suite/aliases_positive/03-adult_age_in_user/aliases.json +31 -0
- data/test/test_suite/aliases_positive/03-adult_age_in_user/input.json +14 -0
- data/test/test_suite/aliases_positive/03-adult_age_in_user/output.json +12 -0
- data/test/test_suite/aliases_positive/03-adult_age_in_user/rules.json +4 -0
- data/test/test_suite/negative/01-required/errors.json +5 -0
- data/test/test_suite/negative/01-required/input.json +10 -0
- data/test/test_suite/negative/01-required/rules.json +10 -0
- data/test/test_suite/negative/02-not_empty/errors.json +3 -0
- data/test/test_suite/negative/02-not_empty/input.json +10 -0
- data/test/test_suite/negative/02-not_empty/rules.json +10 -0
- data/test/test_suite/negative/03-one_of/errors.json +10 -0
- data/test/test_suite/negative/03-one_of/input.json +11 -0
- data/test/test_suite/negative/03-one_of/rules.json +10 -0
- data/test/test_suite/negative/04-min_length/errors.json +10 -0
- data/test/test_suite/negative/04-min_length/input.json +12 -0
- data/test/test_suite/negative/04-min_length/rules.json +11 -0
- data/test/test_suite/negative/05-max_length/errors.json +10 -0
- data/test/test_suite/negative/05-max_length/input.json +12 -0
- data/test/test_suite/negative/05-max_length/rules.json +11 -0
- data/test/test_suite/negative/06-length_equal/errors.json +10 -0
- data/test/test_suite/negative/06-length_equal/input.json +12 -0
- data/test/test_suite/negative/06-length_equal/rules.json +11 -0
- data/test/test_suite/negative/07-length_between/errors.json +10 -0
- data/test/test_suite/negative/07-length_between/input.json +12 -0
- data/test/test_suite/negative/07-length_between/rules.json +11 -0
- data/test/test_suite/negative/08-like/errors.json +11 -0
- data/test/test_suite/negative/08-like/input.json +14 -0
- data/test/test_suite/negative/08-like/rules.json +12 -0
- data/test/test_suite/negative/09-integer/errors.json +10 -0
- data/test/test_suite/negative/09-integer/input.json +12 -0
- data/test/test_suite/negative/09-integer/rules.json +11 -0
- data/test/test_suite/negative/10-positive_integer/errors.json +10 -0
- data/test/test_suite/negative/10-positive_integer/input.json +12 -0
- data/test/test_suite/negative/10-positive_integer/rules.json +11 -0
- data/test/test_suite/negative/11-decimal/errors.json +10 -0
- data/test/test_suite/negative/11-decimal/input.json +12 -0
- data/test/test_suite/negative/11-decimal/rules.json +11 -0
- data/test/test_suite/negative/12-positive_decimal/errors.json +10 -0
- data/test/test_suite/negative/12-positive_decimal/input.json +12 -0
- data/test/test_suite/negative/12-positive_decimal/rules.json +11 -0
- data/test/test_suite/negative/13-max_number/errors.json +9 -0
- data/test/test_suite/negative/13-max_number/input.json +11 -0
- data/test/test_suite/negative/13-max_number/rules.json +10 -0
- data/test/test_suite/negative/14-min_number/errors.json +9 -0
- data/test/test_suite/negative/14-min_number/input.json +11 -0
- data/test/test_suite/negative/14-min_number/rules.json +10 -0
- data/test/test_suite/negative/15-number_beetween/errors.json +9 -0
- data/test/test_suite/negative/15-number_beetween/input.json +11 -0
- data/test/test_suite/negative/15-number_beetween/rules.json +10 -0
- data/test/test_suite/negative/16-email/errors.json +12 -0
- data/test/test_suite/negative/16-email/input.json +14 -0
- data/test/test_suite/negative/16-email/rules.json +13 -0
- data/test/test_suite/negative/17-equal_to_field/errors.json +10 -0
- data/test/test_suite/negative/17-equal_to_field/input.json +12 -0
- data/test/test_suite/negative/17-equal_to_field/rules.json +11 -0
- data/test/test_suite/negative/18-nested_object/errors.json +9 -0
- data/test/test_suite/negative/18-nested_object/input.json +9 -0
- data/test/test_suite/negative/18-nested_object/rules.json +9 -0
- data/test/test_suite/negative/19-list_of/errors.json +6 -0
- data/test/test_suite/negative/19-list_of/input.json +6 -0
- data/test/test_suite/negative/19-list_of/rules.json +14 -0
- data/test/test_suite/negative/20-list_of_objects/errors.json +14 -0
- data/test/test_suite/negative/20-list_of_objects/input.json +18 -0
- data/test/test_suite/negative/20-list_of_objects/rules.json +7 -0
- data/test/test_suite/negative/21-list_of_different_objects/errors.json +17 -0
- data/test/test_suite/negative/21-list_of_different_objects/input.json +26 -0
- data/test/test_suite/negative/21-list_of_different_objects/rules.json +17 -0
- data/test/test_suite/negative/22-not_empty_list/errors.json +7 -0
- data/test/test_suite/negative/22-not_empty_list/input.json +6 -0
- data/test/test_suite/negative/22-not_empty_list/rules.json +7 -0
- data/test/test_suite/negative/23-url/errors.json +10 -0
- data/test/test_suite/negative/23-url/input.json +12 -0
- data/test/test_suite/negative/23-url/rules.json +11 -0
- data/test/test_suite/negative/24-iso_date/errors.json +10 -0
- data/test/test_suite/negative/24-iso_date/input.json +12 -0
- data/test/test_suite/negative/24-iso_date/rules.json +11 -0
- data/test/test_suite/positive/01-required/input.json +7 -0
- data/test/test_suite/positive/01-required/output.json +6 -0
- data/test/test_suite/positive/01-required/rules.json +6 -0
- data/test/test_suite/positive/02-not_empty/input.json +6 -0
- data/test/test_suite/positive/02-not_empty/output.json +5 -0
- data/test/test_suite/positive/02-not_empty/rules.json +6 -0
- data/test/test_suite/positive/03-one_of/input.json +7 -0
- data/test/test_suite/positive/03-one_of/output.json +6 -0
- data/test/test_suite/positive/03-one_of/rules.json +6 -0
- data/test/test_suite/positive/04-min_length/input.json +7 -0
- data/test/test_suite/positive/04-min_length/output.json +6 -0
- data/test/test_suite/positive/04-min_length/rules.json +6 -0
- data/test/test_suite/positive/05-max_length/input.json +7 -0
- data/test/test_suite/positive/05-max_length/output.json +6 -0
- data/test/test_suite/positive/05-max_length/rules.json +6 -0
- data/test/test_suite/positive/06-length_equal/input.json +7 -0
- data/test/test_suite/positive/06-length_equal/output.json +6 -0
- data/test/test_suite/positive/06-length_equal/rules.json +6 -0
- data/test/test_suite/positive/07-length_between/input.json +7 -0
- data/test/test_suite/positive/07-length_between/output.json +6 -0
- data/test/test_suite/positive/07-length_between/rules.json +6 -0
- data/test/test_suite/positive/08-like/input.json +8 -0
- data/test/test_suite/positive/08-like/output.json +7 -0
- data/test/test_suite/positive/08-like/rules.json +7 -0
- data/test/test_suite/positive/09-integer/input.json +7 -0
- data/test/test_suite/positive/09-integer/output.json +6 -0
- data/test/test_suite/positive/09-integer/rules.json +6 -0
- data/test/test_suite/positive/10-positive_integer/input.json +7 -0
- data/test/test_suite/positive/10-positive_integer/output.json +6 -0
- data/test/test_suite/positive/10-positive_integer/rules.json +6 -0
- data/test/test_suite/positive/11-decimal/input.json +7 -0
- data/test/test_suite/positive/11-decimal/output.json +6 -0
- data/test/test_suite/positive/11-decimal/rules.json +6 -0
- data/test/test_suite/positive/12-positive_decimal/input.json +8 -0
- data/test/test_suite/positive/12-positive_decimal/output.json +7 -0
- data/test/test_suite/positive/12-positive_decimal/rules.json +7 -0
- data/test/test_suite/positive/13-max_number/input.json +7 -0
- data/test/test_suite/positive/13-max_number/output.json +6 -0
- data/test/test_suite/positive/13-max_number/rules.json +6 -0
- data/test/test_suite/positive/14-min_number/input.json +7 -0
- data/test/test_suite/positive/14-min_number/output.json +6 -0
- data/test/test_suite/positive/14-min_number/rules.json +6 -0
- data/test/test_suite/positive/15-number_between/input.json +7 -0
- data/test/test_suite/positive/15-number_between/output.json +6 -0
- data/test/test_suite/positive/15-number_between/rules.json +6 -0
- data/test/test_suite/positive/16-email/input.json +7 -0
- data/test/test_suite/positive/16-email/output.json +6 -0
- data/test/test_suite/positive/16-email/rules.json +6 -0
- data/test/test_suite/positive/17-equal_to_field/input.json +7 -0
- data/test/test_suite/positive/17-equal_to_field/output.json +6 -0
- data/test/test_suite/positive/17-equal_to_field/rules.json +6 -0
- data/test/test_suite/positive/18-nested_object/input.json +10 -0
- data/test/test_suite/positive/18-nested_object/output.json +8 -0
- data/test/test_suite/positive/18-nested_object/rules.json +8 -0
- data/test/test_suite/positive/19-list_of/input.json +6 -0
- data/test/test_suite/positive/19-list_of/output.json +6 -0
- data/test/test_suite/positive/19-list_of/rules.json +15 -0
- data/test/test_suite/positive/20-list_of_objects/input.json +16 -0
- data/test/test_suite/positive/20-list_of_objects/output.json +16 -0
- data/test/test_suite/positive/20-list_of_objects/rules.json +6 -0
- data/test/test_suite/positive/21-list_of_different_objects/input.json +21 -0
- data/test/test_suite/positive/21-list_of_different_objects/output.json +20 -0
- data/test/test_suite/positive/21-list_of_different_objects/rules.json +17 -0
- data/test/test_suite/positive/22-not_empty_list/input.json +6 -0
- data/test/test_suite/positive/22-not_empty_list/output.json +5 -0
- data/test/test_suite/positive/22-not_empty_list/rules.json +5 -0
- data/test/test_suite/positive/23-url/input.json +7 -0
- data/test/test_suite/positive/23-url/output.json +6 -0
- data/test/test_suite/positive/23-url/rules.json +6 -0
- data/test/test_suite/positive/24-iso_date/input.json +8 -0
- data/test/test_suite/positive/24-iso_date/output.json +7 -0
- data/test/test_suite/positive/24-iso_date/rules.json +7 -0
- data/test/test_suite/positive/30-trim/input.json +5 -0
- data/test/test_suite/positive/30-trim/output.json +5 -0
- data/test/test_suite/positive/30-trim/rules.json +5 -0
- data/test/test_suite/positive/31-to_lc/input.json +6 -0
- data/test/test_suite/positive/31-to_lc/output.json +6 -0
- data/test/test_suite/positive/31-to_lc/rules.json +6 -0
- data/test/test_suite/positive/32-to_uc/input.json +5 -0
- data/test/test_suite/positive/32-to_uc/output.json +5 -0
- data/test/test_suite/positive/32-to_uc/rules.json +5 -0
- data/test/test_suite/positive/33-remove/input.json +5 -0
- data/test/test_suite/positive/33-remove/output.json +5 -0
- data/test/test_suite/positive/33-remove/rules.json +7 -0
- data/test/test_suite/positive/34-leave_only/input.json +5 -0
- data/test/test_suite/positive/34-leave_only/output.json +5 -0
- data/test/test_suite/positive/34-leave_only/rules.json +7 -0
- metadata +476 -0
@@ -0,0 +1,10 @@
|
|
1
|
+
{
|
2
|
+
"city1": { "one_of": [["Moscow", "Kiev" ]] },
|
3
|
+
"city2": [{ "one_of": [["Moscow", "Kiev" ]] }],
|
4
|
+
"city3": { "one_of": ["Moscow", "Kiev"] },
|
5
|
+
|
6
|
+
"value_is_hash": { "one_of": [["Moscow", "Kiev" ]] },
|
7
|
+
"value_is_empty_hash": { "one_of": [["Moscow", "Kiev" ]] },
|
8
|
+
"value_is_array": { "one_of": [["Moscow", "Kiev" ]] },
|
9
|
+
"value_is_empty_array": { "one_of": [["Moscow", "Kiev" ]] }
|
10
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
{
|
2
|
+
"first_name": "Vasya",
|
3
|
+
"last_name": "Pupkin",
|
4
|
+
"middle_name": "Some name",
|
5
|
+
"empty_name": "",
|
6
|
+
"extra_name": "extra_name",
|
7
|
+
|
8
|
+
"value_is_hash": {"test": 1},
|
9
|
+
"value_is_empty_hash": {},
|
10
|
+
"value_is_array": ["test", 1],
|
11
|
+
"value_is_empty_array": []
|
12
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
{
|
2
|
+
"first_name": { "min_length": 6 },
|
3
|
+
"last_name": { "min_length": [10] },
|
4
|
+
"middle_name": [{ "min_length": [10] }],
|
5
|
+
"empty_name": { "min_length": 3 },
|
6
|
+
|
7
|
+
"value_is_hash": { "min_length": 6 },
|
8
|
+
"value_is_empty_hash": { "min_length": 6 },
|
9
|
+
"value_is_array": { "min_length": 6 },
|
10
|
+
"value_is_empty_array": { "min_length": 6 }
|
11
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
{
|
2
|
+
"first_name": "Vasya",
|
3
|
+
"last_name": "Pupkin",
|
4
|
+
"middle_name": "Some name",
|
5
|
+
"empty_name": "",
|
6
|
+
"extra_name": "extra_name",
|
7
|
+
|
8
|
+
"value_is_hash": {"test": 1},
|
9
|
+
"value_is_empty_hash": {},
|
10
|
+
"value_is_array": ["test", 1],
|
11
|
+
"value_is_empty_array": []
|
12
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
{
|
2
|
+
"first_name": { "max_length": 4 },
|
3
|
+
"last_name": { "max_length": [5] },
|
4
|
+
"middle_name": [{ "max_length": [0] }],
|
5
|
+
"empty_name": { "max_length": 3 },
|
6
|
+
|
7
|
+
"value_is_hash": { "max_length": 4 },
|
8
|
+
"value_is_empty_hash": { "max_length": 4 },
|
9
|
+
"value_is_array": { "max_length": 4 },
|
10
|
+
"value_is_empty_array": { "max_length": 4 }
|
11
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
{
|
2
|
+
"first_name": "Vasya",
|
3
|
+
"last_name": "Pupkin",
|
4
|
+
"middle_name": "Some name",
|
5
|
+
"empty_name": "",
|
6
|
+
"extra_name": "extra_name",
|
7
|
+
|
8
|
+
"value_is_hash": {"test": 1},
|
9
|
+
"value_is_empty_hash": {},
|
10
|
+
"value_is_array": ["test", 1],
|
11
|
+
"value_is_empty_array": []
|
12
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
{
|
2
|
+
"first_name": { "length_equal": 2 },
|
3
|
+
"last_name": { "length_equal": [7] },
|
4
|
+
"middle_name": [{ "length_equal": [3] }],
|
5
|
+
"empty_name": { "length_equal": 3 },
|
6
|
+
|
7
|
+
"value_is_hash": { "length_equal": 2 },
|
8
|
+
"value_is_empty_hash": { "length_equal": 2 },
|
9
|
+
"value_is_array": { "length_equal": 2 },
|
10
|
+
"value_is_empty_array": { "length_equal": 2 }
|
11
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
{
|
2
|
+
"first_name": "Vasya",
|
3
|
+
"last_name": "Pupkin",
|
4
|
+
"middle_name": "Some name",
|
5
|
+
"empty_name": "",
|
6
|
+
"extra_name": "extra_name",
|
7
|
+
|
8
|
+
"value_is_hash": {"test": 1},
|
9
|
+
"value_is_empty_hash": {},
|
10
|
+
"value_is_array": ["test", 1],
|
11
|
+
"value_is_empty_array": []
|
12
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
{
|
2
|
+
"first_name": { "length_between": [7, 10]},
|
3
|
+
"last_name": { "length_between": [4, 5] },
|
4
|
+
"middle_name": [{ "length_between": [2, 3] }],
|
5
|
+
"empty_name": { "length_between": [4, 10] },
|
6
|
+
|
7
|
+
"value_is_hash": { "length_between": [7, 10]},
|
8
|
+
"value_is_empty_hash": { "length_between": [7, 10]},
|
9
|
+
"value_is_array": { "length_between": [7, 10]},
|
10
|
+
"value_is_empty_array": { "length_between": [7, 10]}
|
11
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
{
|
2
|
+
"first_name": "WRONG_FORMAT",
|
3
|
+
"last_name": "WRONG_FORMAT",
|
4
|
+
"middle_name": "WRONG_FORMAT",
|
5
|
+
"age": "WRONG_FORMAT",
|
6
|
+
|
7
|
+
"value_is_hash": "FORMAT_ERROR",
|
8
|
+
"value_is_empty_hash": "FORMAT_ERROR",
|
9
|
+
"value_is_array": "FORMAT_ERROR",
|
10
|
+
"value_is_empty_array": "FORMAT_ERROR"
|
11
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
{
|
2
|
+
"first_name": "Vasya",
|
3
|
+
"last_name": "Pupkin",
|
4
|
+
"middle_name": "Ivanovich",
|
5
|
+
"age": "35",
|
6
|
+
"empty_name": "",
|
7
|
+
"extra_name": "extra_name",
|
8
|
+
|
9
|
+
|
10
|
+
"value_is_hash": {"test": 1},
|
11
|
+
"value_is_empty_hash": {},
|
12
|
+
"value_is_array": ["test", 1],
|
13
|
+
"value_is_empty_array": []
|
14
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
{
|
2
|
+
"first_name": { "like": "[0-9]+" },
|
3
|
+
"last_name": { "like": ["^[A-Z]+$"] },
|
4
|
+
"middle_name": { "like": ["^[b-z]+$", "i"] },
|
5
|
+
"age": [{ "like": "^[a-z]+$" }],
|
6
|
+
"empty_name": { "like": "[A-Za-z]" },
|
7
|
+
|
8
|
+
"value_is_hash": { "like": "[0-9]+" },
|
9
|
+
"value_is_empty_hash": { "like": "[0-9]+" },
|
10
|
+
"value_is_array": { "like": "[0-9]+" },
|
11
|
+
"value_is_empty_array": { "like": "[0-9]+" }
|
12
|
+
}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
{
|
2
|
+
"number1": "NOT_POSITIVE_INTEGER",
|
3
|
+
"number2": "NOT_POSITIVE_INTEGER",
|
4
|
+
"number3": "NOT_POSITIVE_INTEGER",
|
5
|
+
|
6
|
+
"value_is_hash": "FORMAT_ERROR",
|
7
|
+
"value_is_empty_hash": "FORMAT_ERROR",
|
8
|
+
"value_is_array": "FORMAT_ERROR",
|
9
|
+
"value_is_empty_array": "FORMAT_ERROR"
|
10
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
{
|
2
|
+
"number1": "positive_integer",
|
3
|
+
"number2": ["positive_integer"],
|
4
|
+
"number3": [ { "positive_integer": [] } ],
|
5
|
+
"empty_field": "positive_integer",
|
6
|
+
|
7
|
+
"value_is_hash": "positive_integer",
|
8
|
+
"value_is_empty_hash": "positive_integer",
|
9
|
+
"value_is_array": "positive_integer",
|
10
|
+
"value_is_empty_array": "positive_integer"
|
11
|
+
}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
{
|
2
|
+
"number1": "NOT_POSITIVE_DECIMAL",
|
3
|
+
"number2": "NOT_POSITIVE_DECIMAL",
|
4
|
+
"number3": "NOT_POSITIVE_DECIMAL",
|
5
|
+
|
6
|
+
"value_is_hash": "FORMAT_ERROR",
|
7
|
+
"value_is_empty_hash": "FORMAT_ERROR",
|
8
|
+
"value_is_array": "FORMAT_ERROR",
|
9
|
+
"value_is_empty_array": "FORMAT_ERROR"
|
10
|
+
}
|