summaryrefslogtreecommitdiff
path: root/lib/declarative_policy/cache.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/declarative_policy/cache.rb')
-rw-r--r--lib/declarative_policy/cache.rb13
1 files changed, 8 insertions, 5 deletions
diff --git a/lib/declarative_policy/cache.rb b/lib/declarative_policy/cache.rb
index b8cc60074c7..0804edba016 100644
--- a/lib/declarative_policy/cache.rb
+++ b/lib/declarative_policy/cache.rb
@@ -21,11 +21,14 @@ module DeclarativePolicy
private
def id_for(obj)
- if obj.respond_to?(:id) && obj.id
- obj.id.to_s
- else
- "##{obj.object_id}"
- end
+ id =
+ begin
+ obj.id
+ rescue NoMethodError
+ nil
+ end
+
+ id || "##{obj.object_id}"
end
end
end