class Pragma::Policy::Base
This is the base policy class that all your record-specific policies should inherit from.
A policy provides predicate methods for determining whether a user can perform a specific action on a record.
@abstract Subclass and implement action methods to create a policy.
Constants
- Scope
Attributes
@!attribute [r] user
@return [Object] the user operating on the record
@!attribute [r] record
@return [Object] the record being operated on
@!attribute [r] user
@return [Object] the user operating on the record
@!attribute [r] record
@return [Object] the record being operated on
@!attribute [r] user
@return [Object] the user operating on the record
@!attribute [r] record
@return [Object] the record being operated on
Public Class Methods
Initializes the policy.
@param user [Object] the user operating on the record @param record [Object] the record being operated on
# File lib/pragma/policy/base.rb, line 26 def initialize(user, record) @user = user @record = record end
Public Instance Methods
Provides bang form of predicates (create!
, update!
etc.).
@param method_name [String] the method name @param *args [Array<Object>] the method arguments
@return [Object]
# File lib/pragma/policy/base.rb, line 50 def method_missing(method_name, *args, &block) return super unless method_name[-1] == '!' authorize method_name[0..-2], *args end
Returns whether the policy responds to the provided missing method.
Supports bang forms of predicates (create!
, update!
etc.).
@param method_name [String] the method name @param include_private [Boolean] whether to consider private methods
@return [Boolean]
# File lib/pragma/policy/base.rb, line 39 def respond_to_missing?(method_name, include_private = false) return super unless method_name[-1] == '!' respond_to?("#{method_name[0..-2]}?", include_private) || super end