mini_defender 0.1.9 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 01c53724071680c6bda15e673a5e6d06a69ed32fe2f66f9b0f2805c2187a3f3f
4
- data.tar.gz: 86d63b30590f67a59c9b578d4e7321311fe7061350acd8f00c718fb9ae0e7189
3
+ metadata.gz: 558b5d94318a81f2f82af39e68f2945063310dd648cbdc7dce7b11db2452d331
4
+ data.tar.gz: b110e5e0d706c60b6e26681906c555e8b2554f9d4fcd518e27a5d2cf803f3da2
5
5
  SHA512:
6
- metadata.gz: a6d7d825b67f3694a5e2ee380a5ec0befb8dffe652ec64932acd06b583f6c5761c9dbfa6b11a8ddf74399b1eb7a7e1cb9f8997219eba0dded4b274bb7cca1276
7
- data.tar.gz: 61228f3679307376bc8b3a6202232faf95166e857a8696d694e79611a70611ac4fc6d971ea9ee659c5b1d0a47bd37189de3db8430d5254fa383ea55d6ec6dea6
6
+ metadata.gz: a01a92db5349fa2273418c6e12477d66d59bc160f7b16d21ff6f9953b3608433428e2fd6b13b35193c1ad5a69445c25e22bb746ef27ce0737d6d4c9e6a79e78a
7
+ data.tar.gz: 45f4354582db5e8e1a73a53037f162f35505b334bf8fa4ac1d8560809df4d6b103790c3753886d0cd8b0fae041b35c6b49ee0bb26fe5863a2bcc3d4cbd6c89b5
@@ -6,10 +6,11 @@ class MiniDefender::Rules::Boolean < MiniDefender::Rule
6
6
  end
7
7
 
8
8
  def coerce(value)
9
+ value = value.downcase if value.is_a?(String)
9
10
  case value
10
- when 0, '0'
11
+ when 0, '0', 'no', 'off', 'false'
11
12
  false
12
- when 1, '1'
13
+ when 1, '1', 'yes', 'on', 'true'
13
14
  true
14
15
  else
15
16
  value
@@ -17,10 +18,12 @@ class MiniDefender::Rules::Boolean < MiniDefender::Rule
17
18
  end
18
19
 
19
20
  def passes?(attribute, value, validator)
20
- value.is_a?(TrueClass) || value.is_a?(FalseClass) || [1, 0, '1', '0'].include?(value)
21
+ value = value.downcase if value.is_a?(String)
22
+ value.is_a?(TrueClass) || value.is_a?(FalseClass) ||
23
+ [1, 0, '1', '0', 'yes', 'no', 'on', 'off', 'true', 'false'].include?(value)
21
24
  end
22
25
 
23
26
  def message(attribute, value, validator)
24
- "The value must be a boolean."
27
+ 'The value must be a boolean, yes, no, on, off, 0 or 1.'
25
28
  end
26
29
  end
@@ -50,20 +50,22 @@ module MiniDefender
50
50
  next
51
51
  end
52
52
 
53
- value = @data[k]
53
+ value = coerced = @data[k]
54
54
  rule_set.each do |rule|
55
55
  next unless rule.active?(self)
56
56
 
57
57
  value_included &= !rule.excluded?(self)
58
58
 
59
- unless rule.passes?(k, value, self)
59
+ if rule.passes?(k, coerced, self)
60
+ coerced = rule.coerce(coerced)
61
+ else
60
62
  @errors[k] << rule.error_message(k, value, self)
61
63
  end
62
64
  end
63
65
 
64
66
  if @errors[k].empty? && value_included
65
67
  @validated[k] = value
66
- @coerced[k] = rule_set.inject(value) { |coerced, rule| rule.coerce(coerced) }
68
+ @coerced[k] = coerced
67
69
  end
68
70
  end
69
71
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MiniDefender
4
- VERSION = "0.1.9"
4
+ VERSION = "0.2.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mini_defender
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ali Alhoshaiyan
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-12-12 00:00:00.000000000 Z
11
+ date: 2023-03-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport