lib/cancan-permits/permits/ability.rb in cancan-permits-0.3.5 vs lib/cancan-permits/permits/ability.rb in cancan-permits-0.3.6
- old
+ new
@@ -57,17 +57,25 @@
end
protected
include Permit::Util
+
+ def self.get_permit role
+ begin
+ clazz_name = "#{role.to_s.camelize}Permit"
+ clazz_name.constantize
+ rescue
+ raise "Permit #{clazz_name} not loaded and thus not defined"
+ end
+ end
def self.make_permit role, ability, options = {}
begin
- clazz_name = "#{role.to_s.camelize}Permit"
- permit_clazz = clazz_name.constantize
+ permit_clazz = get_permit role
permit_clazz.new(ability, options) if permit_clazz && permit_clazz.kind_of?(Class)
- rescue
- raise "Permit #{clazz_name} not found"
+ rescue RuntimeError => e
+ raise "Error instantiating Permit instance for #{permit_clazz}, cause #{e}"
end
end
end
end