Class: Dorsale::CustomerVault::Person

Inherits:
ActiveRecord::Base
  • Object
show all
Extended by:
Forwardable
Includes:
Search, Users::Avatar
Defined in:
app/models/dorsale/customer_vault/person.rb

Direct Known Subclasses

Corporation, Individual

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Search

included

Constructor Details

#initializePerson

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_classObject



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

Returns:

  • (Boolean)


40
41
42
# File 'app/models/dorsale/customer_vault/person.rb', line 40

def corporation?
  person_type == :corporation
end


62
63
64
# File 'app/models/dorsale/customer_vault/person.rb', line 62

def destroy_links
  links.each(&:destroy!)
end

#individual?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'app/models/dorsale/customer_vault/person.rb', line 44

def individual?
  person_type == :individual
end


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_typeObject



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 tags_on(*args)
  super(*args).order(:name)
end