Class: Usps::Support::Models::Hq::Members::Member

Inherits:
BaseRecord show all
Defined in:
lib/usps/support/models/hq/members/member.rb

Overview

Regular member record

Constant Summary collapse

INVALID_RANKS =
[0, 99].freeze

Instance Method Summary collapse

Methods inherited from SharedRecord

allow_hq_database_edits?, ignore_type_column_sti!

Instance Method Details

#accountsObject



59
# File 'lib/usps/support/models/hq/members/member.rb', line 59

def accounts = (squadron_jobs.pluck(:account) + []).uniq.map(&:to_s)

#admin?Boolean

Returns:

  • (Boolean)


84
# File 'lib/usps/support/models/hq/members/member.rb', line 84

def admin? = certificate.in?(ENV['ADMIN_CERTIFICATES'].split(','))

#as_associateObject



56
# File 'lib/usps/support/models/hq/members/member.rb', line 56

def as_associate = clone.tap { it.instance_variable_set(:@associate, true) }

#associate?Boolean

Returns:

  • (Boolean)


57
# File 'lib/usps/support/models/hq/members/member.rb', line 57

def associate? = @associate.present?

#district_accountsObject



61
# File 'lib/usps/support/models/hq/members/member.rb', line 61

def district_accounts = district.squadrons.pluck(:account)

#full_nameObject



73
74
75
76
77
78
# File 'lib/usps/support/models/hq/members/member.rb', line 73

def full_name
  [
    [rank, first, last].join(' '),
    grade.presence
  ].compact.join(', ')
end

#mailing_addressObject



86
87
88
89
90
91
92
93
# File 'lib/usps/support/models/hq/members/member.rb', line 86

def mailing_address
  [
    full_name,
    address1,
    address2,
    ["#{city}, #{state} #{zip5}", zip4].compact_blank.join('-')
  ].compact_blank
end

#rankObject



63
64
65
66
67
68
69
70
71
# File 'lib/usps/support/models/hq/members/member.rb', line 63

def rank
  return @rank if @rank

  raw_rank = read_attribute(:rank)
  return if raw_rank.in?(INVALID_RANKS)

  normalized_rank = raw_rank.to_s.rjust(2, '0')
  @rank = Members::Rank.find(normalized_rank).RankAbbr
end

#simple_nameObject



80
# File 'lib/usps/support/models/hq/members/member.rb', line 80

def simple_name = [first, last].join(' ')

#sort_nameObject



82
# File 'lib/usps/support/models/hq/members/member.rb', line 82

def sort_name = "#{last}, #{first}"