module KittyPolicy::DSL
Constants
- DEFAULT_BLOCK
Public Class Methods
extended(base)
click to toggle source
# File lib/kitty_policy/dsl.rb, line 5 def self.extended(base) base.extend(base) end
Public Instance Methods
can?(user, action, subject = :empty)
click to toggle source
# File lib/kitty_policy/dsl.rb, line 9 def can?(user, action, subject = :empty) if subject == :empty public_send Helper.method_name(action), user else public_send Helper.method_name(action, subject), user, subject end end
Private Instance Methods
can(abilities, subject = nil, allow_guest: false, &block)
click to toggle source
# File lib/kitty_policy/dsl.rb, line 25 def can(abilities, subject = nil, allow_guest: false, &block) block ||= DEFAULT_BLOCK Array(abilities).each do |action| define_method Helper.method_name(action, subject) do |*args| (args[0] || allow_guest) && !!block.call(*args) end end end