mini_defender 0.5.1 → 0.5.3
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 87731b96739bb1b69873c678f424ab5a9e5edf8ff2c084803582865fb6ce353b
|
4
|
+
data.tar.gz: 0e2c1516a69cfa689cccea7a2013bec0817ea9790831986fbe2fff79f51945c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d5493f26115c5833ca54f55d4d551751fcd975b6a3c3c4ee8fe53b197f9c78c088d545d60751e026b22598549c3561593023b39b5cc17c8256d952e84f9b4ea1
|
7
|
+
data.tar.gz: ae08110a394548937b2ee193e583399e994f8cb82b6d828c5768d5ffb7cbfaaf663996ec0d9ad61d0d25c06de61d00dad06f1f722640800949dd5142cb1545ef
|
data/lib/mini_defender/rule.rb
CHANGED
@@ -16,6 +16,13 @@ class MiniDefender::Rule
|
|
16
16
|
true
|
17
17
|
end
|
18
18
|
|
19
|
+
# Priority is used to sort rules in a rule set to allow rules to validate data
|
20
|
+
# before rules that will radically change data
|
21
|
+
# @return [Integer]
|
22
|
+
def priority
|
23
|
+
100
|
24
|
+
end
|
25
|
+
|
19
26
|
# @param [MiniDefender::Validator] validator
|
20
27
|
# @return [Boolean]
|
21
28
|
def implicit?(validator)
|
@@ -19,6 +19,10 @@ class MiniDefender::Rules::Hash < MiniDefender::Rule
|
|
19
19
|
)
|
20
20
|
end
|
21
21
|
|
22
|
+
def priority
|
23
|
+
500
|
24
|
+
end
|
25
|
+
|
22
26
|
def coerce(value)
|
23
27
|
@data_mode == 'all' ? value : {}
|
24
28
|
end
|
@@ -30,6 +34,10 @@ class MiniDefender::Rules::Hash < MiniDefender::Rule
|
|
30
34
|
def passes?(attribute, value, validator)
|
31
35
|
passes = value.is_a?(Hash)
|
32
36
|
|
37
|
+
unless passes
|
38
|
+
return false
|
39
|
+
end
|
40
|
+
|
33
41
|
if @key_type == 'string'
|
34
42
|
passes &= value.all? { |k, _| k.is_a?(String) }
|
35
43
|
end
|
@@ -11,16 +11,23 @@ module MiniDefender
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def init_set(rule_set)
|
14
|
-
|
15
|
-
|
14
|
+
if rule_set.is_a?(String)
|
15
|
+
rule_set = rule_set.split('|')
|
16
|
+
end
|
17
|
+
|
18
|
+
unless rule_set.is_a?(Array)
|
19
|
+
raise ArgumentError, 'Rule set must be a string or an array'
|
20
|
+
end
|
16
21
|
|
17
|
-
rule_set.map do |rule|
|
22
|
+
rule_set = rule_set.map do |rule|
|
18
23
|
unless rule.is_a?(String) || rule.is_a?(Rule)
|
19
24
|
raise ArgumentError, 'Rule must be a string or an instance of MiniDefender::Rule'
|
20
25
|
end
|
21
26
|
|
22
27
|
rule.is_a?(String) ? init_rule(rule) : rule
|
23
28
|
end
|
29
|
+
|
30
|
+
rule_set.sort_by! { |r| r.priority }
|
24
31
|
end
|
25
32
|
|
26
33
|
def init_rule(signature)
|
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.5.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ali Alhoshaiyan
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-01-
|
11
|
+
date: 2024-01-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|