summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2017-08-04 09:54:52 +0000
committerSean McGivern <sean@mcgivern.me.uk>2017-08-04 09:54:52 +0000
commitee908e2382632508e45cc777b33b3c7367d3238f (patch)
treeac6fefb23dc66414ee62b1340b6b4da47725bc73 /lib
parent6686661beb3d0c709f523e2b4ce223e611d1e803 (diff)
parent120fd3b3aea9cda81384c6488a1136c176ab3965 (diff)
downloadgitlab-ce-ee908e2382632508e45cc777b33b3c7367d3238f.tar.gz
Merge branch 'refactor.notification-recipient-builders' into 'master'
Refactor.notification recipient builders See merge request !13197
Diffstat (limited to 'lib')
-rw-r--r--lib/declarative_policy.rb14
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/declarative_policy.rb b/lib/declarative_policy.rb
index b1eb1a6cef1..ae65653645b 100644
--- a/lib/declarative_policy.rb
+++ b/lib/declarative_policy.rb
@@ -28,7 +28,13 @@ module DeclarativePolicy
subject = find_delegate(subject)
- class_for_class(subject.class)
+ policy_class = class_for_class(subject.class)
+ raise "no policy for #{subject.class.name}" if policy_class.nil?
+ policy_class
+ end
+
+ def has_policy?(subject)
+ !class_for_class(subject.class).nil?
end
private
@@ -51,9 +57,7 @@ module DeclarativePolicy
end
end
- policy_class = subject_class.instance_variable_get(CLASS_CACHE_IVAR)
- raise "no policy for #{subject.class.name}" if policy_class.nil?
- policy_class
+ subject_class.instance_variable_get(CLASS_CACHE_IVAR)
end
def compute_class_for_class(subject_class)
@@ -71,6 +75,8 @@ module DeclarativePolicy
nil
end
end
+
+ nil
end
def find_delegate(subject)