Class: Dorsale::ApplicationPolicy

Inherits:
Object
  • Object
show all
Defined in:
app/policies/dorsale/application_policy.rb

Defined Under Namespace

Classes: Scope

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(user, subject) ⇒ ApplicationPolicy

Returns a new instance of ApplicationPolicy.



4
5
6
7
# File 'app/policies/dorsale/application_policy.rb', line 4

def initialize(user, subject)
  @user    = user
  @subject = subject
end

Instance Attribute Details

#subjectObject (readonly)

Returns the value of attribute subject.



2
3
4
# File 'app/policies/dorsale/application_policy.rb', line 2

def subject
  @subject
end

#userObject (readonly)

Returns the value of attribute user.



2
3
4
# File 'app/policies/dorsale/application_policy.rb', line 2

def user
  @user
end

Class Method Details

.define_subject_accessor!Object



25
26
27
28
29
30
31
32
33
# File 'app/policies/dorsale/application_policy.rb', line 25

def self.define_subject_accessor!
  # Dorsale::BillingMachine::InvoicePolicy -> :invoice
  object_type = self.to_s.demodulize.gsub("Policy", "").underscore.to_sym

  # Avoid user/subject conflict
  object_type = :other_user if object_type == :user

  self.send(:define_method, object_type) { subject }
end

.inherited(klass) ⇒ Object



21
22
23
# File 'app/policies/dorsale/application_policy.rb', line 21

def self.inherited(klass)
  klass.define_subject_accessor!
end

Instance Method Details

#policy(subject) ⇒ Object



13
14
15
# File 'app/policies/dorsale/application_policy.rb', line 13

def policy(subject)
  Pundit.policy(user, subject)
end

#policy_scope(subject) ⇒ Object



17
18
19
# File 'app/policies/dorsale/application_policy.rb', line 17

def policy_scope(subject)
  Pundit.policy_scope(user, subject)
end

#recordObject



9
10
11
# File 'app/policies/dorsale/application_policy.rb', line 9

def record
  subject
end