Class: Dorsale::CustomerVault::Person
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Dorsale::CustomerVault::Person
- Extended by:
- Forwardable
- Includes:
- 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
-
#initialize ⇒ Person
constructor
A new instance of Person.
- #links ⇒ Object
- #person_type ⇒ Object
- #tags_on(*args) ⇒ Object
Methods included from Search
Constructor Details
#initialize ⇒ Person
Returns a new instance of Person.
14 15 16 17 18 19 20 21 |
# File 'app/models/dorsale/customer_vault/person.rb', line 14 def initialize(*) if self.class == ::Dorsale::CustomerVault::Person # self.abstract_class does not work with STI raise "Cannot directly instantiate Person class" else super end end |
Class Method Details
.policy_class ⇒ Object
10 11 12 |
# File 'app/models/dorsale/customer_vault/person.rb', line 10 def self.policy_class Dorsale::CustomerVault::PersonPolicy end |
Instance Method Details
#corporation? ⇒ Boolean
40 41 42 |
# File 'app/models/dorsale/customer_vault/person.rb', line 40 def corporation? person_type == :corporation end |
#destroy_links ⇒ Object
62 63 64 |
# File 'app/models/dorsale/customer_vault/person.rb', line 62 def destroy_links links.each(&:destroy!) end |
#individual? ⇒ Boolean
44 45 46 |
# File 'app/models/dorsale/customer_vault/person.rb', line 44 def individual? person_type == :individual end |
#links ⇒ Object
52 53 54 55 56 57 58 59 60 |
# File 'app/models/dorsale/customer_vault/person.rb', line 52 def links a = ::Dorsale::CustomerVault::Link.where(alice_id: id) .each { |l| l.person = l.alice ; l.other_person = l.bob } b = ::Dorsale::CustomerVault::Link.where(bob_id: id) .each { |l| l.person = l.bob ; l.other_person = l.alice } return a + b end |
#person_type ⇒ Object
36 37 38 |
# File 'app/models/dorsale/customer_vault/person.rb', line 36 def person_type self.class.to_s.demodulize.downcase.to_sym end |
#tags_on(*args) ⇒ Object
48 49 50 |
# File 'app/models/dorsale/customer_vault/person.rb', line 48 def (*args) super(*args).order(:name) end |