bodyguards 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/bodyguards/base.rb +4 -0
- data/lib/bodyguards/rule_set.rb +8 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3435f97cff2dade7fd12cfd19c254747a75a475a
|
4
|
+
data.tar.gz: cef098984701d88120fa1ba17efaf6838e45c227
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 43c68f70e3b435372529adde9c1c99b2bd6e63156b5ede35bbba0a24edd7c22996cf08cc538439fbc54fe2091c4deaf01d367480ee1fde585c502db4596a1e89
|
7
|
+
data.tar.gz: 114eacac746123b81dc0a7b41f423d992c1083a11bb9d6f3d2a1371f0bd524f4412ebb32e210500e3a24ef1816db2b252e45828059913962cb4a1c082bf9532c
|
data/lib/bodyguards/base.rb
CHANGED
@@ -12,6 +12,10 @@ module Bodyguards
|
|
12
12
|
rule_set.add_rule_for(feature_name, Rule.new(evaluator: block))
|
13
13
|
end
|
14
14
|
|
15
|
+
def permit_all(&block)
|
16
|
+
rule_set.add_global_rule(Rule.new(evaluator: block))
|
17
|
+
end
|
18
|
+
|
15
19
|
def permission_to?(feature_name, subject)
|
16
20
|
rule_set.evaluate(feature_name, subject)
|
17
21
|
end
|
data/lib/bodyguards/rule_set.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
module Bodyguards
|
2
2
|
class RuleSet
|
3
3
|
def initialize
|
4
|
+
@global_rules = []
|
4
5
|
@rules = {}
|
5
6
|
end
|
6
7
|
|
@@ -8,16 +9,22 @@ module Bodyguards
|
|
8
9
|
rules[feature_name.to_sym] = rule
|
9
10
|
end
|
10
11
|
|
12
|
+
def add_global_rule(rule)
|
13
|
+
@global_rules << rule
|
14
|
+
end
|
15
|
+
|
11
16
|
def evaluate(feature_name, subject)
|
17
|
+
return true if global_rules.any? { |rule| rule.evaluate(subject) }
|
12
18
|
rules.fetch(feature_name.to_sym).evaluate(subject)
|
13
19
|
end
|
14
20
|
|
15
21
|
def evaluate_all(subject)
|
22
|
+
return true if global_rules.any? { |rule| rule.evaluate(subject) }
|
16
23
|
rules.values.any? { |rule| rule.evaluate(subject) }
|
17
24
|
end
|
18
25
|
|
19
26
|
private
|
20
27
|
|
21
|
-
attr_reader :rules
|
28
|
+
attr_reader :global_rules, :rules
|
22
29
|
end
|
23
30
|
end
|