ruby-livr 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.github/workflows/test.yml +23 -0
- data/.gitignore +1 -0
- data/Readme.md +2 -2
- data/lib/livr/aliased_rule.rb +11 -5
- data/lib/livr/rule.rb +13 -0
- data/lib/livr/rules/common.rb +1 -2
- data/lib/livr/rules/meta.rb +43 -12
- data/lib/livr/rules/modifiers.rb +10 -10
- data/lib/livr/rules/numeric.rb +5 -5
- data/lib/livr/rules/special.rb +14 -9
- data/lib/livr/validator.rb +7 -2
- data/lib/livr.rb +2 -0
- data/ruby-livr.gemspec +5 -4
- data/spec/01-test_suite_spec.rb +7 -2
- data/spec/02-aliases_spec.rb +30 -1
- data/spec/04-custom_filters_spec.rb +12 -1
- data/spec/06-primitive_values_spec.rb +133 -0
- data/spec/test_suite/aliases_negative/02-address/aliases.json +2 -2
- data/spec/test_suite/aliases_negative/02-address/input.json +2 -2
- data/spec/test_suite/aliases_positive/01-adult_age/input.json +1 -0
- data/spec/test_suite/aliases_positive/01-adult_age/output.json +1 -0
- data/spec/test_suite/aliases_positive/01-adult_age/rules.json +2 -0
- data/spec/test_suite/aliases_positive/02-address/aliases.json +2 -2
- data/spec/test_suite/aliases_positive/02-address/input.json +1 -1
- data/spec/test_suite/aliases_positive/02-address/output.json +1 -1
- data/spec/test_suite/negative/01-required/errors.json +4 -1
- data/spec/test_suite/negative/01-required/input.json +1 -0
- data/spec/test_suite/negative/01-required/rules.json +5 -1
- data/spec/test_suite/negative/03-one_of/errors.json +2 -0
- data/spec/test_suite/negative/03-one_of/input.json +2 -0
- data/spec/test_suite/negative/03-one_of/rules.json +9 -7
- data/spec/test_suite/negative/12-positive_decimal/errors.json +1 -0
- data/spec/test_suite/negative/12-positive_decimal/input.json +1 -0
- data/spec/test_suite/negative/12-positive_decimal/rules.json +1 -0
- data/spec/test_suite/negative/16-email/errors.json +22 -0
- data/spec/test_suite/negative/16-email/input.json +23 -0
- data/spec/test_suite/negative/16-email/rules.json +23 -0
- data/spec/test_suite/negative/17-equal_to_field/errors.json +4 -0
- data/spec/test_suite/negative/17-equal_to_field/input.json +5 -0
- data/spec/test_suite/negative/17-equal_to_field/rules.json +4 -0
- data/spec/test_suite/negative/18-nested_object/input.json +1 -1
- data/spec/test_suite/negative/21-list_of_different_objects/errors.json +6 -1
- data/spec/test_suite/negative/21-list_of_different_objects/input.json +23 -1
- data/spec/test_suite/negative/21-list_of_different_objects/rules.json +36 -1
- data/spec/test_suite/negative/23-url/errors.json +2 -0
- data/spec/test_suite/negative/23-url/input.json +2 -0
- data/spec/test_suite/negative/23-url/rules.json +2 -0
- data/spec/test_suite/negative/24-iso_date/errors.json +6 -0
- data/spec/test_suite/negative/24-iso_date/input.json +6 -0
- data/spec/test_suite/negative/24-iso_date/rules.json +6 -0
- data/spec/test_suite/negative/25-eq/rules.json +7 -7
- data/spec/test_suite/negative/28-variable_object/errors.json +9 -1
- data/spec/test_suite/negative/28-variable_object/input.json +9 -1
- data/spec/test_suite/negative/28-variable_object/rules.json +57 -1
- data/spec/test_suite/negative/29-or/errors.json +3 -0
- data/spec/test_suite/negative/29-or/input.json +1 -0
- data/spec/test_suite/negative/29-or/rules.json +3 -0
- data/spec/test_suite/positive/01-required/input.json +5 -1
- data/spec/test_suite/positive/01-required/output.json +4 -1
- data/spec/test_suite/positive/01-required/rules.json +4 -1
- data/spec/test_suite/positive/03-one_of/input.json +7 -3
- data/spec/test_suite/positive/03-one_of/output.json +7 -3
- data/spec/test_suite/positive/03-one_of/rules.json +8 -4
- data/spec/test_suite/positive/16-email/input.json +29 -0
- data/spec/test_suite/positive/16-email/output.json +28 -0
- data/spec/test_suite/positive/16-email/rules.json +28 -0
- data/spec/test_suite/positive/17-equal_to_field/input.json +3 -1
- data/spec/test_suite/positive/17-equal_to_field/output.json +2 -1
- data/spec/test_suite/positive/17-equal_to_field/rules.json +2 -1
- data/spec/test_suite/positive/18-nested_object/input.json +9 -1
- data/spec/test_suite/positive/18-nested_object/output.json +5 -0
- data/spec/test_suite/positive/18-nested_object/rules.json +10 -1
- data/spec/test_suite/positive/24-iso_date/input.json +2 -0
- data/spec/test_suite/positive/24-iso_date/output.json +2 -0
- data/spec/test_suite/positive/24-iso_date/rules.json +2 -0
- data/spec/test_suite/positive/25-eq/input.json +3 -3
- data/spec/test_suite/positive/25-eq/output.json +3 -3
- data/spec/test_suite/positive/25-eq/rules.json +4 -4
- data/spec/test_suite/positive/26-string/input.json +2 -2
- data/spec/test_suite/positive/26-string/output.json +2 -2
- data/spec/test_suite/positive/27-any_object/input.json +3 -2
- data/spec/test_suite/positive/27-any_object/output.json +3 -2
- data/spec/test_suite/positive/27-any_object/rules.json +2 -1
- data/spec/test_suite/positive/29-or/input.json +2 -0
- data/spec/test_suite/positive/29-or/output.json +2 -0
- data/spec/test_suite/positive/29-or/rules.json +3 -0
- data/spec/test_suite/positive/35-default/output.json +2 -1
- data/spec/test_suite/positive/35-default/rules.json +2 -1
- metadata +17 -14
- data/.travis.yml +0 -4
- data/Gemfile.lock +0 -45
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"city1": { "eq": "
|
|
3
|
-
"city2": [{ "eq": "
|
|
4
|
-
"city3": { "eq": "
|
|
2
|
+
"city1": { "eq": "Lviv" },
|
|
3
|
+
"city2": [{ "eq": "Lviv" }],
|
|
4
|
+
"city3": { "eq": "Kyiv" },
|
|
5
5
|
"number1": { "eq": 1 },
|
|
6
6
|
"number2": { "eq": 1 },
|
|
7
7
|
"number3": { "eq": 1.2 },
|
|
8
8
|
"empty_string": {"eq": 1 },
|
|
9
|
-
"value_is_hash": { "eq": "
|
|
10
|
-
"value_is_empty_hash": { "eq": "
|
|
11
|
-
"value_is_array": { "eq": "
|
|
12
|
-
"value_is_empty_array": { "eq": "
|
|
9
|
+
"value_is_hash": { "eq": "Lviv" },
|
|
10
|
+
"value_is_empty_hash": { "eq": "Lviv" },
|
|
11
|
+
"value_is_array": { "eq": "Lviv" },
|
|
12
|
+
"value_is_empty_array": { "eq": "Lviv" }
|
|
13
13
|
}
|
|
@@ -11,5 +11,13 @@
|
|
|
11
11
|
"name": "TOO_LONG"
|
|
12
12
|
},
|
|
13
13
|
"product4": "FORMAT_ERROR",
|
|
14
|
-
"product5": "FORMAT_ERROR"
|
|
14
|
+
"product5": "FORMAT_ERROR",
|
|
15
|
+
"product_without_selector": "FORMAT_ERROR",
|
|
16
|
+
"product_is_array": "FORMAT_ERROR",
|
|
17
|
+
"selector_is_array": "FORMAT_ERROR",
|
|
18
|
+
"selector_is_object": "FORMAT_ERROR",
|
|
19
|
+
"selector_is_constructor": "FORMAT_ERROR",
|
|
20
|
+
"selector_is_to_string": "FORMAT_ERROR",
|
|
21
|
+
"selector_is_has_own_property": "FORMAT_ERROR",
|
|
22
|
+
"selector_is_proto": "FORMAT_ERROR"
|
|
15
23
|
}
|
|
@@ -20,5 +20,13 @@
|
|
|
20
20
|
"name": "Wrongtype"
|
|
21
21
|
},
|
|
22
22
|
"product5": "Some Wrong Data",
|
|
23
|
-
"users": "not an array"
|
|
23
|
+
"users": "not an array",
|
|
24
|
+
"product_without_selector": {"name": "No product type"},
|
|
25
|
+
"product_is_array": [{"product_type": "service", "name": "Service"}],
|
|
26
|
+
"selector_is_array": {"product_type": ["material"], "material_id": 1},
|
|
27
|
+
"selector_is_object": {"product_type": {"material": 1}, "material_id": 1},
|
|
28
|
+
"selector_is_constructor": {"product_type": "constructor"},
|
|
29
|
+
"selector_is_to_string": {"product_type": "toString"},
|
|
30
|
+
"selector_is_has_own_property": {"product_type": "hasOwnProperty"},
|
|
31
|
+
"selector_is_proto": {"product_type": "__proto__"}
|
|
24
32
|
}
|
|
@@ -73,5 +73,61 @@
|
|
|
73
73
|
"name": ["required", {"max_length": 10} ]
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
-
]}]
|
|
76
|
+
]}],
|
|
77
|
+
|
|
78
|
+
"product_without_selector": { "variable_object": [
|
|
79
|
+
"product_type", {
|
|
80
|
+
"material": { "product_type": "required", "material_id": "positive_integer" },
|
|
81
|
+
"service": { "product_type": "required", "name": "required" }
|
|
82
|
+
}
|
|
83
|
+
]},
|
|
84
|
+
|
|
85
|
+
"product_is_array": { "variable_object": [
|
|
86
|
+
"product_type", {
|
|
87
|
+
"material": { "product_type": "required", "material_id": "positive_integer" },
|
|
88
|
+
"service": { "product_type": "required", "name": "required" }
|
|
89
|
+
}
|
|
90
|
+
]},
|
|
91
|
+
|
|
92
|
+
"selector_is_array": { "variable_object": [
|
|
93
|
+
"product_type", {
|
|
94
|
+
"material": { "product_type": "required", "material_id": "positive_integer" },
|
|
95
|
+
"service": { "product_type": "required", "name": "required" }
|
|
96
|
+
}
|
|
97
|
+
]},
|
|
98
|
+
|
|
99
|
+
"selector_is_object": { "variable_object": [
|
|
100
|
+
"product_type", {
|
|
101
|
+
"material": { "product_type": "required", "material_id": "positive_integer" },
|
|
102
|
+
"service": { "product_type": "required", "name": "required" }
|
|
103
|
+
}
|
|
104
|
+
]},
|
|
105
|
+
|
|
106
|
+
"selector_is_constructor": { "variable_object": [
|
|
107
|
+
"product_type", {
|
|
108
|
+
"material": { "product_type": "required", "material_id": "positive_integer" },
|
|
109
|
+
"service": { "product_type": "required", "name": "required" }
|
|
110
|
+
}
|
|
111
|
+
]},
|
|
112
|
+
|
|
113
|
+
"selector_is_to_string": { "variable_object": [
|
|
114
|
+
"product_type", {
|
|
115
|
+
"material": { "product_type": "required", "material_id": "positive_integer" },
|
|
116
|
+
"service": { "product_type": "required", "name": "required" }
|
|
117
|
+
}
|
|
118
|
+
]},
|
|
119
|
+
|
|
120
|
+
"selector_is_has_own_property": { "variable_object": [
|
|
121
|
+
"product_type", {
|
|
122
|
+
"material": { "product_type": "required", "material_id": "positive_integer" },
|
|
123
|
+
"service": { "product_type": "required", "name": "required" }
|
|
124
|
+
}
|
|
125
|
+
]},
|
|
126
|
+
|
|
127
|
+
"selector_is_proto": { "variable_object": [
|
|
128
|
+
"product_type", {
|
|
129
|
+
"material": { "product_type": "required", "material_id": "positive_integer" },
|
|
130
|
+
"service": { "product_type": "required", "name": "required" }
|
|
131
|
+
}
|
|
132
|
+
]}
|
|
77
133
|
}
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
"id1-1": { "or": ["email", "positive_integer" ] },
|
|
3
3
|
"id2-1": [{ "or": ["email", "positive_integer" ] }, "to_lc"],
|
|
4
4
|
"id3-1": { "or": [{"min_length": 15}, ["email", "to_lc"] ] },
|
|
5
|
+
"id4-1": { "or": [["required", "positive_integer"], ["not_empty", "email"] ] },
|
|
6
|
+
"id4-2": { "or": [["required", "positive_integer"], ["required", "email"] ] },
|
|
7
|
+
|
|
5
8
|
|
|
6
9
|
"products": {"list_of": { "or": [
|
|
7
10
|
{"nested_object": {
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
{
|
|
2
|
-
"city1": "
|
|
3
|
-
"city2": "
|
|
4
|
-
"city3": "
|
|
2
|
+
"city1": "Lviv",
|
|
3
|
+
"city2": "Kyiv",
|
|
4
|
+
"city3": "Kyiv",
|
|
5
|
+
"city4": "Kharkiv",
|
|
5
6
|
"number1": 2,
|
|
6
7
|
"number2": 2,
|
|
7
8
|
"number3": 1.2,
|
|
9
|
+
"number4": 1,
|
|
10
|
+
"number5": "1",
|
|
11
|
+
"number6": "39",
|
|
8
12
|
"boolean": true,
|
|
9
13
|
"empty_city": "",
|
|
10
14
|
"extra_city": "New York"
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
{
|
|
2
|
-
"city1": "
|
|
3
|
-
"city2": "
|
|
4
|
-
"city3": "
|
|
2
|
+
"city1": "Lviv",
|
|
3
|
+
"city2": "Kyiv",
|
|
4
|
+
"city3": "Kyiv",
|
|
5
|
+
"city4": "Kharkiv",
|
|
5
6
|
"number1": 2,
|
|
6
7
|
"number2": "2",
|
|
7
8
|
"number3": 1.2,
|
|
9
|
+
"number4": "1",
|
|
10
|
+
"number5": 1,
|
|
11
|
+
"number6": 39,
|
|
8
12
|
"boolean": true,
|
|
9
13
|
"empty_city": ""
|
|
10
14
|
}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
{
|
|
2
|
-
"city1": { "one_of": [["
|
|
3
|
-
"city2": [{ "one_of": [["
|
|
4
|
-
"city3": { "one_of": ["
|
|
2
|
+
"city1": { "one_of": [["Lviv", "Kyiv" ]] },
|
|
3
|
+
"city2": [{ "one_of": [["Lviv", "Kyiv" ]] }],
|
|
4
|
+
"city3": { "one_of": ["Lviv", "Kyiv"] },
|
|
5
|
+
"city4": { "one_of": ["Kyiv", "Lviv", "Odesa", "Kharkiv"] },
|
|
5
6
|
"number1": { "one_of": [1, 2] },
|
|
6
7
|
"number2": { "one_of": ["1", "2"] },
|
|
7
8
|
"number3": { "one_of": 1.2 },
|
|
9
|
+
"number4": { "one_of": ["1", 1, "b"] },
|
|
10
|
+
"number5": { "one_of": [1, "1"] },
|
|
11
|
+
"number6": { "one_of": [[0, 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]] },
|
|
8
12
|
"boolean": { "one_of": [true, false] },
|
|
9
|
-
"empty_city": { "one_of": [["
|
|
13
|
+
"empty_city": { "one_of": [["Lviv", "Kyiv" ]] }
|
|
10
14
|
}
|
|
@@ -2,6 +2,35 @@
|
|
|
2
2
|
"email1": "test@mail.com",
|
|
3
3
|
"email2": "test.test@mail.com.ua",
|
|
4
4
|
"email3": "test+test.t_e_s_t@mail.in.ua",
|
|
5
|
+
"email4": "user@hotline.finance",
|
|
6
|
+
"email5": "enny@enny.devoffice.com",
|
|
7
|
+
"email6": "enny.tester@gmail.com",
|
|
8
|
+
"email7": "enny#tester@mail.ru",
|
|
9
|
+
"email8": "enny!enny@templatemonster.me",
|
|
10
|
+
"email9": "enny@enny.devoffice.com",
|
|
11
|
+
"email10": "enny$@enny.devoffice.com",
|
|
12
|
+
"email11": "enny%tester@enny.devoffice.com",
|
|
13
|
+
"email12": "enny&te@enny.devoffice.com",
|
|
14
|
+
"email13": "enn*y@mail.ru",
|
|
15
|
+
"email14": "en+ny@yahoo.com",
|
|
16
|
+
"email15": "ennyqwerty@gmail.com",
|
|
17
|
+
"email16": "ennyqwerty@yandex.com",
|
|
18
|
+
"email17": "ennyqwerty@hotmail.com",
|
|
19
|
+
"email18": "enny@templatemonster.me",
|
|
20
|
+
"email19": "enny-newcheckout@templatemonster.me",
|
|
21
|
+
"email20": "enny/tester@enny.devoffice.com",
|
|
22
|
+
"email21": "en=ny@enny.devoffice.com",
|
|
23
|
+
"email22": "tes?ter@enny.devoffice.com",
|
|
24
|
+
"email23": "enny^enny@enny.devoffice.com",
|
|
25
|
+
"email24": "enny_sk@enny.devoffice.com",
|
|
26
|
+
"email25": "enn`y@enny.devoffice.com",
|
|
27
|
+
"email26": "enny|sk@enny.devoffice.com",
|
|
28
|
+
"email27": "er@enny.devoffice.com",
|
|
29
|
+
"email28": "dd@hj.ff",
|
|
30
|
+
"email29": "t@devoffice.com",
|
|
31
|
+
"email30": "ennytesttesttesttesttesttesttesttesttesttesttesttesttesttesttest@te1.com",
|
|
32
|
+
"email31": "er@enny.devoffice.com",
|
|
33
|
+
|
|
5
34
|
"empty_field": "",
|
|
6
35
|
"extra_field": "aaaa"
|
|
7
36
|
}
|
|
@@ -2,5 +2,33 @@
|
|
|
2
2
|
"email1": "test@mail.com",
|
|
3
3
|
"email2": "test.test@mail.com.ua",
|
|
4
4
|
"email3": "test+test.t_e_s_t@mail.in.ua",
|
|
5
|
+
"email4": "user@hotline.finance",
|
|
6
|
+
"email5": "enny@enny.devoffice.com",
|
|
7
|
+
"email6": "enny.tester@gmail.com",
|
|
8
|
+
"email7": "enny#tester@mail.ru",
|
|
9
|
+
"email8": "enny!enny@templatemonster.me",
|
|
10
|
+
"email9": "enny@enny.devoffice.com",
|
|
11
|
+
"email10": "enny$@enny.devoffice.com",
|
|
12
|
+
"email11": "enny%tester@enny.devoffice.com",
|
|
13
|
+
"email12": "enny&te@enny.devoffice.com",
|
|
14
|
+
"email13": "enn*y@mail.ru",
|
|
15
|
+
"email14": "en+ny@yahoo.com",
|
|
16
|
+
"email15": "ennyqwerty@gmail.com",
|
|
17
|
+
"email16": "ennyqwerty@yandex.com",
|
|
18
|
+
"email17": "ennyqwerty@hotmail.com",
|
|
19
|
+
"email18": "enny@templatemonster.me",
|
|
20
|
+
"email19": "enny-newcheckout@templatemonster.me",
|
|
21
|
+
"email20": "enny/tester@enny.devoffice.com",
|
|
22
|
+
"email21": "en=ny@enny.devoffice.com",
|
|
23
|
+
"email22": "tes?ter@enny.devoffice.com",
|
|
24
|
+
"email23": "enny^enny@enny.devoffice.com",
|
|
25
|
+
"email24": "enny_sk@enny.devoffice.com",
|
|
26
|
+
"email25": "enn`y@enny.devoffice.com",
|
|
27
|
+
"email26": "enny|sk@enny.devoffice.com",
|
|
28
|
+
"email27": "er@enny.devoffice.com",
|
|
29
|
+
"email28": "dd@hj.ff",
|
|
30
|
+
"email29": "t@devoffice.com",
|
|
31
|
+
"email30": "ennytesttesttesttesttesttesttesttesttesttesttesttesttesttesttest@te1.com",
|
|
32
|
+
"email31": "er@enny.devoffice.com",
|
|
5
33
|
"empty_field": ""
|
|
6
34
|
}
|
|
@@ -2,5 +2,33 @@
|
|
|
2
2
|
"email1": "email",
|
|
3
3
|
"email2": { "email": [] },
|
|
4
4
|
"email3": [ { "email": [] } ],
|
|
5
|
+
"email4": "email",
|
|
6
|
+
"email5": "email",
|
|
7
|
+
"email6": "email",
|
|
8
|
+
"email7": "email",
|
|
9
|
+
"email8": "email",
|
|
10
|
+
"email9": "email",
|
|
11
|
+
"email10": "email",
|
|
12
|
+
"email11": "email",
|
|
13
|
+
"email12": "email",
|
|
14
|
+
"email13": "email",
|
|
15
|
+
"email14": "email",
|
|
16
|
+
"email15": "email",
|
|
17
|
+
"email16": "email",
|
|
18
|
+
"email17": "email",
|
|
19
|
+
"email18": "email",
|
|
20
|
+
"email19": "email",
|
|
21
|
+
"email20": "email",
|
|
22
|
+
"email21": "email",
|
|
23
|
+
"email22": "email",
|
|
24
|
+
"email23": "email",
|
|
25
|
+
"email24": "email",
|
|
26
|
+
"email25": "email",
|
|
27
|
+
"email26": "email",
|
|
28
|
+
"email27": "email",
|
|
29
|
+
"email28": "email",
|
|
30
|
+
"email29": "email",
|
|
31
|
+
"email30": "email",
|
|
32
|
+
"email31": "email",
|
|
5
33
|
"empty_field": "email"
|
|
6
34
|
}
|
|
@@ -2,5 +2,6 @@
|
|
|
2
2
|
"field1": { "equal_to_field": "field2" },
|
|
3
3
|
"field2": { "equal_to_field": ["field1"] },
|
|
4
4
|
"field3": { "equal_to_field": ["field1"] },
|
|
5
|
-
"empty_field": { "equal_to_field": "field2" }
|
|
5
|
+
"empty_field": { "equal_to_field": "field2" },
|
|
6
|
+
"number_as_string": { "equal_to_field": "number_as_number" }
|
|
6
7
|
}
|
|
@@ -7,9 +7,17 @@
|
|
|
7
7
|
"extra_field": "will be removed"
|
|
8
8
|
},
|
|
9
9
|
|
|
10
|
+
"should_not_be_errored": "",
|
|
11
|
+
|
|
10
12
|
"should_be_empty": {
|
|
11
13
|
"extra_field": "will be removed"
|
|
12
14
|
},
|
|
13
15
|
|
|
14
|
-
"extra_field": "will be removed"
|
|
16
|
+
"extra_field": "will be removed",
|
|
17
|
+
|
|
18
|
+
"builtin_names": {
|
|
19
|
+
"constructor": "Constructor value",
|
|
20
|
+
"toString": "ToString value",
|
|
21
|
+
"hasOwnProperty": "will be removed"
|
|
22
|
+
}
|
|
15
23
|
}
|
|
@@ -6,8 +6,17 @@
|
|
|
6
6
|
"building": ["required", "positive_integer" ]
|
|
7
7
|
} } ],
|
|
8
8
|
|
|
9
|
+
"should_not_be_errored": { "nested_object": {
|
|
10
|
+
"zip": "positive_integer"
|
|
11
|
+
}},
|
|
12
|
+
|
|
9
13
|
"should_be_empty": [ "required", { "nested_object": {
|
|
10
14
|
"country": [{ "one_of": [["Ukraine", "USA"]] } ],
|
|
11
15
|
"zip": "positive_integer"
|
|
12
|
-
} } ]
|
|
16
|
+
} } ],
|
|
17
|
+
|
|
18
|
+
"builtin_names": { "nested_object": {
|
|
19
|
+
"constructor": "required",
|
|
20
|
+
"toString": "required"
|
|
21
|
+
}}
|
|
13
22
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"city1": { "eq": "
|
|
3
|
-
"city2": [{ "eq": "
|
|
4
|
-
"city3": { "eq": "
|
|
2
|
+
"city1": { "eq": "Lviv" },
|
|
3
|
+
"city2": [{ "eq": "Kyiv" }],
|
|
4
|
+
"city3": { "eq": "Kyiv" },
|
|
5
5
|
"city4": [{ "eq": ["Dnipro"] }],
|
|
6
6
|
"number1": { "eq": 2 },
|
|
7
7
|
"number2": { "eq": "2" },
|
|
8
|
-
"empty_city": { "eq": "
|
|
8
|
+
"empty_city": { "eq": "Kyiv" }
|
|
9
9
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"object1": {"email": "user@mail.com"},
|
|
3
|
-
"object2": {"id": 123, "address": {"city" : "
|
|
3
|
+
"object2": {"id": 123, "address": {"city" : "Kyiv"}},
|
|
4
4
|
"object3": {},
|
|
5
|
-
"empty_field": ""
|
|
5
|
+
"empty_field": "",
|
|
6
|
+
"object4": {"constructor": "Constructor value"}
|
|
6
7
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"object1": {"email": "user@mail.com"},
|
|
3
|
-
"object2": {"id": 123, "address": {"city" : "
|
|
3
|
+
"object2": {"id": 123, "address": {"city" : "Kyiv"}},
|
|
4
4
|
"object3": {},
|
|
5
|
-
"empty_field": ""
|
|
5
|
+
"empty_field": "",
|
|
6
|
+
"object4": {"constructor": "Constructor value"}
|
|
6
7
|
}
|
|
@@ -8,6 +8,9 @@
|
|
|
8
8
|
"id3-1": { "or": [{"min_length": 15}, ["email", "to_lc"] ] },
|
|
9
9
|
"id3-2": { "or": [{"min_length": 15}, ["email", "to_lc"] ] },
|
|
10
10
|
|
|
11
|
+
"id4-1": { "or": ["email", "positive_integer" ] },
|
|
12
|
+
"id4-2": { "or": ["email", "positive_integer" ] },
|
|
13
|
+
|
|
11
14
|
"products": {"list_of": { "or": [
|
|
12
15
|
{"nested_object": {
|
|
13
16
|
"product_type": ["required", {"eq": "material"}],
|