Class: Dorsale::CustomerVault::Person
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Dorsale::CustomerVault::Person
- Extended by:
- Forwardable
- Includes:
- Agilibox::Search, Users::Avatar
- Defined in:
- app/models/dorsale/customer_vault/person.rb
Direct Known Subclasses
Class Method Summary collapse
Instance Method Summary collapse
- #corporation? ⇒ Boolean
- #destroy_links ⇒ Object
- #individual? ⇒ Boolean
- #links ⇒ Object
- #person_type ⇒ Object
- #receive_comment_notification(comment, action) ⇒ Object
- #tags_on(*args) ⇒ Object
- #verify_class ⇒ Object
Methods inherited from ApplicationRecord
Class Method Details
.policy_class ⇒ Object
8 9 10 |
# File 'app/models/dorsale/customer_vault/person.rb', line 8 def self.policy_class Dorsale::CustomerVault::PersonPolicy end |
Instance Method Details
#corporation? ⇒ Boolean
45 46 47 |
# File 'app/models/dorsale/customer_vault/person.rb', line 45 def corporation? person_type == :corporation end |
#destroy_links ⇒ Object
71 72 73 |
# File 'app/models/dorsale/customer_vault/person.rb', line 71 def destroy_links links.each(&:destroy!) end |
#individual? ⇒ Boolean
49 50 51 |
# File 'app/models/dorsale/customer_vault/person.rb', line 49 def individual? person_type == :individual end |
#links ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'app/models/dorsale/customer_vault/person.rb', line 57 def links a = ::Dorsale::CustomerVault::Link .where(alice_id: id) .preload(:alice => :taggings, :bob => :taggings) .each { |l| l.person = l.alice ; l.other_person = l.bob } b = ::Dorsale::CustomerVault::Link .where(bob_id: id) .preload(:alice => :taggings, :bob => :taggings) .each { |l| l.person = l.bob ; l.other_person = l.alice } return a + b end |
#person_type ⇒ Object
41 42 43 |
# File 'app/models/dorsale/customer_vault/person.rb', line 41 def person_type self.class.to_s.demodulize.downcase.to_sym end |
#receive_comment_notification(comment, action) ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'app/models/dorsale/customer_vault/person.rb', line 75 def receive_comment_notification(comment, action) scope = Pundit.policy_scope!(comment., ::Dorsale::CustomerVault::Event) if action == :create scope.create!( :author => comment., :person => self, :comment => comment, :action => "comment", ) end if action == :delete scope.where(comment: comment).destroy_all end end |
#tags_on(*args) ⇒ Object
53 54 55 |
# File 'app/models/dorsale/customer_vault/person.rb', line 53 def (*args) super(*args).order(:name) end |
#verify_class ⇒ Object
14 15 16 17 18 19 |
# File 'app/models/dorsale/customer_vault/person.rb', line 14 def verify_class if self.class == ::Dorsale::CustomerVault::Person # self.abstract_class does not work with STI raise "Cannot directly instantiate Person class" end end |