Sha256: ca3e358a4e6d0b72446edf0f9b749b0e1c239d4818f0b99898138e7dfe711108
Contents?: true
Size: 831 Bytes
Versions: 26
Compression:
Stored size: 831 Bytes
Contents
class Dorsale::ApplicationPolicy attr_reader :user, :subject def initialize(user, subject) @user = user @subject = subject end def record subject end def policy(subject) Pundit.policy(user, subject) end def policy_scope(subject) Pundit.policy_scope(user, subject) end def self.inherited(klass) klass.define_subject_accessor! end def self.define_subject_accessor! # Dorsale::BillingMachine::InvoicePolicy -> :invoice object_type = to_s.demodulize.gsub("Policy", "").underscore.to_sym # Avoid user/subject conflict object_type = :other_user if object_type == :user send(:define_method, object_type) { subject } end class Scope attr_reader :user, :scope def initialize(user, scope) @user = user @scope = scope end end end
Version data entries
26 entries across 26 versions & 1 rubygems