params_checker 0.2.1 → 0.2.5
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 +4 -4
- data/README.md +1168 -5
- data/lib/params_checker.rb +9 -7
- data/lib/params_checker/base_params_checker.rb +188 -161
- data/lib/params_checker/constants.rb +45 -0
- data/lib/params_checker/engine.rb +4 -0
- data/lib/params_checker/field_error.rb +11 -0
- data/lib/params_checker/fields.rb +242 -160
- data/lib/params_checker/{my_error.rb → general_error.rb} +2 -2
- data/lib/params_checker/helper.rb +21 -0
- data/lib/params_checker/param_checker.rb +313 -278
- data/lib/params_checker/version.rb +1 -1
- metadata +20 -11
- data/app/assets/config/params_checker_manifest.js +0 -1
- data/app/assets/stylesheets/params_checker/application.css +0 -15
- data/app/controllers/params_checker/application_controller.rb +0 -5
- data/app/helpers/params_checker/application_helper.rb +0 -4
- data/app/jobs/params_checker/application_job.rb +0 -4
- data/app/mailers/params_checker/application_mailer.rb +0 -6
- data/app/models/params_checker/application_record.rb +0 -5
- data/app/views/layouts/params_checker/application.html.erb +0 -15
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Constants
|
4
|
+
ERROR_MESSAGES = {
|
5
|
+
required: 'This field is required.',
|
6
|
+
blank: 'This field cannot be blank.',
|
7
|
+
empty: 'This field cannot be empty.',
|
8
|
+
|
9
|
+
type: {
|
10
|
+
string: "This field's type must be string.",
|
11
|
+
file: "This field's type must be file.",
|
12
|
+
hash: "This field's type must be hash.",
|
13
|
+
nested_hash: "This field's type must be object or ActionController::Parameters.",
|
14
|
+
array: "This field's type must be array.",
|
15
|
+
integer: "This field's type must be integer.",
|
16
|
+
numeric: "This field's type must be numeric.",
|
17
|
+
boolean: "This field's type must be boolean.",
|
18
|
+
date: 'Invalid date.',
|
19
|
+
time: 'Invalid time.',
|
20
|
+
datetime: 'Invalid datetime.'
|
21
|
+
},
|
22
|
+
|
23
|
+
length: {
|
24
|
+
text: 'Invalid text length.',
|
25
|
+
char: 'Invalid char length.'
|
26
|
+
},
|
27
|
+
|
28
|
+
value: {
|
29
|
+
numeric: 'Invalid numeric value.',
|
30
|
+
integer: 'Invalid integer value.'
|
31
|
+
}
|
32
|
+
}.freeze
|
33
|
+
|
34
|
+
def get_integer_value_error_message(min: -2_000_000_000_000, max: 2_000_000_000_000)
|
35
|
+
"This integer field's value must be in range from #{min} to #{max}."
|
36
|
+
end
|
37
|
+
|
38
|
+
def get_numeric_value_error_message(min: -2_000_000_000_000, max: 2_000_000_000_000)
|
39
|
+
"This numeric field's value must be in range from #{min} to #{max}."
|
40
|
+
end
|
41
|
+
|
42
|
+
def get_string_length_error_message(min_length: 0, max_length: 30_000)
|
43
|
+
"This string field's length must be in range from #{min_length} to #{max_length}."
|
44
|
+
end
|
45
|
+
end
|
@@ -1,228 +1,310 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module ParamsChecker
|
4
4
|
module Fields
|
5
|
-
def text_field(
|
6
|
-
|
7
|
-
|
5
|
+
def text_field(
|
6
|
+
required: true,
|
7
|
+
default: nil,
|
8
|
+
allow_blank: false,
|
9
|
+
min_length: 0,
|
10
|
+
max_length: 30_000,
|
11
|
+
allow_nil: false
|
12
|
+
)
|
13
|
+
Helper.check_type(type: 'integer', values: [min_length, max_length])
|
14
|
+
Helper.check_type(type: 'boolean', values: [required, allow_blank, allow_nil])
|
8
15
|
raise 'Invalid text length.' unless (min_length >= 0) && (max_length <= 30_000)
|
9
|
-
|
16
|
+
|
10
17
|
{
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
+
type: 'char',
|
19
|
+
default: default,
|
20
|
+
allow_blank: allow_blank,
|
21
|
+
required: required,
|
22
|
+
min_length: min_length,
|
23
|
+
max_length: max_length,
|
24
|
+
allow_nil: allow_nil
|
18
25
|
}
|
19
26
|
end
|
20
|
-
|
21
|
-
def char_field(
|
22
|
-
|
23
|
-
|
27
|
+
|
28
|
+
def char_field(
|
29
|
+
required: true,
|
30
|
+
default: nil,
|
31
|
+
allow_blank: false,
|
32
|
+
min_length: 0,
|
33
|
+
max_length: 255,
|
34
|
+
allow_nil: false
|
35
|
+
)
|
36
|
+
Helper.check_type(type: 'integer', values: [min_length, max_length])
|
37
|
+
Helper.check_type(type: 'boolean', values: [required, allow_blank, allow_nil])
|
24
38
|
raise 'Invalid char length.' unless (min_length >= 0) && (max_length <= 255)
|
25
|
-
|
39
|
+
|
26
40
|
{
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
41
|
+
type: 'char',
|
42
|
+
default: default,
|
43
|
+
allow_blank: allow_blank,
|
44
|
+
required: required,
|
45
|
+
min_length: min_length,
|
46
|
+
max_length: max_length,
|
47
|
+
allow_nil: allow_nil
|
34
48
|
}
|
35
49
|
end
|
36
|
-
|
37
|
-
def bignum_field(
|
38
|
-
|
39
|
-
|
50
|
+
|
51
|
+
def bignum_field(
|
52
|
+
required: true,
|
53
|
+
default: nil,
|
54
|
+
min: -2_000_000_000_000,
|
55
|
+
max: 2_000_000_000_000,
|
56
|
+
allow_nil: false
|
57
|
+
)
|
58
|
+
Helper.check_type(type: 'numeric', values: [min, max])
|
59
|
+
Helper.check_type(type: 'boolean', values: [required, allow_nil])
|
40
60
|
raise 'Invalid numeric value.' unless (min >= -2_000_000_000_000) && (max <= 2_000_000_000_000)
|
41
|
-
|
61
|
+
|
42
62
|
{
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
63
|
+
type: 'num',
|
64
|
+
default: default,
|
65
|
+
required: required,
|
66
|
+
min: min,
|
67
|
+
max: max,
|
68
|
+
allow_nil: allow_nil
|
49
69
|
}
|
50
70
|
end
|
51
|
-
|
52
|
-
def num_field(
|
53
|
-
|
54
|
-
|
71
|
+
|
72
|
+
def num_field(
|
73
|
+
required: true,
|
74
|
+
default: nil,
|
75
|
+
min: -2_000_000_000,
|
76
|
+
max: 2_000_000_000,
|
77
|
+
allow_nil: false
|
78
|
+
)
|
79
|
+
Helper.check_type(type: 'numeric', values: [min, max])
|
80
|
+
Helper.check_type(type: 'boolean', values: [required, allow_nil])
|
55
81
|
raise 'Invalid numeric value.' unless (min >= -2_000_000_000) && (max <= 2_000_000_000)
|
56
|
-
|
82
|
+
|
57
83
|
{
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
84
|
+
type: 'num',
|
85
|
+
default: default,
|
86
|
+
required: required,
|
87
|
+
min: min,
|
88
|
+
max: max,
|
89
|
+
allow_nil: allow_nil
|
64
90
|
}
|
65
91
|
end
|
66
92
|
|
67
|
-
def bigint_field(
|
68
|
-
|
69
|
-
|
93
|
+
def bigint_field(
|
94
|
+
required: true,
|
95
|
+
default: nil,
|
96
|
+
min: -2_000_000_000_000,
|
97
|
+
max: 2_000_000_000_000,
|
98
|
+
allow_nil: false
|
99
|
+
)
|
100
|
+
Helper.check_type(type: 'integer', values: [min, max])
|
101
|
+
Helper.check_type(type: 'boolean', values: [required, allow_nil])
|
70
102
|
raise 'Invalid integer value.' unless (min >= -2_000_000_000_000) && (max <= 2_000_000_000_000)
|
71
|
-
|
103
|
+
|
72
104
|
{
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
105
|
+
type: 'int',
|
106
|
+
default: default,
|
107
|
+
required: required,
|
108
|
+
min: min,
|
109
|
+
max: max,
|
110
|
+
allow_nil: allow_nil
|
79
111
|
}
|
80
112
|
end
|
81
|
-
|
82
|
-
def int_field(
|
83
|
-
|
84
|
-
|
113
|
+
|
114
|
+
def int_field(
|
115
|
+
required: true,
|
116
|
+
default: nil,
|
117
|
+
min: -2_000_000_000,
|
118
|
+
max: 2_000_000_000,
|
119
|
+
allow_nil: false
|
120
|
+
)
|
121
|
+
Helper.check_type(type: 'integer', values: [min, max])
|
122
|
+
Helper.check_type(type: 'boolean', values: [required, allow_nil])
|
85
123
|
raise 'Invalid integer value.' unless (min >= -2_000_000_000) && (max <= 2_000_000_000)
|
86
|
-
|
124
|
+
|
87
125
|
{
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
126
|
+
type: 'int',
|
127
|
+
default: default,
|
128
|
+
required: required,
|
129
|
+
min: min,
|
130
|
+
max: max,
|
131
|
+
allow_nil: allow_nil
|
94
132
|
}
|
95
133
|
end
|
96
134
|
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
135
|
+
def positive_bignum_field(
|
136
|
+
required: true,
|
137
|
+
default: nil,
|
138
|
+
min: 0, max: 2_000_000_000_000,
|
139
|
+
allow_nil: false
|
140
|
+
)
|
141
|
+
Helper.check_type(type: 'numeric', values: [min, max])
|
142
|
+
Helper.check_type(type: 'boolean', values: [required, allow_nil])
|
102
143
|
raise 'Invalid numeric value.' unless (min >= 0) && (max <= 2_000_000_000_000)
|
103
|
-
|
144
|
+
|
104
145
|
{
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
146
|
+
type: 'num',
|
147
|
+
default: default,
|
148
|
+
required: required,
|
149
|
+
min: min,
|
150
|
+
max: max,
|
151
|
+
allow_nil: allow_nil
|
111
152
|
}
|
112
153
|
end
|
113
|
-
|
114
|
-
def positive_num_field(
|
115
|
-
|
116
|
-
|
154
|
+
|
155
|
+
def positive_num_field(
|
156
|
+
required: true,
|
157
|
+
default: nil,
|
158
|
+
min: 0,
|
159
|
+
max: 2_000_000_000,
|
160
|
+
allow_nil: false
|
161
|
+
)
|
162
|
+
Helper.check_type(type: 'numeric', values: [min, max])
|
163
|
+
Helper.check_type(type: 'boolean', values: [required, allow_nil])
|
117
164
|
raise 'Invalid numeric value.' unless (min >= 0) && (max <= 2_000_000_000)
|
118
|
-
|
165
|
+
|
119
166
|
{
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
167
|
+
type: 'num',
|
168
|
+
default: default,
|
169
|
+
required: required,
|
170
|
+
min: min,
|
171
|
+
max: max,
|
172
|
+
allow_nil: allow_nil
|
126
173
|
}
|
127
174
|
end
|
128
175
|
|
129
|
-
def positive_bigint_field(
|
130
|
-
|
131
|
-
|
176
|
+
def positive_bigint_field(
|
177
|
+
required: true,
|
178
|
+
default: nil,
|
179
|
+
min: 0,
|
180
|
+
max: 2_000_000_000_000,
|
181
|
+
allow_nil: false
|
182
|
+
)
|
183
|
+
Helper.check_type(type: 'integer', values: [min, max])
|
184
|
+
Helper.check_type(type: 'boolean', values: [required, allow_nil])
|
132
185
|
raise 'Invalid integer value.' unless (min >= 0) && (max <= 2_000_000_000_000)
|
133
|
-
|
186
|
+
|
134
187
|
{
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
188
|
+
type: 'int',
|
189
|
+
default: default,
|
190
|
+
required: required,
|
191
|
+
min: min,
|
192
|
+
max: max,
|
193
|
+
allow_nil: allow_nil
|
141
194
|
}
|
142
195
|
end
|
143
|
-
|
144
|
-
def positive_int_field(
|
145
|
-
|
146
|
-
|
196
|
+
|
197
|
+
def positive_int_field(
|
198
|
+
required: true,
|
199
|
+
default: nil,
|
200
|
+
min: 0,
|
201
|
+
max: 2_000_000_000,
|
202
|
+
allow_nil: false
|
203
|
+
)
|
204
|
+
Helper.check_type(type: 'integer', values: [min, max])
|
205
|
+
Helper.check_type(type: 'boolean', values: [required, allow_nil])
|
147
206
|
raise 'Invalid integer value.' unless (min >= 0) && (max <= 2_000_000_000)
|
148
|
-
|
207
|
+
|
149
208
|
{
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
209
|
+
type: 'int',
|
210
|
+
default: default,
|
211
|
+
required: required,
|
212
|
+
min: min,
|
213
|
+
max: max,
|
214
|
+
allow_nil: allow_nil
|
156
215
|
}
|
157
216
|
end
|
158
|
-
|
159
|
-
def arr_field(
|
160
|
-
|
161
|
-
|
217
|
+
|
218
|
+
def arr_field(
|
219
|
+
required: true,
|
220
|
+
default: nil,
|
221
|
+
allow_empty: false,
|
222
|
+
allow_nil: false
|
223
|
+
)
|
224
|
+
Helper.check_type(type: 'boolean', values: [required, allow_empty, allow_nil])
|
225
|
+
|
162
226
|
{
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
227
|
+
type: 'arr',
|
228
|
+
default: default,
|
229
|
+
required: required,
|
230
|
+
allow_empty: allow_empty,
|
231
|
+
allow_nil: allow_nil
|
168
232
|
}
|
169
233
|
end
|
170
|
-
|
171
|
-
def
|
172
|
-
|
173
|
-
|
234
|
+
|
235
|
+
def hash_field(
|
236
|
+
required: true,
|
237
|
+
default: nil,
|
238
|
+
allow_nil: false
|
239
|
+
)
|
240
|
+
Helper.check_type(type: 'boolean', values: [required, allow_nil])
|
241
|
+
|
174
242
|
{
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
243
|
+
type: 'hash',
|
244
|
+
default: default,
|
245
|
+
required: required,
|
246
|
+
allow_nil: allow_nil
|
179
247
|
}
|
180
248
|
end
|
181
|
-
|
182
|
-
def
|
183
|
-
|
184
|
-
|
249
|
+
|
250
|
+
def date_field(
|
251
|
+
required: true,
|
252
|
+
default: nil,
|
253
|
+
allow_nil: false
|
254
|
+
)
|
255
|
+
Helper.check_type(type: 'boolean', values: [required, allow_nil])
|
256
|
+
|
185
257
|
{
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
258
|
+
type: 'date',
|
259
|
+
default: default,
|
260
|
+
required: required,
|
261
|
+
allow_nil: allow_nil
|
190
262
|
}
|
191
263
|
end
|
192
|
-
|
193
|
-
def
|
194
|
-
|
195
|
-
|
264
|
+
|
265
|
+
def time_field(
|
266
|
+
required: true,
|
267
|
+
default: nil,
|
268
|
+
allow_nil: false
|
269
|
+
)
|
270
|
+
Helper.check_type(type: 'boolean', values: [required, allow_nil])
|
271
|
+
|
196
272
|
{
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
273
|
+
type: 'time',
|
274
|
+
default: default,
|
275
|
+
required: required,
|
276
|
+
allow_nil: allow_nil
|
201
277
|
}
|
202
278
|
end
|
203
279
|
|
204
|
-
def
|
205
|
-
|
206
|
-
|
280
|
+
def datetime_field(
|
281
|
+
required: true,
|
282
|
+
default: nil,
|
283
|
+
allow_nil: false
|
284
|
+
)
|
285
|
+
Helper.check_type(type: 'boolean', values: [required, allow_nil])
|
286
|
+
|
207
287
|
{
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
288
|
+
type: 'datetime',
|
289
|
+
default: default,
|
290
|
+
required: required,
|
291
|
+
allow_nil: allow_nil
|
212
292
|
}
|
213
293
|
end
|
214
294
|
|
215
|
-
def boolean_field(
|
216
|
-
|
217
|
-
|
295
|
+
def boolean_field(
|
296
|
+
required: true,
|
297
|
+
default: nil,
|
298
|
+
allow_nil: false
|
299
|
+
)
|
300
|
+
Helper.check_type(type: 'boolean', values: [required, allow_nil])
|
301
|
+
|
218
302
|
{
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
303
|
+
type: 'boolean',
|
304
|
+
default: default,
|
305
|
+
required: required,
|
306
|
+
allow_nil: allow_nil
|
223
307
|
}
|
224
308
|
end
|
225
|
-
|
226
309
|
end
|
227
|
-
|
228
310
|
end
|