Sha256: 80d8470ffbb7a7849b3ddcb3d1125f4a02175ebb3b3f8e45de750116e3a1f5dc
Contents?: true
Size: 685 Bytes
Versions: 4
Compression:
Stored size: 685 Bytes
Contents
module Deny extend ActiveSupport::Concern # es. # # deny! :if => user.logged_in? # deny! :if => -> { ... } # deny! # # before_filter :deny! :if => :guest? # # def guest? # !current_user # end def deny!(options = {}) negate = false expr = options.has_key?(:if) options.delete(:if) elsif options.has_key?(:unless) negate = true options.delete(:unless) else true end condition = if expr.is_a?(Proc) expr.arity != 0 ? expr.call(self) : expr.call else expr end condition = negate ? !condition : condition if condition raise DeniedError.new end false end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
fullstack-cms-0.3.14 | app/support/deny.rb |
fullstack-cms-0.3.13 | app/support/deny.rb |
fullstack-cms-0.3.12 | app/support/deny.rb |
fullstack-cms-0.3.11 | app/support/deny.rb |