diff options
author | Sean McGivern <sean@mcgivern.me.uk> | 2017-08-04 09:54:52 +0000 |
---|---|---|
committer | Sean McGivern <sean@mcgivern.me.uk> | 2017-08-04 09:54:52 +0000 |
commit | ee908e2382632508e45cc777b33b3c7367d3238f (patch) | |
tree | ac6fefb23dc66414ee62b1340b6b4da47725bc73 /lib/declarative_policy.rb | |
parent | 6686661beb3d0c709f523e2b4ce223e611d1e803 (diff) | |
parent | 120fd3b3aea9cda81384c6488a1136c176ab3965 (diff) | |
download | gitlab-ce-ee908e2382632508e45cc777b33b3c7367d3238f.tar.gz |
Merge branch 'refactor.notification-recipient-builders' into 'master'
Refactor.notification recipient builders
See merge request !13197
Diffstat (limited to 'lib/declarative_policy.rb')
-rw-r--r-- | lib/declarative_policy.rb | 14 |
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) |