Module: Credentials::Extensions::MagicMethods

Defined in:
lib/credentials/extensions/magic_methods.rb

Overview

Allows you to use magic methods to test permissions. For example:

class User
  credentials do |user|
    user.can :edit, :self
  end
end

user = User.new
user.can_edit? user #=> true

Class Method Summary collapse

Class Method Details

.included(receiver) ⇒ Object

:nodoc:



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/credentials/extensions/magic_methods.rb', line 15

def self.included(receiver) #:nodoc:
  receiver.class_eval do
    def method_missing(sym, *args)
      if self.class != Object && self.class != Class && sym.to_s =~ /\Acan_(.*)\?\z/
        can? $1.to_sym, *args
      else
        super
      end
    end
  end
end