params_checker 0.2.1 → 0.2.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0013a86614eb2a40c8e5d526ebba0cdd244367c32e86812f388059e26abaf952
4
- data.tar.gz: 675209c8ae0ac1ba49bffd934afa6bb34a66e7c02e107cfbd0718336f362534c
3
+ metadata.gz: 43e9bdab09ff2a45a7afc6964db9db8ff2e979c0336b666e3730c16d342ad15c
4
+ data.tar.gz: e407ab745e0d4370164110009fd47f70c789a368a277dc65974d3befdf092516
5
5
  SHA512:
6
- metadata.gz: a83330c3e167398a9d90773f568d9666fd4c63fefcae418d3767fc9c868952f09de975435a456ae5a3f7f6c3371a772a2feb64dc3181a3301d119b84fc13260d
7
- data.tar.gz: 797e848185371dc8ca275b47fe0d2c92ac8bd1ac05179b1a772eff6b3e3ca7f9145c7dc8b44e294a6d9d897927004f3cb0968465c30ef57877f6269c2e9416d6
6
+ metadata.gz: 48612e65dc48a2abb93ba0059a1708f80e518c3acdf277324040df5b1659e0e314f228769e350cba3ef62cc93c4fd89c9e7b780929b26109f38366b2e79a1a8e
7
+ data.tar.gz: 6b1eb417945cdc66eee221f7adade0298f8e195e50de2e302617d00a7ec06225cada71b88756cd60753d9d56aae78ff8ca1838c3e1d0ccda175259bec59916d9
@@ -11,15 +11,14 @@ module ParamsChecker
11
11
  @formatted_params_after_custom_all_fields_check = {}
12
12
  end
13
13
 
14
- def self.init required: true, many: false, allow_empty: false
15
- raise "This field's type must be boolean." if [required, many, allow_empty].any? { |value| !value.in? [true, false] }
14
+ def self.init required: true, many: false
15
+ raise "This field's type must be boolean." if [required, many].any? { |value| !value.in? [true, false] }
16
16
 
17
17
  type = many ? 'nested_hashs' : 'nested_hash'
18
18
  {
19
19
  type: type,
20
20
  required: required,
21
21
  many: many,
22
- allow_empty: allow_empty,
23
22
  class: self
24
23
  }
25
24
  end
@@ -115,7 +114,8 @@ module ParamsChecker
115
114
 
116
115
  def value_need_to_be_present? key
117
116
  if fields[key].key?(:default) && !fields[key][:default].nil?
118
- @params[key] = fields[key][:default]
117
+ @params[key].nil? && @params[key] = fields[key][:default]
118
+
119
119
  true
120
120
  else
121
121
  fields[key][:required]
@@ -170,6 +170,8 @@ module ParamsChecker
170
170
  ParamChecker::EmailParamChecker.call key, fields, params
171
171
  when 'boolean'
172
172
  ParamChecker::BooleanChecker.call key, fields, params
173
+ when 'file'
174
+ ParamChecker::FileChecker.call key, fields, params
173
175
  end
174
176
  end
175
177
 
@@ -272,6 +272,27 @@ module ParamsChecker
272
272
  class BooleanChecker < BaseParamChecker
273
273
  prepend SimpleCommand
274
274
 
275
+ def call
276
+ return nil if fields[key][:allow_nil] && opts[key].nil?
277
+
278
+ check_type && formatted_boolean
279
+ end
280
+
281
+ def formatted_boolean
282
+ [false, "false", "1"].exclude?(opts[key])
283
+ end
284
+
285
+ def check_type
286
+ valid = opts[key].in? [true, false, "true", "false", "1", "0"]
287
+ add_error("This field's type must be boolean.") unless valid
288
+ valid
289
+ end
290
+
291
+ end
292
+
293
+ class FileChecker < BaseParamChecker
294
+ prepend SimpleCommand
295
+
275
296
  def call
276
297
  return nil if fields[key][:allow_nil] && opts[key].nil?
277
298
 
@@ -279,8 +300,8 @@ module ParamsChecker
279
300
  end
280
301
 
281
302
  def check_type
282
- valid = opts[key].in? [true, false]
283
- add_error("This field's type must be boolean.") unless valid
303
+ valid = opts[key].is_a?(ActionDispatch::Http::UploadedFile)
304
+ add_error("This field's type must be file.") unless valid
284
305
  valid
285
306
  end
286
307
 
@@ -1,3 +1,3 @@
1
1
  module ParamsChecker
2
- VERSION = '0.2.1'
2
+ VERSION = '0.2.2'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: params_checker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - rexy tech