mini_defender 0.5.1 → 0.5.3
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:
|
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
|